diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index 383afe66..9f580de1 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -311,7 +311,7 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam } if(g_sdata.compressor == COMPRESSOR_BEST) { if (g_sdata.retcode==0 && FileExists(g_sdata.output_exe)) { - TCHAR temp_file_name[1024]; + TCHAR temp_file_name[1024]; // BUGBUG: Hardcoded buffer size wsprintf(temp_file_name,_T("%s_makensisw_temp"),g_sdata.output_exe); if(!lstrcmpi(g_sdata.compressor_name,compressor_names[(int)COMPRESSOR_SCRIPT+1])) { SetCompressorStats(); @@ -584,7 +584,6 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam } // Added by Darren Owen (DrO) on 1/10/2003 case IDM_RECOMPILE_TEST: - case IDC_RECOMPILE_TEST: { g_sdata.recompile_test = 1; CompileNSISScript(); @@ -857,31 +856,15 @@ INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) void EnableSymbolSetButtons(HWND hwndDlg) { int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETCOUNT, 0, 0); - if(n > 0) { - EnableWindow(GetDlgItem(hwndDlg, IDCLEAR), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDSAVE), TRUE); - } - else { - EnableWindow(GetDlgItem(hwndDlg, IDCLEAR), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDSAVE), FALSE); - } + EnableWindow(GetDlgItem(hwndDlg, IDC_CLEAR), n > 0); + EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE), n > 0); } void EnableSymbolEditButtons(HWND hwndDlg) { int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0); - if(n == 0) { - EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); - } - else if(n == 1) { - EnableWindow(GetDlgItem(hwndDlg, IDLEFT), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), TRUE); - } - else if(n > 1) { - EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), TRUE); - } + EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), n == 1); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), n != 0); } void SetSymbols(HWND hwndDlg, TCHAR **symbols) @@ -895,9 +878,9 @@ void SetSymbols(HWND hwndDlg, TCHAR **symbols) } } EnableSymbolSetButtons(hwndDlg); - EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE); } TCHAR **GetSymbols(HWND hwndDlg) @@ -984,7 +967,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar case IDCANCEL: EndDialog(hwndDlg, TRUE); break; - case IDRIGHT: + case IDC_RIGHT: { int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0); if(n > 0) { @@ -1020,7 +1003,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar } } break; - case IDLEFT: + case IDC_LEFT: { if (SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0) != 1) break; @@ -1040,27 +1023,27 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_SETTEXT, 0, (LPARAM)buf); MemFree(buf); SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_DELETESTRING, (WPARAM)index, 0); - EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE); EnableSymbolSetButtons(hwndDlg); } } } break; - case IDCLEAR: + case IDC_CLEAR: { SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_RESETCONTENT , 0, 0); EnableSymbolSetButtons(hwndDlg); } break; - case IDLOAD: - case IDSAVE: + case IDC_LOAD: + case IDC_SAVE: { - g_symbol_set_mode = IDLOAD == LOWORD(wParam) ? 1 : 2; + g_symbol_set_mode = IDC_LOAD == LOWORD(wParam) ? 1 : 2; DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_SYMBOLSET),hwndDlg,(DLGPROC)SymbolSetProc); } break; - case IDDEL: + case IDC_DEL: { int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0); int *items = (int*) MemAllocZI(n*sizeof(int)); @@ -1078,12 +1061,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar if(HIWORD(wParam) == EN_CHANGE) { int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0); - if(n > 0) { - EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), TRUE); - } - else { - EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), FALSE); - } + EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), n > 0); } break; case IDC_SYMBOLS: @@ -1093,7 +1071,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar } else if (HIWORD(wParam) == LBN_DBLCLK) { - SendDlgItemMessage(hwndDlg, IDLEFT, BM_CLICK, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_CLICK, 0, 0); } break; } @@ -1154,7 +1132,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa HWND hwndEdit; HKEY hKey; - EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE); if (OpenRegSettingsKey(hKey)) { HKEY hSubKey; @@ -1221,7 +1199,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa EndDialog(hwndDlg, TRUE); break; } - case IDDEL: + case IDC_DEL: { int n = SendDlgItemMessage(hwndDlg, IDC_NAMES, CB_GETCURSEL, 0, 0); if(n != CB_ERR) { @@ -1233,7 +1211,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa } MemFree(buf); } - EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE); break; } case IDC_NAMES: @@ -1241,7 +1219,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa if(HIWORD(wParam) == CBN_SELCHANGE) { int n = SendDlgItemMessage(hwndDlg, IDC_NAMES, CB_GETCURSEL, 0, 0); - EnableWindow(GetDlgItem(hwndDlg, IDDEL), CB_ERR != n); + EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), CB_ERR != n); } else if(HIWORD(wParam) == CBN_DBLCLK) { diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index e6e23b5c..fc3d3598 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -5,11 +5,8 @@ #define IDS_LOADSCRIPT 1 #define IDS_SAVE 2 #define IDS_EXIT 3 -#define IDLOAD 3 #define IDS_COPY 4 -#define IDSAVE 4 #define IDS_FIND 5 -#define IDCLEAR 5 #define IDS_RECOMPILE 6 #define IDS_SETTINGS 7 #define IDS_COMPRESSOR 8 @@ -46,69 +43,74 @@ #define IDB_TOOLBAR24D 130 #define IDB_BITMAP2 131 #define IDB_TOOLBAR24H 132 -#define IDC_LOGWIN 402 -#define IDC_VERSION 405 + +#define IDC_VERSION 200 +#define IDC_LOGWIN 201 +#define IDC_TEST 202 +#define IDC_ABOUTVERSION 220 +#define IDC_ABOUTCOPY 221 +#define IDC_ABOUTPORTIONS 222 +#define IDC_CONTRIB 223 +#define IDC_NSISVER 224 +#define IDC_OTHERCONTRIB 225 +#define IDC_RIGHT 230 +#define IDC_LEFT 231 +#define IDC_CLEAR 232 +#define IDC_LOAD 233 +#define IDC_SAVE 234 +#define IDC_DEL 235 +#define IDC_SYMBOLS 236 +#define IDC_SYMBOL 237 +#define IDC_VALUE 238 +#define IDC_COMPRESSOR 239 +#define IDC_NAMES 240 + +#define IDM_MRU_FILE 6000 +#define IDM_CMDBASE 500 +#define IDM_BROWSESCR 500 #define IDM_ABOUT 501 -#define IDM_EXIT 502 -#define IDM_SAVE 503 -#define IDM_COPY 504 -#define IDM_COPYSELECTED 505 -#define IDM_RECOMPILE 506 -#define IDM_NSISHOME 507 -#define IDC_TEST 1000 -#define IDC_ABOUTVERSION 1001 -#define IDC_ABOUTCOPY 1003 -#define IDC_ABOUTPORTIONS 1005 -#define IDC_CONTRIB 1009 -#define IDC_NSISVER 1010 -#define IDC_OTHERCONTRIB 1016 -#define IDC_SYMBOL 1017 -#define IDC_VALUE 1018 -#define IDRIGHT 1019 -#define IDLEFT 1020 -#define IDC_SYMBOLS 1021 -#define IDC_RECOMPILE_TEST 1022 -#define IDC_COMPRESSOR 1025 -#define IDC_NAMES 1027 -#define IDDEL 1028 -#define IDM_COMPRESSOR 40001 -#define IDM_TEST 40002 -#define IDM_EDITSCRIPT 40003 -#define IDM_DOCS 40004 -#define IDM_LOADSCRIPT 40005 -#define IDM_FIND 40006 -#define IDM_SELECTALL 40007 -#define IDM_CLEARLOG 40009 -#define IDM_BROWSESCR 40013 -#define IDM_FORUM 40016 -#define IDM_NSISUPDATE 40018 -#define IDM_COMPRESSOR_SCRIPT 40020 -#define IDM_ZLIB 40021 -#define IDM_ZLIB_SOLID 40022 -#define IDM_BZIP2 40023 -#define IDM_BZIP2_SOLID 40024 -#define IDM_LZMA 40025 -#define IDM_LZMA_SOLID 40026 -#define IDM_MRU_FILE 40027 -#define IDM_CLEAR_MRU_LIST 40032 -#define IDM_RECOMPILE_TEST 40033 -#define IDM_BEST 40034 -#define IDM_SETTINGS 40035 -#define IDM_CANCEL 40036 -#define IDM_FILE 40037 -#define IDM_EDIT 40038 -#define IDM_SCRIPT 40039 -#define IDM_COMPRESSOR_SUBMENU 40040 -#define IDM_TOOLS 40041 -#define IDM_HELP 40042 +#define IDM_NSISHOME 502 +#define IDM_FORUM 503 +#define IDM_NSISUPDATE 404 +#define IDM_SELECTALL 505 +#define IDM_DOCS 506 +#define IDM_LOADSCRIPT 507 +#define IDM_EDITSCRIPT 508 +#define IDM_SAVE 509 +#define IDM_COPY 510 +#define IDM_COPYSELECTED 511 +#define IDM_FIND 512 +#define IDM_CLEARLOG 513 +#define IDM_RECOMPILE 514 +#define IDM_COMPRESSOR 515 +#define IDM_TEST 516 +#define IDM_FILE 517 +#define IDM_EDIT 518 +#define IDM_SCRIPT 519 +#define IDM_TOOLS 520 +#define IDM_HELP 521 +#define IDM_EXIT 522 +#define IDM_CLEAR_MRU_LIST 523 +#define IDM_COMPRESSOR_SUBMENU 524 +#define IDM_COMPRESSOR_SCRIPT 525 +#define IDM_ZLIB 526 +#define IDM_ZLIB_SOLID 527 +#define IDM_BZIP2 528 +#define IDM_BZIP2_SOLID 529 +#define IDM_LZMA 530 +#define IDM_LZMA_SOLID 531 +#define IDM_BEST 532 +#define IDM_RECOMPILE_TEST 533 +#define IDM_CANCEL 534 +#define IDM_SETTINGS 535 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 133 -#define _APS_NEXT_COMMAND_VALUE 40043 -#define _APS_NEXT_CONTROL_VALUE 1032 +#define _APS_NEXT_COMMAND_VALUE 536 +#define _APS_NEXT_CONTROL_VALUE 241 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/Contrib/Makensisw/resource.rc b/Contrib/Makensisw/resource.rc index dd281165..67fa63c3 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -161,13 +161,13 @@ CAPTION "MakeNSISW" MENU IDM_MENU FONT 8, "MS Shell Dlg" BEGIN - CONTROL "",IDC_LOGWIN,RICHEDIT_CLASS,TCS_HOTTRACK | TCS_BUTTONS | - TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | - WS_BORDER | WS_VSCROLL,7,22,345,186 + CONTROL "",IDC_LOGWIN,RICHEDIT_CLASS,ES_MULTILINE | ES_AUTOVSCROLL | + ES_NOHIDESEL | ES_READONLY | ES_SAVESEL | + WS_TABSTOP | WS_BORDER | WS_VSCROLL,7,22,345,186 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,220,346,1 LTEXT "",IDC_VERSION,7,230,200,12,WS_DISABLED - DEFPUSHBUTTON "&Close",IDCANCEL,296,226,49,15 - PUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED + DEFPUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED | WS_TABSTOP + PUSHBUTTON "&Close",IDCANCEL,296,226,49,15,WS_TABSTOP END DLG_ABOUT DIALOGEX 0, 0, 233, 126 @@ -203,16 +203,16 @@ BEGIN EDITTEXT IDC_SYMBOL,18,96,68,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE LTEXT "&Value (optional)",IDC_STATIC,18,120,50,8 EDITTEXT IDC_VALUE,18,132,66,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE - PUSHBUTTON "&Add >>",IDRIGHT,96,84,49,14 - PUSHBUTTON "&Edit <<",IDLEFT,96,108,49,14 - PUSHBUTTON "&Delete",IDDEL,96,132,49,14 + PUSHBUTTON "&Add >>",IDC_RIGHT,96,84,49,14 + PUSHBUTTON "&Edit <<",IDC_LEFT,96,108,49,14 + PUSHBUTTON "&Delete",IDC_DEL,96,132,49,14 LTEXT "Symbol List",IDC_STATIC,156,66,118,9 LISTBOX IDC_SYMBOLS,156,78,121,79,LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, WS_EX_CLIENTEDGE - PUSHBUTTON "&Clear",IDCLEAR,156,162,36,14 - PUSHBUTTON "&Load",IDLOAD,198,162,36,14 - PUSHBUTTON "&Save",IDSAVE,240,162,36,14 + PUSHBUTTON "&Clear",IDC_CLEAR,156,162,36,14 + PUSHBUTTON "&Load",IDC_LOAD,198,162,36,14 + PUSHBUTTON "&Save",IDC_SAVE,240,162,36,14 END DLG_COMPRESSOR DIALOGEX 0, 0, 250, 53 @@ -238,7 +238,7 @@ BEGIN LTEXT "Symbol Definitions Set Name:",IDC_STATIC,6,6,101,10 COMBOBOX IDC_NAMES,6,17,174,85,CBS_SIMPLE | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&Delete",IDDEL,6,102,50,14 + PUSHBUTTON "&Delete",IDC_DEL,6,102,50,14 END diff --git a/Contrib/Makensisw/toolbar.cpp b/Contrib/Makensisw/toolbar.cpp index ee4e8213..c36376b4 100644 --- a/Contrib/Makensisw/toolbar.cpp +++ b/Contrib/Makensisw/toolbar.cpp @@ -63,16 +63,9 @@ void CreateToolBar() tbButton[TBB_NSISHOME] = CreateToolBarButton(IDB_NSISHOME, IDM_NSISHOME, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_DOCS] = CreateToolBarButton(IDB_DOCS, IDM_DOCS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); - g_toolbar.hwnd = CreateWindowEx ( - 0L, - TOOLBARCLASSNAME, - _T(""), + g_toolbar.hwnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_TRANSPARENT | TBSTYLE_FLAT, - 0, 0, 0, 30, - g_sdata.hwnd, - (HMENU) TOOLBAR_ID, - g_sdata.hInstance, - NULL ); + 0, 0, 0, 30, g_sdata.hwnd, NULL, g_sdata.hInstance, NULL); SendMessage(g_toolbar.hwnd, TB_BUTTONSTRUCTSIZE, sizeof(tbButton[0]), 0); SendMessage(g_toolbar.hwnd, TB_ADDBUTTONS, BUTTONCOUNT, (LONG) &tbButton); @@ -121,11 +114,8 @@ void UpdateToolBarCompressorButton() { int iBitmap; int iString; - TCHAR szBuffer[124]; // increased to 124 for good measure, also. - TCHAR temp[64]; // increased to 64. Hit limit 08/20/2007 -- Jim Park. - TOOLINFO ti; - - memset(&ti, 0, sizeof(TOOLINFO)); + TCHAR szBuffer[124]; // increased to 124 for good measure, also. + TCHAR temp[64]; // increased to 64. Hit limit 08/20/2007 -- Jim Park. if(g_sdata.compressor >= COMPRESSOR_SCRIPT && g_sdata.compressor <= COMPRESSOR_BEST) { iBitmap = compressor_bitmaps[(int)g_sdata.compressor]; @@ -134,27 +124,21 @@ void UpdateToolBarCompressorButton() else { return; } - LoadString(g_sdata.hInstance, - IDS_COMPRESSOR, - temp, - COUNTOF(temp)); - memset(szBuffer, 0, sizeof(szBuffer)); + + LoadString(g_sdata.hInstance, IDS_COMPRESSOR, temp, COUNTOF(temp)); + szBuffer[0] = _T('\0'); lstrcat(szBuffer,temp); lstrcat(szBuffer,_T(" [")); - LoadString(g_sdata.hInstance, - iString, - temp, - COUNTOF(temp)); + LoadString(g_sdata.hInstance, iString, temp, COUNTOF(temp)); lstrcat(szBuffer,temp); lstrcat(szBuffer,_T("]")); SendMessage(g_toolbar.hwnd, TB_CHANGEBITMAP, (WPARAM) IDM_COMPRESSOR, (LPARAM) MAKELPARAM(iBitmap, 0)); - ti.cbSize = sizeof(TOOLINFO); - ti.uFlags = 0; - ti.hinst = g_sdata.hInstance; + TOOLINFO ti = { sizeof(TOOLINFO), 0 }; ti.hwnd = g_toolbar.hwnd; ti.uId = (UINT)TBB_COMPRESSOR; + ti.hinst = g_sdata.hInstance; SendMessage(g_tip.tip, TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti); ti.lpszText = (LPTSTR)szBuffer; SendMessage(g_tip.tip, TTM_SETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti); @@ -205,11 +189,10 @@ void AddToolBarTooltips() AddToolBarButtonTooltip(TBB_DOCS, IDS_DOCS); } -void EnableToolBarButton(int id, BOOL enabled) +void EnableToolBarButton(int cmdid, BOOL enabled) { - UINT state = (enabled?TBSTATE_ENABLED:TBSTATE_INDETERMINATE); - - SendMessage(g_toolbar.hwnd, TB_SETSTATE, id, MAKELPARAM(state, 0)); + UINT state = enabled ? TBSTATE_ENABLED : TBSTATE_INDETERMINATE; + SendMessage(g_toolbar.hwnd, TB_SETSTATE, cmdid, MAKELPARAM(state, 0)); } void ShowToolbarDropdownMenu() diff --git a/Contrib/Makensisw/toolbar.h b/Contrib/Makensisw/toolbar.h index 989fef61..0c1730af 100644 --- a/Contrib/Makensisw/toolbar.h +++ b/Contrib/Makensisw/toolbar.h @@ -24,8 +24,6 @@ #define TOOLBAR_H #include -#define TOOLBAR_ID 10001 - #define BUTTONCOUNT 15 #define TBB_LOADSCRIPT 0 diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index 7a8af544..23e1d2b6 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -27,6 +27,10 @@ #include "toolbar.h" #include +typedef UINT8 PACKEDCMDID_T; +#define PACKCMDID(id) ( PACKEDCMDID_T((id) - IDM_CMDBASE) ) +#define UNPACKCMDID(id) ( IDM_CMDBASE + (id) ) + NTOOLTIP g_tip; LRESULT CALLBACK TipHookProc(int nCode, WPARAM wParam, LPARAM lParam); @@ -165,58 +169,50 @@ void ErrorMessage(HWND hwnd,const TCHAR *str) { LogMessage(hwnd,buf); } -// Altered by Darren Owen (DrO) on 1/10/2003 -void Items(HWND hwnd, int on) { - UINT mf = (!on ? MF_GRAYED : MF_ENABLED); - UINT nmf = (!on ? MF_ENABLED : MF_GRAYED); +void SetDialogFocus(HWND hDlg, HWND hCtl) +{ + //blogs.msdn.com/b/oldnewthing/archive/2004/08/02/205624.aspx + SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)hCtl, TRUE); +} - if(!on) - g_sdata.focused_hwnd = GetFocus(); - // Altered by Darren Owen (DrO) on 6/10/2003 - else - EnableWindow(GetDlgItem(hwnd,IDCANCEL),1); +void Items(HWND hwnd, int on) +{ + const HWND hCloseBtn = GetDlgItem(hwnd, IDCANCEL); + const HWND hTestBtn = GetDlgItem(hwnd, IDC_TEST); + const HMENU hMenu = g_sdata.menu; + const UINT mf = (!on ? MF_GRAYED : MF_ENABLED); + const UINT nmf = (!on ? MF_ENABLED : MF_GRAYED); + const bool compsuccess = !g_sdata.retcode && on; - EnableWindow(GetDlgItem(hwnd,IDCANCEL),on); - // Altered by Darren Owen (DrO) on 6/10/2003 - if((!g_sdata.retcode && on) || !on) - EnableWindow(GetDlgItem(hwnd,IDC_TEST),on); - EnableWindow(GetDlgItem(hwnd,IDC_RECOMPILE_TEST),on); + if(!on) g_sdata.focused_hwnd = GetFocus(); - const HMENU menu = g_sdata.menu; - EnableMenuItem(menu,IDM_CANCEL,nmf); - // Altered by Darren Owen (DrO) on 6/10/2003 - if((!g_sdata.retcode && on) || !on) - EnableMenuItem(menu,IDM_TEST,mf); - const UINT mcmdbase = IDM_COMPRESSOR; - static const UINT8 mcmds [] = { - UINT8(IDM_SAVE-mcmdbase), UINT8(IDM_EXIT-mcmdbase), UINT8(IDM_LOADSCRIPT-mcmdbase), - UINT8(IDM_RECOMPILE-mcmdbase), UINT8(IDM_COPY-mcmdbase), UINT8(IDM_COPYSELECTED-mcmdbase), - UINT8(IDM_EDITSCRIPT-mcmdbase), UINT8(IDM_CLEARLOG-mcmdbase), UINT8(IDM_BROWSESCR-mcmdbase), - UINT8(IDM_RECOMPILE_TEST-mcmdbase), UINT8(IDM_COMPRESSOR-mcmdbase) - }; - for (UINT i = 0; i < COUNTOF(mcmds); ++i) - EnableMenuItem(menu,mcmdbase+mcmds[i],mf); - - // Altered by Darren Owen (DrO) on 6/10/2003 - if((!g_sdata.retcode && on) || !on) - EnableToolBarButton(IDM_TEST,on); - EnableToolBarButton(IDM_SAVE,on); - EnableToolBarButton(IDM_EXIT,on); - EnableToolBarButton(IDM_LOADSCRIPT,on); - EnableToolBarButton(IDM_RECOMPILE,on); - EnableToolBarButton(IDM_COPY,on); - EnableToolBarButton(IDM_EDITSCRIPT,on); - EnableToolBarButton(IDM_CLEARLOG,on); - EnableToolBarButton(IDM_BROWSESCR,on); - EnableToolBarButton(IDM_RECOMPILE_TEST,on); - EnableToolBarButton(IDM_COMPRESSOR,on); - - if(!on) { - if (!IsWindowEnabled(g_sdata.focused_hwnd)) - SetFocus(GetDlgItem(hwnd,IDC_LOGWIN)); + if(compsuccess || !on) { + EnableWindow(hTestBtn, on); + EnableToolBarButton(IDM_TEST, on); + EnableMenuItem(hMenu, IDM_TEST, mf); } - else - SetFocus(g_sdata.focused_hwnd); + EnableMenuItem(hMenu, IDM_CANCEL, nmf); + EnableWindow(hCloseBtn, on); + + static const PACKEDCMDID_T cmds [] = { + PACKCMDID(IDM_EXIT), PACKCMDID(IDM_LOADSCRIPT), PACKCMDID(IDM_EDITSCRIPT), + PACKCMDID(IDM_COPY), PACKCMDID(IDM_COPYSELECTED), PACKCMDID(IDM_SAVE), + PACKCMDID(IDM_CLEARLOG), PACKCMDID(IDM_BROWSESCR), + PACKCMDID(IDM_COMPRESSOR), PACKCMDID(IDM_COMPRESSOR_SUBMENU), + PACKCMDID(IDM_RECOMPILE), PACKCMDID(IDM_RECOMPILE_TEST) + }; + for (UINT i = 0; i < COUNTOF(cmds); ++i) { + UINT id = UNPACKCMDID(cmds[i]); + EnableMenuItem(hMenu, id, mf); + if (IDM_COPYSELECTED != id && IDM_COMPRESSOR_SUBMENU != id) + EnableToolBarButton(id, on); + } + + HWND hFocus = g_sdata.focused_hwnd, hOptimal = hTestBtn; + if (on && hCloseBtn == hFocus) hFocus = hOptimal; + if (!IsWindowEnabled(hFocus)) hFocus = GetDlgItem(hwnd, IDC_LOGWIN); + SetDialogFocus(hwnd, hOptimal); + SetDialogFocus(hwnd, hFocus); } void SetCompressorStats() @@ -254,20 +250,17 @@ void CompileNSISScript() { SetTitle(g_sdata.hwnd,NULL); if (lstrlen(g_sdata.script)==0) { LogMessage(g_sdata.hwnd,USAGE); - EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_TEST,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,MF_GRAYED); - // Added by Darren Owen (DrO) on 1/10/2003 - EnableMenuItem(g_sdata.menu,IDM_RECOMPILE_TEST,MF_GRAYED); - EnableToolBarButton(IDM_RECOMPILE,FALSE); - EnableToolBarButton(IDM_EDITSCRIPT,FALSE); - EnableToolBarButton(IDM_TEST,FALSE); - EnableToolBarButton(IDM_RECOMPILE_TEST,FALSE); - EnableToolBarButton(IDM_BROWSESCR,FALSE); - - EnableWindow(GetDlgItem(g_sdata.hwnd,IDC_TEST),0); + static const PACKEDCMDID_T cmds [] = { + PACKCMDID(IDM_RECOMPILE),PACKCMDID(IDM_RECOMPILE_TEST),PACKCMDID(IDM_TEST), + PACKCMDID(IDM_BROWSESCR),PACKCMDID(IDM_EDITSCRIPT) + }; + for (UINT i = 0; i < COUNTOF(cmds); ++i) { + int id = UNPACKCMDID(cmds[i]); + EnableMenuItem(g_sdata.menu,id,MF_GRAYED); + EnableToolBarButton(id,FALSE); + } + EnableWindow(GetDlgItem(g_sdata.hwnd,IDC_TEST),FALSE); DragAcceptFiles(g_sdata.hwnd,TRUE); return; } diff --git a/Contrib/Makensisw/utils.h b/Contrib/Makensisw/utils.h index c35c8425..e40ef8bb 100644 --- a/Contrib/Makensisw/utils.h +++ b/Contrib/Makensisw/utils.h @@ -50,11 +50,10 @@ void CopyToClipboard(HWND hwnd); void ClearLog(HWND hwnd); void LogMessage(HWND hwnd,const TCHAR *str); void ErrorMessage(HWND hwnd,const TCHAR *str); +void SetDialogFocus(HWND hDlg, HWND hCtl); // Use this and not SetFocus()! #define DisableItems(hwnd) Items(hwnd, 0) #define EnableItems(hwnd) Items(hwnd, 1) void Items(HWND hwnd, int on); -/*void DisableItems(HWND hwnd); -void EnableItems(HWND hwnd);*/ bool OpenRegSettingsKey(HKEY &hKey, bool create = false); DWORD ReadRegSettingDW(LPCTSTR name, const DWORD defval); void RestoreWindowPos(HWND hwnd); diff --git a/Docs/src/history.but b/Docs/src/history.but index 6ae8145d..722220ac 100644 --- a/Docs/src/history.but +++ b/Docs/src/history.but @@ -14,6 +14,8 @@ Released on ? \b FileReadByte no longer performs a Unicode conversion on non-ASCII characters +\b Fixed MakeNSISW default pushbutton and tab order + \H{v3.0a1} 3.0 Alpha 1 Released on July 14th, 2013