diff --git a/src/Dialogs.c b/src/Dialogs.c index 1e0548d2e..2d2c849f1 100644 --- a/src/Dialogs.c +++ b/src/Dialogs.c @@ -2343,6 +2343,29 @@ INT_PTR CALLBACK InfoBoxDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) } + +//============================================================================= +// +// InfoBox() +// +// +void UpdateCheck() +{ + SHELLEXECUTEINFO sei; + ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); + sei.cbSize = sizeof(SHELLEXECUTEINFO); + sei.fMask = SEE_MASK_NOZONECHECKS; + sei.hwnd = NULL; + sei.lpVerb = NULL; + sei.lpFile = VERSION_UPDATE_CHECK; + sei.lpParameters = NULL; + sei.lpDirectory = NULL; + sei.nShow = SW_SHOWNORMAL; + ShellExecuteEx(&sei); +} + + + //============================================================================= // // InfoBox() @@ -2352,33 +2375,29 @@ extern WCHAR szIniFile[MAX_PATH]; INT_PTR InfoBox(int iType,LPCWSTR lpstrSetting,int uidMessage,...) { - - HWND hwnd; - int idDlg = IDD_INFOBOX; - INFOBOX ib; - WCHAR wchFormat[LARGE_BUFFER]; - int iMode; - - iMode = IniGetInt(L"Suppressed Messages",lpstrSetting,0); + int iMode = IniGetInt(L"Suppressed Messages",lpstrSetting,0); if (lstrlen(lpstrSetting) > 0 && iMode == 1) return (iType == MBYESNO) ? IDYES : IDOK; + WCHAR wchFormat[LARGE_BUFFER]; if (!GetString(uidMessage,wchFormat,COUNTOF(wchFormat))) return(-1); + INFOBOX ib; ib.lpstrMessage = LocalAlloc(LPTR, HUGE_BUFFER * sizeof(WCHAR)); StringCchVPrintfW(ib.lpstrMessage,HUGE_BUFFER,wchFormat,(LPVOID)((PUINT_PTR)&uidMessage + 1)); ib.lpstrSetting = (LPWSTR)lpstrSetting; ib.bDisableCheckBox = (StringCchLenW(szIniFile,COUNTOF(szIniFile)) == 0 || lstrlen(lpstrSetting) == 0 || iMode == 2) ? TRUE : FALSE; + int idDlg = IDD_INFOBOX; if (iType == MBYESNO) idDlg = IDD_INFOBOX2; else if (iType == MBOKCANCEL) idDlg = IDD_INFOBOX3; HWND focus = GetFocus(); - hwnd = focus ? focus : g_hwndMain; + HWND hwnd = focus ? focus : g_hwndMain; MessageBeep(MB_ICONEXCLAMATION); diff --git a/src/Dialogs.h b/src/Dialogs.h index 54d25498b..8b35944cd 100644 --- a/src/Dialogs.h +++ b/src/Dialogs.h @@ -41,6 +41,7 @@ BOOL SelectDefEncodingDlg(HWND,int *); BOOL SelectEncodingDlg(HWND,int *); BOOL RecodeDlg(HWND,int *); BOOL SelectDefLineEndingDlg(HWND,int *); +void UpdateCheck(); INT_PTR InfoBox(int,LPCWSTR,int,...); diff --git a/src/Notepad3.c b/src/Notepad3.c index 5e0ec495b..ee2480d0e 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -4757,12 +4757,18 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) break; + case IDM_HELP_UPDATECHECK: + UpdateCheck(); + break; + + case CMD_WEBACTION1: case CMD_WEBACTION2: { + WCHAR szCmdTemplate[256] = { L'\0' }; + LPWSTR lpszTemplateName = (LOWORD(wParam) == CMD_WEBACTION1) ? L"WebTemplate1" : L"WebTemplate2"; - WCHAR szCmdTemplate[256] = { L'\0' }; BOOL bCmdEnabled = IniGetString(L"Settings2",lpszTemplateName,L"",szCmdTemplate,COUNTOF(szCmdTemplate)); if (bCmdEnabled) { diff --git a/src/Notepad3.rc b/src/Notepad3.rc index 8be1621e8..4e593e103 100644 --- a/src/Notepad3.rc +++ b/src/Notepad3.rc @@ -181,8 +181,8 @@ BEGIN END POPUP "&Block" BEGIN - MENUITEM "&Indent\t(Tab)", IDM_EDIT_INDENT - MENUITEM "&Unindent\t(Shift+Tab)", IDM_EDIT_UNINDENT + MENUITEM "&Indent\t(Tab)", IDM_EDIT_INDENT + MENUITEM "&Unindent\t(Shift+Tab)", IDM_EDIT_UNINDENT MENUITEM SEPARATOR POPUP "&Enclose Selection" BEGIN @@ -310,9 +310,9 @@ BEGIN MENUITEM "Match &Case Sensitive", IDM_VIEW_MARKOCCUR_CASE POPUP "Match &Whole Word Only" BEGIN - MENUITEM "OFF", IDM_VIEW_MARKOCCUR_WNONE - MENUITEM "Match &Selected Word", IDM_VIEW_MARKOCCUR_WORD - MENUITEM "Match &Current Word", IDM_VIEW_MARKOCCUR_CURRENT + MENUITEM "OFF", IDM_VIEW_MARKOCCUR_WNONE + MENUITEM "Match &Selected Word", IDM_VIEW_MARKOCCUR_WORD + MENUITEM "Match &Current Word", IDM_VIEW_MARKOCCUR_CURRENT END END MENUITEM SEPARATOR @@ -322,61 +322,62 @@ BEGIN MENUITEM "Code &Folding\tCtrl+Shift+Alt+F", IDM_VIEW_FOLDING MENUITEM "&Toggle All Folds\tCtrl+Shift+F", IDM_VIEW_TOGGLEFOLDS MENUITEM SEPARATOR - MENUITEM "Zoom &In\tCtrl++", IDM_VIEW_ZOOMIN - MENUITEM "Zoom &Out\tCtrl+-", IDM_VIEW_ZOOMOUT - MENUITEM "Reset &Zoom\tCtrl+0", IDM_VIEW_RESETZOOM + MENUITEM "Zoom &In\tCtrl++", IDM_VIEW_ZOOMIN + MENUITEM "Zoom &Out\tCtrl+-", IDM_VIEW_ZOOMOUT + MENUITEM "Reset &Zoom\tCtrl+0", IDM_VIEW_RESETZOOM END POPUP "&Settings" BEGIN - MENUITEM "Insert Tabs as &Spaces", IDM_VIEW_TABSASSPACES - MENUITEM "&Tab Settings...\tCtrl+T", IDM_VIEW_TABSETTINGS - MENUITEM "&Word Wrap Settings...", IDM_VIEW_WORDWRAPSETTINGS - MENUITEM "&Long Line Settings...", IDM_VIEW_LONGLINESETTINGS - MENUITEM "Auto In&dent Text", IDM_VIEW_AUTOINDENTTEXT + MENUITEM "Insert Tabs as &Spaces", IDM_VIEW_TABSASSPACES + MENUITEM "&Tab Settings...\tCtrl+T", IDM_VIEW_TABSETTINGS + MENUITEM "&Word Wrap Settings...", IDM_VIEW_WORDWRAPSETTINGS + MENUITEM "&Long Line Settings...", IDM_VIEW_LONGLINESETTINGS + MENUITEM "Auto In&dent Text", IDM_VIEW_AUTOINDENTTEXT MENUITEM "Auto Close &HTML/XML\tCtrl+Shift+H", IDM_VIEW_AUTOCLOSETAGS - MENUITEM "Auto Complete Wo&rds", IDM_VIEW_AUTOCOMPLETEWORDS + MENUITEM "Auto Complete Wo&rds", IDM_VIEW_AUTOCOMPLETEWORDS MENUITEM "&Accelerated Word Navigation", IDM_VIEW_ACCELWORDNAV MENUITEM SEPARATOR - MENUITEM "&Reuse Window", IDM_VIEW_REUSEWINDOW - MENUITEM "Sticky Window &Position", IDM_VIEW_STICKYWINPOS - MENUITEM "&Always On Top\tAlt+T", IDM_VIEW_ALWAYSONTOP - MENUITEM "Minimi&ze To Tray", IDM_VIEW_MINTOTRAY + MENUITEM "&Reuse Window", IDM_VIEW_REUSEWINDOW + MENUITEM "Sticky Window &Position", IDM_VIEW_STICKYWINPOS + MENUITEM "&Always On Top\tAlt+T", IDM_VIEW_ALWAYSONTOP + MENUITEM "Minimi&ze To Tray", IDM_VIEW_MINTOTRAY MENUITEM "Transparent &Mode\tCtrl+Numpad_*", IDM_VIEW_TRANSPARENT MENUITEM SEPARATOR - MENUITEM "Single &File Instance", IDM_VIEW_SINGLEFILEINSTANCE + MENUITEM "Single &File Instance", IDM_VIEW_SINGLEFILEINSTANCE MENUITEM "File &Change Notification...\tAlt+F5", IDM_VIEW_CHANGENOTIFY POPUP "Window Title Displa&y" BEGIN - MENUITEM "Filename &Only", IDM_VIEW_SHOWFILENAMEONLY - MENUITEM "Filename and &Directory", IDM_VIEW_SHOWFILENAMEFIRST - MENUITEM "Full &Pathname", IDM_VIEW_SHOWFULLPATH - MENUITEM "&Text Excerpt\tCtrl+9", IDM_VIEW_SHOWEXCERPT + MENUITEM "Filename &Only", IDM_VIEW_SHOWFILENAMEONLY + MENUITEM "Filename and &Directory", IDM_VIEW_SHOWFILENAMEFIRST + MENUITEM "Full &Pathname", IDM_VIEW_SHOWFULLPATH + MENUITEM "&Text Excerpt\tCtrl+9", IDM_VIEW_SHOWEXCERPT END POPUP "Esc &Key Function" BEGIN - MENUITEM "&None", IDM_VIEW_NOESCFUNC - MENUITEM "&Minimize Notepad3", IDM_VIEW_ESCMINIMIZE - MENUITEM "E&xit Notepad3", IDM_VIEW_ESCEXIT + MENUITEM "&None", IDM_VIEW_NOESCFUNC + MENUITEM "&Minimize Notepad3", IDM_VIEW_ESCMINIMIZE + MENUITEM "E&xit Notepad3", IDM_VIEW_ESCEXIT END - MENUITEM "Sa&ve Before Running Tools", IDM_VIEW_SAVEBEFORERUNNINGTOOLS - MENUITEM "Remember Recent F&iles", IDM_VIEW_NOSAVERECENT - MENUITEM "Preserve Caret &Position", IDM_VIEW_NOPRESERVECARET - MENUITEM "Remember S&earch Strings", IDM_VIEW_NOSAVEFINDREPL + MENUITEM "Sa&ve Before Running Tools", IDM_VIEW_SAVEBEFORERUNNINGTOOLS + MENUITEM "Remember Recent F&iles", IDM_VIEW_NOSAVERECENT + MENUITEM "Preserve Caret &Position", IDM_VIEW_NOPRESERVECARET + MENUITEM "Remember S&earch Strings", IDM_VIEW_NOSAVEFINDREPL MENUITEM SEPARATOR - MENUITEM "Sh&ow Toolbar", IDM_VIEW_TOOLBAR - MENUITEM "C&ustomize Toolbar...", IDM_VIEW_CUSTOMIZETB - MENUITEM "Sh&ow Statusbar", IDM_VIEW_STATUSBAR + MENUITEM "Sh&ow Toolbar", IDM_VIEW_TOOLBAR + MENUITEM "C&ustomize Toolbar...", IDM_VIEW_CUSTOMIZETB + MENUITEM "Sh&ow Statusbar", IDM_VIEW_STATUSBAR MENUITEM SEPARATOR - MENUITEM "Save Settings On E&xit", IDM_VIEW_SAVESETTINGS - MENUITEM "Save Settings &Now\tF7", IDM_VIEW_SAVESETTINGSNOW + MENUITEM "Save Settings On E&xit", IDM_VIEW_SAVESETTINGS + MENUITEM "Save Settings &Now\tF7", IDM_VIEW_SAVESETTINGSNOW MENUITEM "&Open Settings File\tCtrl+F7", CMD_OPENINIFILE END POPUP "&?" BEGIN - MENUITEM "&Online Documentation\tF1", IDM_HELP_ONLINEDOCUMENTATION + MENUITEM "&Online Documentation\tF1", IDM_HELP_ONLINEDOCUMENTATION MENUITEM SEPARATOR - MENUITEM "&About...", IDM_HELP_ABOUT - MENUITEM "&Command Line Help", IDM_HELP_CMD + MENUITEM "&About...", IDM_HELP_ABOUT + MENUITEM "&Command Line Help", IDM_HELP_CMD + MENUITEM "Check for Updates", IDM_HELP_UPDATECHECK END END @@ -535,7 +536,7 @@ BEGIN VK_DOWN, IDM_EDIT_MOVELINEDOWN, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_ESCAPE, CMD_ESCAPE, VIRTKEY, NOINVERT VK_ESCAPE, CMD_SHIFTESC, VIRTKEY, SHIFT, NOINVERT - VK_F1, IDM_HELP_ONLINEDOCUMENTATION, VIRTKEY, NOINVERT + VK_F1, IDM_HELP_ONLINEDOCUMENTATION, VIRTKEY, NOINVERT VK_F11, CMD_LEXDEFAULT, VIRTKEY, NOINVERT VK_F11, CMD_LEXHTML, VIRTKEY, CONTROL, NOINVERT VK_F11, CMD_LEXXML, VIRTKEY, SHIFT, NOINVERT diff --git a/src/Version.h b/src/Version.h index b451c5aa8..5be69c46d 100644 --- a/src/Version.h +++ b/src/Version.h @@ -43,6 +43,8 @@ #define VERSION_WEBPAGE2DISPLAY L"http://www.flos-freeware.ch" #define VERSION_SCIVERSION L"Scintilla Library Ver: " STRINGIFY(SCINTILLA_VER) L" (RegEx:Onigmo v." STRINGIFY(ONIGMO_REGEX_VER) L")" +#define VERSION_UPDATE_CHECK L"https://www.rizonesoft.com/notepad3/update.html?version=" VERSION_FILEVERSION + #if defined(_WIN64) // #define VERSION_FILEVERSION_LONG L"Notepad3 (64-bit) " STRINGIFY(VERSION_MAJOR) L" Build " \ // STRINGIFY(VERSION_BUILD) @@ -55,7 +57,6 @@ #endif - // Compiler specific #if defined(_MSC_VER) #if (_MSC_VER >= 1912) diff --git a/src/resource.h b/src/resource.h index f8e11dd8b..f5a969e00 100644 --- a/src/resource.h +++ b/src/resource.h @@ -30,7 +30,7 @@ #define IDC_INFOBOXTEXT 124 #define IDB_OPEN 125 #define IDR_ACCFINDREPLACE 126 -#define IDC_STYLELABEL_ROOT 127 +#define IDC_STYLELABEL_ROOT 127 #define IDC_STYLELABEL 128 #define IDC_STYLEEDIT_ROOT 129 #define IDC_STYLEEDIT 130 @@ -159,6 +159,7 @@ #define IDC_EDIT3 510 #define IDS_PASS_FAILURE 511 #define IDS_NOPASS 512 +#define IDM_HELP_UPDATECHECK 513 #define IDS_APPTITLE 10000 #define IDS_APPTITLE_ELEVATED 10001 #define IDS_APPTITLE_PASTEBOARD 10002 @@ -492,7 +493,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 601 -#define _APS_NEXT_COMMAND_VALUE 703 +#define _APS_NEXT_COMMAND_VALUE 701 #define _APS_NEXT_CONTROL_VALUE 801 #define _APS_NEXT_SYMED_VALUE 901 #endif