Fixed MakeNSISW default pushbutton and tab order

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6403 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2013-08-07 19:26:03 +00:00
parent 2395ded256
commit 4d46324599
8 changed files with 166 additions and 211 deletions

View file

@ -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.compressor == COMPRESSOR_BEST) {
if (g_sdata.retcode==0 && FileExists(g_sdata.output_exe)) { 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); wsprintf(temp_file_name,_T("%s_makensisw_temp"),g_sdata.output_exe);
if(!lstrcmpi(g_sdata.compressor_name,compressor_names[(int)COMPRESSOR_SCRIPT+1])) { if(!lstrcmpi(g_sdata.compressor_name,compressor_names[(int)COMPRESSOR_SCRIPT+1])) {
SetCompressorStats(); 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 // Added by Darren Owen (DrO) on 1/10/2003
case IDM_RECOMPILE_TEST: case IDM_RECOMPILE_TEST:
case IDC_RECOMPILE_TEST:
{ {
g_sdata.recompile_test = 1; g_sdata.recompile_test = 1;
CompileNSISScript(); CompileNSISScript();
@ -857,31 +856,15 @@ INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
void EnableSymbolSetButtons(HWND hwndDlg) void EnableSymbolSetButtons(HWND hwndDlg)
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETCOUNT, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETCOUNT, 0, 0);
if(n > 0) { EnableWindow(GetDlgItem(hwndDlg, IDC_CLEAR), n > 0);
EnableWindow(GetDlgItem(hwndDlg, IDCLEAR), TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE), n > 0);
EnableWindow(GetDlgItem(hwndDlg, IDSAVE), TRUE);
}
else {
EnableWindow(GetDlgItem(hwndDlg, IDCLEAR), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDSAVE), FALSE);
}
} }
void EnableSymbolEditButtons(HWND hwndDlg) void EnableSymbolEditButtons(HWND hwndDlg)
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0);
if(n == 0) { EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), n == 1);
EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), n != 0);
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);
}
} }
void SetSymbols(HWND hwndDlg, TCHAR **symbols) void SetSymbols(HWND hwndDlg, TCHAR **symbols)
@ -895,9 +878,9 @@ void SetSymbols(HWND hwndDlg, TCHAR **symbols)
} }
} }
EnableSymbolSetButtons(hwndDlg); EnableSymbolSetButtons(hwndDlg);
EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE);
} }
TCHAR **GetSymbols(HWND hwndDlg) TCHAR **GetSymbols(HWND hwndDlg)
@ -984,7 +967,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar
case IDCANCEL: case IDCANCEL:
EndDialog(hwndDlg, TRUE); EndDialog(hwndDlg, TRUE);
break; break;
case IDRIGHT: case IDC_RIGHT:
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0);
if(n > 0) { if(n > 0) {
@ -1020,7 +1003,7 @@ INT_PTR CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar
} }
} }
break; break;
case IDLEFT: case IDC_LEFT:
{ {
if (SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0) != 1) if (SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0) != 1)
break; 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); SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_SETTEXT, 0, (LPARAM)buf);
MemFree(buf); MemFree(buf);
SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_DELETESTRING, (WPARAM)index, 0); SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_DELETESTRING, (WPARAM)index, 0);
EnableWindow(GetDlgItem(hwndDlg, IDLEFT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE);
EnableSymbolSetButtons(hwndDlg); EnableSymbolSetButtons(hwndDlg);
} }
} }
} }
break; break;
case IDCLEAR: case IDC_CLEAR:
{ {
SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_RESETCONTENT , 0, 0); SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_RESETCONTENT , 0, 0);
EnableSymbolSetButtons(hwndDlg); EnableSymbolSetButtons(hwndDlg);
} }
break; break;
case IDLOAD: case IDC_LOAD:
case IDSAVE: 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); DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_SYMBOLSET),hwndDlg,(DLGPROC)SymbolSetProc);
} }
break; break;
case IDDEL: case IDC_DEL:
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOLS, LB_GETSELCOUNT, 0, 0);
int *items = (int*) MemAllocZI(n*sizeof(int)); 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) if(HIWORD(wParam) == EN_CHANGE)
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_SYMBOL, WM_GETTEXTLENGTH, 0, 0);
if(n > 0) { EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), n > 0);
EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), TRUE);
}
else {
EnableWindow(GetDlgItem(hwndDlg, IDRIGHT), FALSE);
}
} }
break; break;
case IDC_SYMBOLS: 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) else if (HIWORD(wParam) == LBN_DBLCLK)
{ {
SendDlgItemMessage(hwndDlg, IDLEFT, BM_CLICK, 0, 0); SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_CLICK, 0, 0);
} }
break; break;
} }
@ -1154,7 +1132,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
HWND hwndEdit; HWND hwndEdit;
HKEY hKey; HKEY hKey;
EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE);
if (OpenRegSettingsKey(hKey)) { if (OpenRegSettingsKey(hKey)) {
HKEY hSubKey; HKEY hSubKey;
@ -1221,7 +1199,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
EndDialog(hwndDlg, TRUE); EndDialog(hwndDlg, TRUE);
break; break;
} }
case IDDEL: case IDC_DEL:
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_NAMES, CB_GETCURSEL, 0, 0); int n = SendDlgItemMessage(hwndDlg, IDC_NAMES, CB_GETCURSEL, 0, 0);
if(n != CB_ERR) { if(n != CB_ERR) {
@ -1233,7 +1211,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
} }
MemFree(buf); MemFree(buf);
} }
EnableWindow(GetDlgItem(hwndDlg, IDDEL), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DEL), FALSE);
break; break;
} }
case IDC_NAMES: case IDC_NAMES:
@ -1241,7 +1219,7 @@ INT_PTR CALLBACK SymbolSetProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
if(HIWORD(wParam) == CBN_SELCHANGE) if(HIWORD(wParam) == CBN_SELCHANGE)
{ {
int n = SendDlgItemMessage(hwndDlg, IDC_NAMES, CB_GETCURSEL, 0, 0); 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) else if(HIWORD(wParam) == CBN_DBLCLK)
{ {

View file

@ -5,11 +5,8 @@
#define IDS_LOADSCRIPT 1 #define IDS_LOADSCRIPT 1
#define IDS_SAVE 2 #define IDS_SAVE 2
#define IDS_EXIT 3 #define IDS_EXIT 3
#define IDLOAD 3
#define IDS_COPY 4 #define IDS_COPY 4
#define IDSAVE 4
#define IDS_FIND 5 #define IDS_FIND 5
#define IDCLEAR 5
#define IDS_RECOMPILE 6 #define IDS_RECOMPILE 6
#define IDS_SETTINGS 7 #define IDS_SETTINGS 7
#define IDS_COMPRESSOR 8 #define IDS_COMPRESSOR 8
@ -46,69 +43,74 @@
#define IDB_TOOLBAR24D 130 #define IDB_TOOLBAR24D 130
#define IDB_BITMAP2 131 #define IDB_BITMAP2 131
#define IDB_TOOLBAR24H 132 #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_ABOUT 501
#define IDM_EXIT 502 #define IDM_NSISHOME 502
#define IDM_SAVE 503 #define IDM_FORUM 503
#define IDM_COPY 504 #define IDM_NSISUPDATE 404
#define IDM_COPYSELECTED 505 #define IDM_SELECTALL 505
#define IDM_RECOMPILE 506 #define IDM_DOCS 506
#define IDM_NSISHOME 507 #define IDM_LOADSCRIPT 507
#define IDC_TEST 1000 #define IDM_EDITSCRIPT 508
#define IDC_ABOUTVERSION 1001 #define IDM_SAVE 509
#define IDC_ABOUTCOPY 1003 #define IDM_COPY 510
#define IDC_ABOUTPORTIONS 1005 #define IDM_COPYSELECTED 511
#define IDC_CONTRIB 1009 #define IDM_FIND 512
#define IDC_NSISVER 1010 #define IDM_CLEARLOG 513
#define IDC_OTHERCONTRIB 1016 #define IDM_RECOMPILE 514
#define IDC_SYMBOL 1017 #define IDM_COMPRESSOR 515
#define IDC_VALUE 1018 #define IDM_TEST 516
#define IDRIGHT 1019 #define IDM_FILE 517
#define IDLEFT 1020 #define IDM_EDIT 518
#define IDC_SYMBOLS 1021 #define IDM_SCRIPT 519
#define IDC_RECOMPILE_TEST 1022 #define IDM_TOOLS 520
#define IDC_COMPRESSOR 1025 #define IDM_HELP 521
#define IDC_NAMES 1027 #define IDM_EXIT 522
#define IDDEL 1028 #define IDM_CLEAR_MRU_LIST 523
#define IDM_COMPRESSOR 40001 #define IDM_COMPRESSOR_SUBMENU 524
#define IDM_TEST 40002 #define IDM_COMPRESSOR_SCRIPT 525
#define IDM_EDITSCRIPT 40003 #define IDM_ZLIB 526
#define IDM_DOCS 40004 #define IDM_ZLIB_SOLID 527
#define IDM_LOADSCRIPT 40005 #define IDM_BZIP2 528
#define IDM_FIND 40006 #define IDM_BZIP2_SOLID 529
#define IDM_SELECTALL 40007 #define IDM_LZMA 530
#define IDM_CLEARLOG 40009 #define IDM_LZMA_SOLID 531
#define IDM_BROWSESCR 40013 #define IDM_BEST 532
#define IDM_FORUM 40016 #define IDM_RECOMPILE_TEST 533
#define IDM_NSISUPDATE 40018 #define IDM_CANCEL 534
#define IDM_COMPRESSOR_SCRIPT 40020 #define IDM_SETTINGS 535
#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
// Next default values for new objects // Next default values for new objects
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 133 #define _APS_NEXT_RESOURCE_VALUE 133
#define _APS_NEXT_COMMAND_VALUE 40043 #define _APS_NEXT_COMMAND_VALUE 536
#define _APS_NEXT_CONTROL_VALUE 1032 #define _APS_NEXT_CONTROL_VALUE 241
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif

View file

@ -161,13 +161,13 @@ CAPTION "MakeNSISW"
MENU IDM_MENU MENU IDM_MENU
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "",IDC_LOGWIN,RICHEDIT_CLASS,TCS_HOTTRACK | TCS_BUTTONS | CONTROL "",IDC_LOGWIN,RICHEDIT_CLASS,ES_MULTILINE | ES_AUTOVSCROLL |
TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | ES_NOHIDESEL | ES_READONLY | ES_SAVESEL |
WS_BORDER | WS_VSCROLL,7,22,345,186 WS_TABSTOP | WS_BORDER | WS_VSCROLL,7,22,345,186
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,220,346,1 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,220,346,1
LTEXT "",IDC_VERSION,7,230,200,12,WS_DISABLED LTEXT "",IDC_VERSION,7,230,200,12,WS_DISABLED
DEFPUSHBUTTON "&Close",IDCANCEL,296,226,49,15 DEFPUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED | WS_TABSTOP
PUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED PUSHBUTTON "&Close",IDCANCEL,296,226,49,15,WS_TABSTOP
END END
DLG_ABOUT DIALOGEX 0, 0, 233, 126 DLG_ABOUT DIALOGEX 0, 0, 233, 126
@ -203,16 +203,16 @@ BEGIN
EDITTEXT IDC_SYMBOL,18,96,68,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE EDITTEXT IDC_SYMBOL,18,96,68,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE
LTEXT "&Value (optional)",IDC_STATIC,18,120,50,8 LTEXT "&Value (optional)",IDC_STATIC,18,120,50,8
EDITTEXT IDC_VALUE,18,132,66,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE EDITTEXT IDC_VALUE,18,132,66,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE
PUSHBUTTON "&Add >>",IDRIGHT,96,84,49,14 PUSHBUTTON "&Add >>",IDC_RIGHT,96,84,49,14
PUSHBUTTON "&Edit <<",IDLEFT,96,108,49,14 PUSHBUTTON "&Edit <<",IDC_LEFT,96,108,49,14
PUSHBUTTON "&Delete",IDDEL,96,132,49,14 PUSHBUTTON "&Delete",IDC_DEL,96,132,49,14
LTEXT "Symbol List",IDC_STATIC,156,66,118,9 LTEXT "Symbol List",IDC_STATIC,156,66,118,9
LISTBOX IDC_SYMBOLS,156,78,121,79,LBS_NOINTEGRALHEIGHT | LISTBOX IDC_SYMBOLS,156,78,121,79,LBS_NOINTEGRALHEIGHT |
LBS_EXTENDEDSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, LBS_EXTENDEDSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,
WS_EX_CLIENTEDGE WS_EX_CLIENTEDGE
PUSHBUTTON "&Clear",IDCLEAR,156,162,36,14 PUSHBUTTON "&Clear",IDC_CLEAR,156,162,36,14
PUSHBUTTON "&Load",IDLOAD,198,162,36,14 PUSHBUTTON "&Load",IDC_LOAD,198,162,36,14
PUSHBUTTON "&Save",IDSAVE,240,162,36,14 PUSHBUTTON "&Save",IDC_SAVE,240,162,36,14
END END
DLG_COMPRESSOR DIALOGEX 0, 0, 250, 53 DLG_COMPRESSOR DIALOGEX 0, 0, 250, 53
@ -238,7 +238,7 @@ BEGIN
LTEXT "Symbol Definitions Set Name:",IDC_STATIC,6,6,101,10 LTEXT "Symbol Definitions Set Name:",IDC_STATIC,6,6,101,10
COMBOBOX IDC_NAMES,6,17,174,85,CBS_SIMPLE | CBS_AUTOHSCROLL | COMBOBOX IDC_NAMES,6,17,174,85,CBS_SIMPLE | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "&Delete",IDDEL,6,102,50,14 PUSHBUTTON "&Delete",IDC_DEL,6,102,50,14
END END

View file

@ -63,16 +63,9 @@ void CreateToolBar()
tbButton[TBB_NSISHOME] = CreateToolBarButton(IDB_NSISHOME, IDM_NSISHOME, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); 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); tbButton[TBB_DOCS] = CreateToolBarButton(IDB_DOCS, IDM_DOCS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
g_toolbar.hwnd = CreateWindowEx ( g_toolbar.hwnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
0L,
TOOLBARCLASSNAME,
_T(""),
WS_CHILD | WS_VISIBLE | TBSTYLE_TRANSPARENT | TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | TBSTYLE_TRANSPARENT | TBSTYLE_FLAT,
0, 0, 0, 30, 0, 0, 0, 30, g_sdata.hwnd, NULL, g_sdata.hInstance, NULL);
g_sdata.hwnd,
(HMENU) TOOLBAR_ID,
g_sdata.hInstance,
NULL );
SendMessage(g_toolbar.hwnd, TB_BUTTONSTRUCTSIZE, sizeof(tbButton[0]), 0); SendMessage(g_toolbar.hwnd, TB_BUTTONSTRUCTSIZE, sizeof(tbButton[0]), 0);
SendMessage(g_toolbar.hwnd, TB_ADDBUTTONS, BUTTONCOUNT, (LONG) &tbButton); SendMessage(g_toolbar.hwnd, TB_ADDBUTTONS, BUTTONCOUNT, (LONG) &tbButton);
@ -121,11 +114,8 @@ void UpdateToolBarCompressorButton()
{ {
int iBitmap; int iBitmap;
int iString; int iString;
TCHAR szBuffer[124]; // increased to 124 for good measure, also. TCHAR szBuffer[124]; // increased to 124 for good measure, also.
TCHAR temp[64]; // increased to 64. Hit limit 08/20/2007 -- Jim Park. TCHAR temp[64]; // increased to 64. Hit limit 08/20/2007 -- Jim Park.
TOOLINFO ti;
memset(&ti, 0, sizeof(TOOLINFO));
if(g_sdata.compressor >= COMPRESSOR_SCRIPT && g_sdata.compressor <= COMPRESSOR_BEST) { if(g_sdata.compressor >= COMPRESSOR_SCRIPT && g_sdata.compressor <= COMPRESSOR_BEST) {
iBitmap = compressor_bitmaps[(int)g_sdata.compressor]; iBitmap = compressor_bitmaps[(int)g_sdata.compressor];
@ -134,27 +124,21 @@ void UpdateToolBarCompressorButton()
else { else {
return; return;
} }
LoadString(g_sdata.hInstance,
IDS_COMPRESSOR, LoadString(g_sdata.hInstance, IDS_COMPRESSOR, temp, COUNTOF(temp));
temp, szBuffer[0] = _T('\0');
COUNTOF(temp));
memset(szBuffer, 0, sizeof(szBuffer));
lstrcat(szBuffer,temp); lstrcat(szBuffer,temp);
lstrcat(szBuffer,_T(" [")); lstrcat(szBuffer,_T(" ["));
LoadString(g_sdata.hInstance, LoadString(g_sdata.hInstance, iString, temp, COUNTOF(temp));
iString,
temp,
COUNTOF(temp));
lstrcat(szBuffer,temp); lstrcat(szBuffer,temp);
lstrcat(szBuffer,_T("]")); lstrcat(szBuffer,_T("]"));
SendMessage(g_toolbar.hwnd, TB_CHANGEBITMAP, (WPARAM) IDM_COMPRESSOR, (LPARAM) MAKELPARAM(iBitmap, 0)); SendMessage(g_toolbar.hwnd, TB_CHANGEBITMAP, (WPARAM) IDM_COMPRESSOR, (LPARAM) MAKELPARAM(iBitmap, 0));
ti.cbSize = sizeof(TOOLINFO); TOOLINFO ti = { sizeof(TOOLINFO), 0 };
ti.uFlags = 0;
ti.hinst = g_sdata.hInstance;
ti.hwnd = g_toolbar.hwnd; ti.hwnd = g_toolbar.hwnd;
ti.uId = (UINT)TBB_COMPRESSOR; ti.uId = (UINT)TBB_COMPRESSOR;
ti.hinst = g_sdata.hInstance;
SendMessage(g_tip.tip, TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti); SendMessage(g_tip.tip, TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
ti.lpszText = (LPTSTR)szBuffer; ti.lpszText = (LPTSTR)szBuffer;
SendMessage(g_tip.tip, TTM_SETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti); SendMessage(g_tip.tip, TTM_SETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
@ -205,11 +189,10 @@ void AddToolBarTooltips()
AddToolBarButtonTooltip(TBB_DOCS, IDS_DOCS); AddToolBarButtonTooltip(TBB_DOCS, IDS_DOCS);
} }
void EnableToolBarButton(int id, BOOL enabled) void EnableToolBarButton(int cmdid, BOOL enabled)
{ {
UINT state = (enabled?TBSTATE_ENABLED:TBSTATE_INDETERMINATE); UINT state = enabled ? TBSTATE_ENABLED : TBSTATE_INDETERMINATE;
SendMessage(g_toolbar.hwnd, TB_SETSTATE, cmdid, MAKELPARAM(state, 0));
SendMessage(g_toolbar.hwnd, TB_SETSTATE, id, MAKELPARAM(state, 0));
} }
void ShowToolbarDropdownMenu() void ShowToolbarDropdownMenu()

View file

@ -24,8 +24,6 @@
#define TOOLBAR_H #define TOOLBAR_H
#include <commctrl.h> #include <commctrl.h>
#define TOOLBAR_ID 10001
#define BUTTONCOUNT 15 #define BUTTONCOUNT 15
#define TBB_LOADSCRIPT 0 #define TBB_LOADSCRIPT 0

View file

@ -27,6 +27,10 @@
#include "toolbar.h" #include "toolbar.h"
#include <shlwapi.h> #include <shlwapi.h>
typedef UINT8 PACKEDCMDID_T;
#define PACKCMDID(id) ( PACKEDCMDID_T((id) - IDM_CMDBASE) )
#define UNPACKCMDID(id) ( IDM_CMDBASE + (id) )
NTOOLTIP g_tip; NTOOLTIP g_tip;
LRESULT CALLBACK TipHookProc(int nCode, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK TipHookProc(int nCode, WPARAM wParam, LPARAM lParam);
@ -165,58 +169,50 @@ void ErrorMessage(HWND hwnd,const TCHAR *str) {
LogMessage(hwnd,buf); LogMessage(hwnd,buf);
} }
// Altered by Darren Owen (DrO) on 1/10/2003 void SetDialogFocus(HWND hDlg, HWND hCtl)
void Items(HWND hwnd, int on) { {
UINT mf = (!on ? MF_GRAYED : MF_ENABLED); //blogs.msdn.com/b/oldnewthing/archive/2004/08/02/205624.aspx
UINT nmf = (!on ? MF_ENABLED : MF_GRAYED); SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)hCtl, TRUE);
}
if(!on) void Items(HWND hwnd, int on)
g_sdata.focused_hwnd = GetFocus(); {
// Altered by Darren Owen (DrO) on 6/10/2003 const HWND hCloseBtn = GetDlgItem(hwnd, IDCANCEL);
else const HWND hTestBtn = GetDlgItem(hwnd, IDC_TEST);
EnableWindow(GetDlgItem(hwnd,IDCANCEL),1); 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); if(!on) g_sdata.focused_hwnd = GetFocus();
// 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);
const HMENU menu = g_sdata.menu; if(compsuccess || !on) {
EnableMenuItem(menu,IDM_CANCEL,nmf); EnableWindow(hTestBtn, on);
// Altered by Darren Owen (DrO) on 6/10/2003 EnableToolBarButton(IDM_TEST, on);
if((!g_sdata.retcode && on) || !on) EnableMenuItem(hMenu, IDM_TEST, mf);
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));
} }
else EnableMenuItem(hMenu, IDM_CANCEL, nmf);
SetFocus(g_sdata.focused_hwnd); 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() void SetCompressorStats()
@ -254,20 +250,17 @@ void CompileNSISScript() {
SetTitle(g_sdata.hwnd,NULL); SetTitle(g_sdata.hwnd,NULL);
if (lstrlen(g_sdata.script)==0) { if (lstrlen(g_sdata.script)==0) {
LogMessage(g_sdata.hwnd,USAGE); 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); static const PACKEDCMDID_T cmds [] = {
EnableToolBarButton(IDM_EDITSCRIPT,FALSE); PACKCMDID(IDM_RECOMPILE),PACKCMDID(IDM_RECOMPILE_TEST),PACKCMDID(IDM_TEST),
EnableToolBarButton(IDM_TEST,FALSE); PACKCMDID(IDM_BROWSESCR),PACKCMDID(IDM_EDITSCRIPT)
EnableToolBarButton(IDM_RECOMPILE_TEST,FALSE); };
EnableToolBarButton(IDM_BROWSESCR,FALSE); for (UINT i = 0; i < COUNTOF(cmds); ++i) {
int id = UNPACKCMDID(cmds[i]);
EnableWindow(GetDlgItem(g_sdata.hwnd,IDC_TEST),0); EnableMenuItem(g_sdata.menu,id,MF_GRAYED);
EnableToolBarButton(id,FALSE);
}
EnableWindow(GetDlgItem(g_sdata.hwnd,IDC_TEST),FALSE);
DragAcceptFiles(g_sdata.hwnd,TRUE); DragAcceptFiles(g_sdata.hwnd,TRUE);
return; return;
} }

View file

@ -50,11 +50,10 @@ void CopyToClipboard(HWND hwnd);
void ClearLog(HWND hwnd); void ClearLog(HWND hwnd);
void LogMessage(HWND hwnd,const TCHAR *str); void LogMessage(HWND hwnd,const TCHAR *str);
void ErrorMessage(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 DisableItems(hwnd) Items(hwnd, 0)
#define EnableItems(hwnd) Items(hwnd, 1) #define EnableItems(hwnd) Items(hwnd, 1)
void Items(HWND hwnd, int on); void Items(HWND hwnd, int on);
/*void DisableItems(HWND hwnd);
void EnableItems(HWND hwnd);*/
bool OpenRegSettingsKey(HKEY &hKey, bool create = false); bool OpenRegSettingsKey(HKEY &hKey, bool create = false);
DWORD ReadRegSettingDW(LPCTSTR name, const DWORD defval); DWORD ReadRegSettingDW(LPCTSTR name, const DWORD defval);
void RestoreWindowPos(HWND hwnd); void RestoreWindowPos(HWND hwnd);

View file

@ -14,6 +14,8 @@ Released on ?
\b FileReadByte no longer performs a Unicode conversion on non-ASCII characters \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 \H{v3.0a1} 3.0 Alpha 1
Released on July 14th, 2013 Released on July 14th, 2013