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.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)
{

View file

@ -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

View file

@ -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

View file

@ -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()

View file

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

View file

@ -27,6 +27,10 @@
#include "toolbar.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;
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;
}

View file

@ -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);

View file

@ -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