diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index fcc2fc50..dcb6d565 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -91,6 +91,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { char **argv; int i, j; int argSpaceSize; + bool chooseCompressor = false; g_sdata.hwnd=hwndDlg; HICON hIcon = LoadIcon(g_sdata.hInstance,MAKEINTRESOURCE(IDI_ICON)); @@ -111,6 +112,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { SendDlgItemMessage(hwndDlg,IDC_LOGWIN,WM_SETFONT,(WPARAM)hFont,0); SendDlgItemMessage(hwndDlg,IDC_LOGWIN,EM_SETBKGNDCOLOR,0,GetSysColor(COLOR_BTNFACE)); RestoreWindowPos(g_sdata.hwnd); + RestoreCompressor(); g_sdata.compressor = (NCOMPRESSOR)-1; argSpaceSize = SetArgv((char *)GetCommandLine(), &argc, &argv); @@ -128,14 +130,16 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } while(*p == ' ') p++; if(p && lstrlen(p)) { - for(j=(int)COMPRESSOR_DEFAULT+1; j < (int)COMPRESSOR_BEST; j++) { + for(j=(int)COMPRESSOR_SCRIPT+1; j < (int)COMPRESSOR_BEST; j++) { if(!lstrcmpi(p,compressor_names[j])) { - g_sdata.command_line_compressor = true; SetCompressor((NCOMPRESSOR)j); } } } } + else if(!lstrcmpi(argv[i],"/ChooseCompressor")) { + chooseCompressor = true; + } else { lstrcat(g_sdata.script,"\""); lstrcat(g_sdata.script,argv[i]); @@ -151,7 +155,10 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } if(g_sdata.compressor == (NCOMPRESSOR)-1) { - RestoreCompressor(); + SetCompressor(g_sdata.default_compressor); + } + if(chooseCompressor) { + DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_COMPRESSOR),g_sdata.hwnd,(DLGPROC)CompressorProc); } CompileNSISScript(); return TRUE; @@ -170,8 +177,8 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { case WM_DESTROY: { SaveDefines(); - SaveMRUList(); SaveCompressor(); + SaveMRUList(); SaveWindowPos(g_sdata.hwnd); DestroyTooltips(); PostQuitMessage(0); @@ -245,11 +252,11 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { if (g_sdata.retcode==0 && FileExists(g_sdata.output_exe)) { char temp_file_name[MAX_PATH]; wsprintf(temp_file_name,"%s_makensisw_temp",g_sdata.output_exe); - if(!lstrcmpi(g_sdata.compressor_name,compressor_names[(int)COMPRESSOR_DEFAULT+1])) { + if(!lstrcmpi(g_sdata.compressor_name,compressor_names[(int)COMPRESSOR_SCRIPT+1])) { SetCompressorStats(); CopyFile(g_sdata.output_exe,temp_file_name,false); g_sdata.best_compressor_name = g_sdata.compressor_name; - g_sdata.compressor_name = compressor_names[(int)COMPRESSOR_DEFAULT+2]; + g_sdata.compressor_name = compressor_names[(int)COMPRESSOR_SCRIPT+2]; ResetObjects(); ResetInputScript(); @@ -264,7 +271,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { DWORD prevSize, thisSize; - for(i=(int)COMPRESSOR_DEFAULT+2; i<(int)COMPRESSOR_BEST; i++) { + for(i=(int)COMPRESSOR_SCRIPT+2; i<(int)COMPRESSOR_BEST; i++) { if(!lstrcmpi(g_sdata.compressor_name,compressor_names[i])) { this_compressor = i; last_compressor = i-1; @@ -301,7 +308,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { if(this_compressor == ((int)COMPRESSOR_BEST - 1)) { char buf[1024]; - g_sdata.compressor_name = compressor_names[(int)COMPRESSOR_DEFAULT+1]; + g_sdata.compressor_name = compressor_names[(int)COMPRESSOR_SCRIPT+1]; g_sdata.appended = false; ResetInputScript(); @@ -316,7 +323,6 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { LogMessage(g_sdata.hwnd, g_sdata.compressor_stats); } DeleteFile(temp_file_name); - ResetObjects(); ResetInputScript(); lstrcpy(g_sdata.compressor_stats,""); } @@ -511,7 +517,6 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { return TRUE; case IDM_COMPRESSOR: { - g_sdata.command_line_compressor = false; SetCompressor((NCOMPRESSOR)(g_sdata.compressor+1)); return TRUE; } @@ -535,9 +540,9 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { CompileNSISScript(); return TRUE; } - case IDM_DEFINES: + case IDM_SETTINGS: { - DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_DEFINES),g_sdata.hwnd,(DLGPROC)DefinesProc); + DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_SETTINGS),g_sdata.hwnd,(DLGPROC)SettingsProc); return TRUE; } case IDM_TEST: @@ -624,9 +629,8 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { { int i; DWORD command = LOWORD(wParam); - for(i=(int)COMPRESSOR_DEFAULT; i<=(int)COMPRESSOR_BEST; i++) { + for(i=(int)COMPRESSOR_SCRIPT; i<=(int)COMPRESSOR_BEST; i++) { if(command == compressor_commands[i]) { - g_sdata.command_line_compressor = false; SetCompressor((NCOMPRESSOR)i); return TRUE; } @@ -790,12 +794,19 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { return FALSE; } -BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { +BOOL CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: { + int i=0; + LRESULT rv; + + for(i=(int)COMPRESSOR_SCRIPT; i<= (int)COMPRESSOR_BEST; i++) { + rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_ADDSTRING, 0, (LPARAM)compressor_display_names[i]); + } + rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_SETCURSEL, (WPARAM)g_sdata.default_compressor, (LPARAM)0); + if(g_sdata.defines) { - int i=0; while(g_sdata.defines[i]) { SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_ADDSTRING, 0, (LPARAM)g_sdata.defines[i]); i++; @@ -824,6 +835,15 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) } g_sdata.defines[n] = NULL; } + + n = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_GETCURSEL, (WPARAM)0, (LPARAM)0); + if(n >= (int)COMPRESSOR_SCRIPT && n <= (int)COMPRESSOR_BEST) { + g_sdata.default_compressor = (NCOMPRESSOR)n; + } + else { + g_sdata.default_compressor = COMPRESSOR_SCRIPT; + } + EndDialog(hwndDlg, TRUE); } break; @@ -911,6 +931,50 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) return FALSE; } +BOOL CALLBACK CompressorProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { + switch(msg) { + case WM_INITDIALOG: + { + int i=0; + LRESULT rv; + + for(i=(int)COMPRESSOR_SCRIPT; i<= (int)COMPRESSOR_BEST; i++) { + rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_ADDSTRING, 0, (LPARAM)compressor_display_names[i]); + } + rv = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_SETCURSEL, (WPARAM)g_sdata.compressor, (LPARAM)0); + + SetFocus(GetDlgItem(hwndDlg, IDC_COMPRESSOR)); + break; + } + case WM_COMMAND: + { + switch (LOWORD(wParam)) { + case IDOK: + { + int n; + n = SendDlgItemMessage(hwndDlg, IDC_COMPRESSOR, CB_GETCURSEL, (WPARAM)0, (LPARAM)0); + if(n >= (int)COMPRESSOR_SCRIPT && n <= (int)COMPRESSOR_BEST) { + SetCompressor((NCOMPRESSOR)n); + } + else { + SetCompressor(g_sdata.default_compressor); + } + + EndDialog(hwndDlg, TRUE); + break; + } + case IDCANCEL: + { + EndDialog(hwndDlg, TRUE); + break; + } + } + break; + } + } + return FALSE; +} + void SetCompressor(NCOMPRESSOR compressor) { int i; @@ -919,23 +983,23 @@ void SetCompressor(NCOMPRESSOR compressor) WORD command; char *compressor_name; - if(compressor > COMPRESSOR_DEFAULT && compressor < COMPRESSOR_BEST) { + if(compressor > COMPRESSOR_SCRIPT && compressor < COMPRESSOR_BEST) { command = compressor_commands[(int)compressor]; compressor_name = compressor_names[(int)compressor]; } else if(compressor == COMPRESSOR_BEST) { command = compressor_commands[(int)compressor]; - compressor_name = compressor_names[(int)COMPRESSOR_DEFAULT+1]; + compressor_name = compressor_names[(int)COMPRESSOR_SCRIPT+1]; } else { - compressor = COMPRESSOR_DEFAULT; - command = IDM_DEFAULT; + compressor = COMPRESSOR_SCRIPT; + command = IDM_SCRIPT; compressor_name = ""; } g_sdata.compressor = compressor; g_sdata.compressor_name = compressor_name; UpdateToolBarCompressorButton(); - for(i=(int)COMPRESSOR_DEFAULT; i<= (int)COMPRESSOR_BEST; i++) { + for(i=(int)COMPRESSOR_SCRIPT; i<= (int)COMPRESSOR_BEST; i++) { CheckMenuItem(g_sdata.menu, compressor_commands[i], MF_BYCOMMAND | MF_UNCHECKED); } CheckMenuItem(g_sdata.menu, command, MF_BYCOMMAND | MF_CHECKED); diff --git a/Contrib/Makensisw/makensisw.h b/Contrib/Makensisw/makensisw.h index ae7170ae..ca7b7c0b 100644 --- a/Contrib/Makensisw/makensisw.h +++ b/Contrib/Makensisw/makensisw.h @@ -72,7 +72,7 @@ enum { }; typedef enum { - COMPRESSOR_DEFAULT, + COMPRESSOR_SCRIPT, COMPRESSOR_ZLIB, COMPRESSOR_BZIP2, COMPRESSOR_LZMA, @@ -85,7 +85,12 @@ char *compressor_names[] = {"", "bzip2", "lzma", "Best"}; -WORD compressor_commands[] = {IDM_DEFAULT, +char *compressor_display_names[] = {"Defined in Script/MakeNSIS Default", + "ZLIB", + "BZIP2", + "7-Zip (LZMA)", + "Best Compressor"}; +WORD compressor_commands[] = {IDM_SCRIPT, IDM_ZLIB, IDM_BZIP2, IDM_LZMA, @@ -93,12 +98,12 @@ WORD compressor_commands[] = {IDM_DEFAULT, #endif #ifdef TOOLBAR_CPP -int compressor_bitmaps[] = {IDB_COMPRESSOR_DEFAULT, +int compressor_bitmaps[] = {IDB_COMPRESSOR_SCRIPT, IDB_COMPRESSOR_ZLIB, IDB_COMPRESSOR_BZIP2, IDB_COMPRESSOR_LZMA, IDB_COMPRESSOR_BEST}; -int compressor_strings[] = {IDS_DEFAULT, +int compressor_strings[] = {IDS_SCRIPT, IDS_ZLIB, IDS_BZIP2, IDS_LZMA, @@ -114,7 +119,8 @@ DWORD WINAPI MakeNSISProc(LPVOID p); BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/); BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +BOOL CALLBACK SettingsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +BOOL CALLBACK CompressorProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); void CompileNSISScript(); char* BuildDefines(); void SetCompressor(NCOMPRESSOR); @@ -144,11 +150,11 @@ typedef struct NSISScriptData { HANDLE thread; HWND focused_hwnd; CHARRANGE textrange; + NCOMPRESSOR default_compressor; NCOMPRESSOR compressor; char *compressor_name; char compressor_stats[512]; char *best_compressor_name; - BOOL command_line_compressor; // Added by Darren Owen (DrO) on 1/10/2003 int recompile_test; } NSCRIPTDATA; diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index 0e14992f..97a9e525 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -8,7 +8,7 @@ #define IDS_COPY 4 #define IDS_FIND 5 #define IDS_RECOMPILE 6 -#define IDS_DEFINES 7 +#define IDS_SETTINGS 7 #define IDS_COMPRESSOR 8 #define IDS_TEST 9 #define IDS_EDITSCRIPT 10 @@ -18,7 +18,7 @@ #define IDS_FORUM 15 #define IDS_NSISUPDATE 16 #define IDS_DOCS 17 -#define IDS_DEFAULT 18 +#define IDS_SCRIPT 18 #define IDS_ZLIB 19 #define IDS_BZIP2 20 #define IDS_RECOMPILE_TEST 21 @@ -31,9 +31,10 @@ #define IDK_ACCEL 105 #define IDI_SHELL 112 #define IDB_LOGO 115 -#define DLG_DEFINES 116 +#define DLG_SETTINGS 116 #define IDB_BITMAP1 120 #define IDB_TOOLBAR 122 +#define DLG_COMPRESSOR 124 #define IDC_LOGWIN 402 #define IDC_VERSION 405 #define IDC_CLOSE 406 @@ -57,6 +58,7 @@ #define IDLEFT 1020 #define IDC_DEFINES 1021 #define IDC_RECOMPILE_TEST 1022 +#define IDC_COMPRESSOR 1025 #define IDM_COMPRESSOR 40001 #define IDM_TEST 40002 #define IDM_EDITSCRIPT 40003 @@ -67,9 +69,8 @@ #define IDM_CLEARLOG 40009 #define IDM_BROWSESCR 40013 #define IDM_FORUM 40016 -#define IDM_DEFINES 40017 #define IDM_NSISUPDATE 40018 -#define IDM_DEFAULT 40020 +#define IDM_SCRIPT 40020 #define IDM_ZLIB 40021 #define IDM_BZIP2 40022 #define IDM_MRU_FILE 40023 @@ -77,14 +78,15 @@ #define IDM_RECOMPILE_TEST 40030 #define IDM_BEST 40031 #define IDM_LZMA 40032 +#define IDM_SETTINGS 40033 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 124 -#define _APS_NEXT_COMMAND_VALUE 40033 -#define _APS_NEXT_CONTROL_VALUE 1023 +#define _APS_NEXT_RESOURCE_VALUE 125 +#define _APS_NEXT_COMMAND_VALUE 40034 +#define _APS_NEXT_CONTROL_VALUE 1027 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/Contrib/Makensisw/resource.rc b/Contrib/Makensisw/resource.rc index 0514368f..171609d9 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -27,18 +27,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" @@ -62,7 +62,7 @@ IDI_SHELL ICON DISCARDABLE "shell.ico" // Menu // -IDM_MENU MENU DISCARDABLE +IDM_MENU MENU DISCARDABLE BEGIN POPUP "&File" BEGIN @@ -84,17 +84,17 @@ BEGIN END POPUP "&Tools" BEGIN + MENUITEM "&Settings..\tCtrl+S", IDM_SETTINGS MENUITEM "&Recompile\tCtrl+R", IDM_RECOMPILE - MENUITEM "&Define Symbols...\tCtrl+D", IDM_DEFINES MENUITEM "Test &Installer\tCtrl+T", IDM_TEST - MENUITEM "Recompile and Run\tCtrl+M", IDM_RECOMPILE_TEST - POPUP "&Set Compressor" + MENUITEM "Reco&mpile and Test\tCtrl+M", IDM_RECOMPILE_TEST + POPUP "Set &Compressor" BEGIN - MENUITEM "Defa&ult", IDM_DEFAULT - MENUITEM "&zlib", IDM_ZLIB - MENUITEM "bzi&p2", IDM_BZIP2 - MENUITEM "&lzma", IDM_LZMA - MENUITEM "&Best", IDM_BEST + MENUITEM "&Set in Script/MakeNSIS Default", IDM_SCRIPT + MENUITEM "&ZLIB", IDM_ZLIB + MENUITEM "BZI&P2", IDM_BZIP2 + MENUITEM "&LZMA", IDM_LZMA + MENUITEM "&Best Compressor", IDM_BEST END MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR @@ -119,17 +119,17 @@ END // Accelerator // -IDK_ACCEL ACCELERATORS PRELOAD MOVEABLE PURE +IDK_ACCEL ACCELERATORS PRELOAD MOVEABLE PURE BEGIN "A", IDM_SELECTALL, VIRTKEY, CONTROL, NOINVERT "B", IDM_BROWSESCR, VIRTKEY, CONTROL, NOINVERT "C", IDM_COPYSELECTED, VIRTKEY, CONTROL, NOINVERT - "D", IDM_DEFINES, VIRTKEY, CONTROL, NOINVERT "E", IDM_EDITSCRIPT, VIRTKEY, CONTROL, NOINVERT "F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT "L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT "M", IDM_RECOMPILE_TEST, VIRTKEY, CONTROL, NOINVERT "R", IDM_RECOMPILE, VIRTKEY, CONTROL, NOINVERT + "S", IDM_SETTINGS, VIRTKEY, CONTROL, NOINVERT "T", IDM_TEST, VIRTKEY, CONTROL, NOINVERT VK_F1, IDM_DOCS, VIRTKEY, NOINVERT "W", IDM_CLEARLOG, VIRTKEY, CONTROL, NOINVERT @@ -143,15 +143,15 @@ END // DLG_MAIN DIALOG DISCARDABLE 0, 0, 362, 246 -STYLE DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | - WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | +STYLE DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | + WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "MakeNSIS" MENU IDM_MENU FONT 8, "MS Shell Dlg" BEGIN - CONTROL "",IDC_LOGWIN,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL | - ES_NOHIDESEL | ES_READONLY | ES_NUMBER | WS_BORDER | + CONTROL "",IDC_LOGWIN,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL | + ES_NOHIDESEL | ES_READONLY | ES_NUMBER | 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 @@ -160,7 +160,7 @@ BEGIN END DLG_ABOUT DIALOGEX 0, 0, 233, 126 -STYLE DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | +STYLE DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION CAPTION "About MakeNSISW" FONT 8, "MS Shell Dlg", 0, 0, 0x1 @@ -175,22 +175,39 @@ BEGIN CONTROL 115,IDC_STATIC,"Static",SS_BITMAP,0,0,20,20 END -DLG_DEFINES DIALOGEX 0, 0, 250, 127 +DLG_SETTINGS DIALOGEX 0, 0, 250, 190 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Define Symbols" -FONT 8, "MS Sans Serif", 0, 0, 0x1 +CAPTION "MakeNSISW Settings" +FONT 8, "MS Sans Serif" BEGIN - DEFPUSHBUTTON "&OK",IDOK,145,106,48,14 - PUSHBUTTON "&Cancel",IDCANCEL,195,106,48,14 - EDITTEXT IDC_SYMBOL,7,37,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE - EDITTEXT IDC_VALUE,7,63,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE - PUSHBUTTON ">",IDRIGHT,91,41,14,14 - PUSHBUTTON "<",IDLEFT,91,56,14,14 - LTEXT "Symbol",IDC_STATIC,7,28,24,8 - LTEXT "Value (optional)",IDC_STATIC,7,54,50,8 - LISTBOX IDC_DEFINES,117,16,121,79,LBS_NOINTEGRALHEIGHT | + DEFPUSHBUTTON "&OK",IDOK,145,168,48,14 + PUSHBUTTON "&Cancel",IDCANCEL,195,168,48,14 + EDITTEXT IDC_SYMBOL,11,98,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE + EDITTEXT IDC_VALUE,11,124,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE + PUSHBUTTON ">",IDRIGHT,95,102,14,14 + PUSHBUTTON "<",IDLEFT,95,117,14,14 + LTEXT "Symbol",IDC_STATIC,11,89,24,8 + LTEXT "Value (optional)",IDC_STATIC,11,115,50,8 + LISTBOX IDC_DEFINES,117,77,121,79,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,WS_EX_CLIENTEDGE - GROUPBOX "Defined Symbols List",IDC_STATIC,112,7,131,93 + GROUPBOX "Symbol Definitions",IDC_STATIC,7,58,236,103 + LTEXT "Symbol List",IDC_STATIC,117,67,118,9 + GROUPBOX "Compressor Setting",IDC_STATIC,7,7,236,41 + LTEXT "Default Compressor:",IDC_STATIC,11,27,68,11 + COMBOBOX IDC_COMPRESSOR,77,26,162,94,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP +END + +DLG_COMPRESSOR DIALOG DISCARDABLE 0, 0, 223, 47 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "Choose Compressor" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,112,27,50,14 + PUSHBUTTON "Cancel",IDCANCEL,165,27,50,14 + LTEXT "Compressor:",IDC_STATIC,7,8,43,11 + COMBOBOX IDC_COMPRESSOR,54,7,162,94,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP END @@ -200,7 +217,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO DISCARDABLE BEGIN DLG_MAIN, DIALOG BEGIN @@ -213,12 +230,20 @@ BEGIN BOTTOMMARGIN, 121 END - DLG_DEFINES, DIALOG + DLG_SETTINGS, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 243 TOPMARGIN, 7 - BOTTOMMARGIN, 120 + BOTTOMMARGIN, 183 + END + + DLG_COMPRESSOR, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 216 + TOPMARGIN, 7 + BOTTOMMARGIN, 40 END END #endif // APSTUDIO_INVOKED @@ -244,7 +269,7 @@ IDB_TOOLBAR BITMAP DISCARDABLE "toolbar.bmp" // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE DISCARDABLE BEGIN IDS_LOADSCRIPT "Load Script..." IDS_SAVE "Save Output..." @@ -252,7 +277,7 @@ BEGIN IDS_COPY "Copy" IDS_FIND "Find..." IDS_RECOMPILE "Recompile" - IDS_DEFINES "Define Symbols..." + IDS_SETTINGS "Settings..." IDS_COMPRESSOR "Set Compressor" IDS_TEST "Test Installer" IDS_EDITSCRIPT "Edit Script" @@ -262,16 +287,16 @@ BEGIN IDS_FORUM "NSIS Forum" END -STRINGTABLE DISCARDABLE +STRINGTABLE DISCARDABLE BEGIN IDS_NSISUPDATE "NSIS Update" IDS_DOCS "Documentation" - IDS_DEFAULT "Default" - IDS_ZLIB "zlib" - IDS_BZIP2 "bzip2" - IDS_RECOMPILE_TEST "Recompile and run" - IDS_BEST "Best" - IDS_LZMA "lzma" + IDS_SCRIPT "Set in Script/MakeNSIS default" + IDS_ZLIB "ZLIB" + IDS_BZIP2 "BZIP2" + IDS_RECOMPILE_TEST "Recompile and Test" + IDS_BEST "Best Compressor" + IDS_LZMA "LZMA" END #endif // English (U.S.) resources diff --git a/Contrib/Makensisw/toolbar.bmp b/Contrib/Makensisw/toolbar.bmp index 152d642e..e8a13723 100644 Binary files a/Contrib/Makensisw/toolbar.bmp and b/Contrib/Makensisw/toolbar.bmp differ diff --git a/Contrib/Makensisw/toolbar.cpp b/Contrib/Makensisw/toolbar.cpp index 0384f1f2..3daecc70 100644 --- a/Contrib/Makensisw/toolbar.cpp +++ b/Contrib/Makensisw/toolbar.cpp @@ -53,8 +53,8 @@ void CreateToolBar() tbButton[TBB_COPY] = CreateToolBarButton(IDB_COPY, IDM_COPY, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_FIND] = CreateToolBarButton(IDB_FIND, IDM_FIND, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_SEP2] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0); + tbButton[TBB_SETTINGS] = CreateToolBarButton(IDB_SETTINGS, IDM_SETTINGS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_RECOMPILE] = CreateToolBarButton(IDB_RECOMPILE, IDM_RECOMPILE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); - tbButton[TBB_DEFINES] = CreateToolBarButton(IDB_DEFINES, IDM_DEFINES, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_COMPRESSOR] = CreateToolBarButton(IDB_COMPRESSOR, IDM_COMPRESSOR, TBSTATE_ENABLED, TBSTYLE_DROPDOWN, 0, 0); tbButton[TBB_TEST] = CreateToolBarButton(IDB_TEST, IDM_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); // Added by Darren Owen (DrO) on 1/10/2003 @@ -101,7 +101,7 @@ void UpdateToolBarCompressorButton() my_memset(&ti, 0, sizeof(TOOLINFO)); - if(g_sdata.compressor >= COMPRESSOR_DEFAULT && g_sdata.compressor <= COMPRESSOR_BEST) { + if(g_sdata.compressor >= COMPRESSOR_SCRIPT && g_sdata.compressor <= COMPRESSOR_BEST) { iBitmap = compressor_bitmaps[(int)g_sdata.compressor]; iString = compressor_strings[(int)g_sdata.compressor]; } @@ -170,8 +170,8 @@ void AddToolBarTooltips() AddToolBarButtonTooltip(TBB_EXIT, IDS_EXIT); AddToolBarButtonTooltip(TBB_COPY, IDS_COPY); AddToolBarButtonTooltip(TBB_FIND, IDS_FIND); + AddToolBarButtonTooltip(TBB_SETTINGS, IDS_SETTINGS); AddToolBarButtonTooltip(TBB_RECOMPILE, IDS_RECOMPILE); - AddToolBarButtonTooltip(TBB_DEFINES, IDS_DEFINES); AddToolBarButtonTooltip(TBB_COMPRESSOR, IDS_COMPRESSOR); AddToolBarButtonTooltip(TBB_TEST, IDS_TEST); // Added by Darren Owen (DrO) on 1/10/2003 diff --git a/Contrib/Makensisw/toolbar.h b/Contrib/Makensisw/toolbar.h index c4a4b2ce..1bc8fb25 100644 --- a/Contrib/Makensisw/toolbar.h +++ b/Contrib/Makensisw/toolbar.h @@ -40,12 +40,12 @@ #define TBB_COPY 4 #define TBB_FIND 5 #define TBB_SEP2 6 -#define TBB_RECOMPILE 7 -#define TBB_DEFINES 8 -#define TBB_COMPRESSOR 9 -#define TBB_TEST 10 +#define TBB_SETTINGS 7 +#define TBB_RECOMPILE 8 +#define TBB_TEST 9 // Added by Darren Owen (DrO) on 1/10/2003 and altered following ids -#define TBB_RECOMPILE_TEST 11 +#define TBB_RECOMPILE_TEST 10 +#define TBB_COMPRESSOR 11 #define TBB_EDITSCRIPT 12 #define TBB_BROWSESCR 13 #define TBB_CLEARLOG 14 @@ -62,9 +62,9 @@ #define IDB_COPY 3 #define IDB_FIND 4 #define IDB_RECOMPILE 5 -#define IDB_DEFINES 6 +#define IDB_SETTINGS 6 #define IDB_COMPRESSOR 7 -#define IDB_COMPRESSOR_DEFAULT 7 +#define IDB_COMPRESSOR_SCRIPT 7 #define IDB_TEST 8 #define IDB_EDITSCRIPT 9 #define IDB_BROWSESCR 10 diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index 54601305..b7016a80 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -31,6 +31,7 @@ LRESULT CALLBACK TipHookProc(int nCode, WPARAM wParam, LPARAM lParam); char g_mru_list[MRU_LIST_SIZE][MAX_PATH] = { NULL, NULL, NULL, NULL, NULL }; extern NSCRIPTDATA g_sdata; +extern char *compressor_names[]; int SetArgv(char *cmdLine, int *argc, char ***argv) { @@ -751,29 +752,40 @@ void ClearMRUList() void RestoreCompressor() { HKEY hKey; - NCOMPRESSOR v = COMPRESSOR_DEFAULT; + NCOMPRESSOR v = COMPRESSOR_SCRIPT; if (RegOpenKeyEx(REGSEC,REGKEY,0,KEY_READ,&hKey) == ERROR_SUCCESS) { - DWORD l = sizeof(g_sdata.compressor); + char compressor_name[32]; + DWORD l = sizeof(compressor_name); DWORD t; - if ((RegQueryValueEx(hKey,REGCOMPRESSOR,NULL,&t,(unsigned char*)&v,&l)==ERROR_SUCCESS) && - (t == REG_DWORD) && - (l==sizeof(v))) { + + if (RegQueryValueEx(hKey,REGCOMPRESSOR,NULL,&t,(unsigned char*)compressor_name,&l)==ERROR_SUCCESS) { + int i; + for(i=(int)COMPRESSOR_SCRIPT; i<= (int)COMPRESSOR_BEST; i++) { + if(!lstrcmpi(compressor_names[i],compressor_name)) { + v = (NCOMPRESSOR)i; + break; + } + } } RegCloseKey(hKey); } - g_sdata.command_line_compressor = false; - SetCompressor(v); + g_sdata.default_compressor=v; } void SaveCompressor() { - if(!g_sdata.command_line_compressor) { - HKEY hKey; - NCOMPRESSOR v = g_sdata.compressor; - if (RegCreateKey(REGSEC,REGKEY,&hKey) == ERROR_SUCCESS) { - RegSetValueEx(hKey,REGCOMPRESSOR,0,REG_DWORD,(unsigned char*)&v,sizeof(v)); - RegCloseKey(hKey); - } + HKEY hKey; + int n = (int)COMPRESSOR_SCRIPT; + NCOMPRESSOR v = g_sdata.default_compressor; + + if(v >= COMPRESSOR_SCRIPT && v <= COMPRESSOR_BEST) { + n = (int)v; + } + + if (RegCreateKey(REGSEC,REGKEY,&hKey) == ERROR_SUCCESS) { + RegSetValueEx(hKey,REGCOMPRESSOR,0,REG_SZ,(unsigned char*)compressor_names[n], + lstrlen(compressor_names[n])); + RegCloseKey(hKey); } }