diff --git a/Contrib/Makensisw/Readme.txt b/Contrib/Makensisw/Readme.txt index 7c2cd699..1b9d3ffd 100644 --- a/Contrib/Makensisw/Readme.txt +++ b/Contrib/Makensisw/Readme.txt @@ -164,13 +164,18 @@ Version History - Check for Update command - Added link to the NSIS Forum under Help menu - Bunch of other stuff not worth mentioning - - Define Symbols menu (Ctrl+D) (iceman_k) + - Define Symbols menu (Ctrl+D) +1.10 + - Define Symbols is available even if a script is not loaded. + - Defined Symbols are saved on exit and reloaded on start. + - Added NSIS Update menu. + - Added toolbar for commonly used menus. Copyright Information --------------------- Copyright (c) 2002 Robert Rainwater -Contributors: Justin Frankel, Fritz Elfert, and Amir Szekely, iceman_k +Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index 56a34fe4..9437d41e 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -1,6 +1,6 @@ /* Copyright (c) 2002 Robert Rainwater - Contributors: Justin Frankel, Fritz Elfert, and Amir Szekely + Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -23,10 +23,12 @@ #include "makensisw.h" #include "resource.h" #include "noclib.h" +#include "toolbar.h" NSCRIPTDATA g_sdata; NRESIZEDATA g_resize; NFINDREPLACE g_find; +extern NTOOLBAR g_toolbar; int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmdShow) { MSG msg; @@ -38,6 +40,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmd g_sdata.hInstance=GetModuleHandle(0); g_sdata.script_alloced=false; g_sdata.defines = NULL; + RestoreDefines(); g_sdata.script=GetCommandLine(); if (*g_sdata.script=='"') { g_sdata.script++; while (*g_sdata.script && *g_sdata.script++!='"' ); } else while (*g_sdata.script!=' ' && *g_sdata.script) g_sdata.script++; @@ -52,8 +55,8 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmd MessageBox(0,DLGERROR,"Error",MB_ICONEXCLAMATION|MB_OK); return 1; } - haccel = LoadAccelerators(g_sdata.hInstance, MAKEINTRESOURCE(IDK_ACCEL)); - while ((status=GetMessage(&msg,0,0,0))!=0) { + haccel = LoadAccelerators(g_sdata.hInstance, MAKEINTRESOURCE(IDK_ACCEL)); + while ((status=GetMessage(&msg,0,0,0))!=0) { if (status==-1) return -1; if (!IsDialogMessage(g_find.hwndFind, &msg)) { if (!TranslateAccelerator(hDialog,haccel,&msg)) { @@ -80,9 +83,13 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { SetClassLong(hwndDlg,GCL_HICON,(long)hIcon); SendMessage(GetDlgItem(hwndDlg,IDC_LOGWIN),EM_SETEVENTMASK,NULL,ENM_SELCHANGE); DragAcceptFiles(g_sdata.hwnd,FALSE); - InitTooltips(g_sdata.hwnd); g_sdata.menu = GetMenu(g_sdata.hwnd); g_sdata.submenu = GetSubMenu(g_sdata.menu,1); + CreateToolBar(); + InitTooltips(g_sdata.hwnd); +#ifdef COMPRESSOR_OPTION + SetCompressor(IDM_DEFAULT); +#endif SetBranding(g_sdata.hwnd); HFONT hFont = CreateFont(14,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_DONTCARE,"Courier New"); SendDlgItemMessage(hwndDlg,IDC_LOGWIN,WM_SETFONT,(WPARAM)hFont,0); @@ -104,6 +111,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } case WM_DESTROY: { + SaveDefines(); SaveWindowPos(g_sdata.hwnd); DestroyTooltips(); PostQuitMessage(0); @@ -196,10 +204,27 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (((NMHDR*)lParam)->code ) { case EN_SELCHANGE: SendDlgItemMessage(hwndDlg,IDC_LOGWIN, EM_EXGETSEL, 0, (LPARAM) &g_sdata.textrange); - EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,(g_sdata.textrange.cpMax-g_sdata.textrange.cpMin<=0?MF_GRAYED:MF_ENABLED)); - break; + { + BOOL enabled = (g_sdata.textrange.cpMax-g_sdata.textrange.cpMin<=0?FALSE:TRUE); + EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,(enabled?MF_ENABLED:MF_GRAYED)); + EnableToolBarButton(IDM_COPY,enabled); + } +#ifdef COMPRESSOR_OPTION + case TBN_DROPDOWN: + { + LPNMTOOLBAR pToolBar = (LPNMTOOLBAR) lParam; + if(pToolBar->hdr.hwndFrom == g_toolbar.hwnd && + pToolBar->iItem == IDM_COMPRESSOR) { + ShowToolbarDropdownMenu(); + return TBDDRET_DEFAULT; + } + else { + return TBDDRET_NODEFAULT; + } + } +#endif } - return TRUE; + return TRUE; case WM_COPYDATA: { PCOPYDATASTRUCT cds = PCOPYDATASTRUCT(lParam); @@ -255,6 +280,21 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { ShellExecute(g_sdata.hwnd,"open",NSIS_FOR,NULL,NULL,SW_SHOWNORMAL); return TRUE; } + case IDM_NSISUPDATE: + { + int rv; + rv = MessageBox(g_sdata.hwnd,NSISUPDATEPROMPT,"Question",MB_YESNO|MB_ICONQUESTION); + if(rv == IDYES) { + char pathf[MAX_PATH],*path; + GetModuleFileName(NULL,pathf,sizeof(pathf)); + path=my_strrchr(pathf,'\\'); + if(path!=NULL) *path=0; + lstrcat(pathf,NSIS_UPDATE); + ShellExecute(g_sdata.hwnd,"open",pathf,NULL,NULL,SW_SHOWNORMAL); + PostMessage(g_sdata.hwnd,WM_COMMAND, IDM_EXIT, 0); + } + return TRUE; + } case IDM_SELECTALL: { SendDlgItemMessage(g_sdata.hwnd, IDC_LOGWIN, EM_SETSEL, 0, -1); @@ -289,6 +329,23 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } return TRUE; } +#ifdef COMPRESSOR_OPTION + case IDM_COMPRESSOR: + { + switch(g_sdata.compressor) { + case COMPRESSOR_DEFAULT: + SetCompressor(IDM_ZLIB); + break; + case COMPRESSOR_ZLIB: + SetCompressor(IDM_GZIP); + break; + case COMPRESSOR_GZIP: + SetCompressor(IDM_DEFAULT); + break; + } + return TRUE; + } +#endif case IDM_CLEARLOG: { if (!g_sdata.thread) { @@ -386,6 +443,12 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { g_find.hwndFind = FindText(&g_find.fr); return TRUE; } +#ifdef COMPRESSOR_OPTION + case IDM_DEFAULT: + case IDM_ZLIB: + case IDM_GZIP: + return SetCompressor(LOWORD(wParam)); +#endif } } } @@ -563,7 +626,8 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) switch (LOWORD(wParam)) { case IDOK: { - ResetObjects(); + ResetObjects(); + ResetDefines(); if(g_sdata.input_script) { g_sdata.script_alloced = true; g_sdata.script = (char *)GlobalAlloc(GPTR, (lstrlen(g_sdata.input_script)+3)*sizeof(char)); @@ -664,4 +728,31 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) } } return FALSE; -} \ No newline at end of file +} + +#ifdef COMPRESSOR_OPTION +BOOL SetCompressor(WORD command) +{ + switch(command) { + case IDM_DEFAULT: + g_sdata.compressor = COMPRESSOR_DEFAULT; + break; + case IDM_ZLIB: + g_sdata.compressor = COMPRESSOR_ZLIB; + break; + case IDM_GZIP: + g_sdata.compressor = COMPRESSOR_GZIP; + break; + default: + return FALSE; + } + UpdateToolBarCompressorButton(); + CheckMenuItem(g_sdata.menu, IDM_DEFAULT, MF_BYCOMMAND | MF_UNCHECKED); + CheckMenuItem(g_sdata.menu, IDM_ZLIB, MF_BYCOMMAND | MF_UNCHECKED); + CheckMenuItem(g_sdata.menu, IDM_GZIP, MF_BYCOMMAND | MF_UNCHECKED); + + CheckMenuItem(g_sdata.menu, command, MF_BYCOMMAND | MF_CHECKED); + + return TRUE; +} +#endif \ No newline at end of file diff --git a/Contrib/Makensisw/makensisw.dsp b/Contrib/Makensisw/makensisw.dsp index 71344924..aa2da4e8 100644 --- a/Contrib/Makensisw/makensisw.dsp +++ b/Contrib/Makensisw/makensisw.dsp @@ -23,8 +23,8 @@ CFG=makensisw - Win32 Debug # Begin Project # PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" +# PROP Scc_ProjName "makensisw" +# PROP Scc_LocalPath ".." CPP=cl.exe MTL=midl.exe RSC=rc.exe @@ -101,6 +101,10 @@ SOURCE=.\noclib.cpp # End Source File # Begin Source File +SOURCE=.\toolbar.cpp +# End Source File +# Begin Source File + SOURCE=.\utils.cpp # End Source File # Begin Source File @@ -129,6 +133,10 @@ SOURCE=.\resource.h # End Source File # Begin Source File +SOURCE=.\toolbar.h +# End Source File +# Begin Source File + SOURCE=.\utils.h # End Source File # End Group @@ -155,6 +163,10 @@ SOURCE=.\resource.rc SOURCE=.\shell.ico # End Source File +# Begin Source File + +SOURCE=.\toolbar.bmp +# End Source File # End Group # Begin Group "Documentation" diff --git a/Contrib/Makensisw/makensisw.dsw b/Contrib/Makensisw/makensisw.dsw index 653335be..cb87bedb 100644 --- a/Contrib/Makensisw/makensisw.dsw +++ b/Contrib/Makensisw/makensisw.dsw @@ -7,6 +7,10 @@ Project: "makensisw"=.\makensisw.dsp - Package Owner=<4> Package=<5> {{{ + begin source code control + makensisw + .. + end source code control }}} Package=<4> diff --git a/Contrib/Makensisw/makensisw.h b/Contrib/Makensisw/makensisw.h index efeefc70..fd5d421a 100644 --- a/Contrib/Makensisw/makensisw.h +++ b/Contrib/Makensisw/makensisw.h @@ -1,6 +1,6 @@ /* Copyright (c) 2002 Robert Rainwater - Contributors: Justin Frankel, Fritz Elfert, and Amir Szekely + Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -32,25 +32,26 @@ #define NSIS_DEV "http://nsis.sourceforge.net/" #define NSIS_URL "http://www.nullsoft.com/free/nsis/" #define NSIS_FOR "http://forums.winamp.com/forumdisplay.php?forumid=65" +#define NSIS_UPDATE "\\Bin\\NSISUpdate.exe" #define USAGE "Usage:\r\n\r\n - File | Load Script...\r\n - Drag the .nsi file into this window\r\n - Right click the .nsi file and choose \"Compile NSI\"" #define COPYRIGHT "Copyright © 2002 Robert Rainwater" -#define CONTRIB "Fritz Elfert, Justin Frankel, Amir Szekely" +#define CONTRIB "Fritz Elfert, Justin Frankel, Amir Szekely, Sunil Kamath" #define DOCPATH "http://nsis.sourceforge.net/Docs/" #define LOCALDOCS "\\docs\\index.html" #define NSISERROR "Unable to intialize MakeNSIS. Please verify that makensis.exe is in the same directory as makensisw.exe." #define DLGERROR "Unable to intialize MakeNSISW." #define DEFINESERROR "Symbol cannot contain whitespace characters" +#define NSISUPDATEPROMPT "Running NSIS Update will close MakeNSISW.\nContinue?" #define REGSEC HKEY_LOCAL_MACHINE #define REGKEY "Software\\NSIS" #define REGLOC "MakeNSISWPlacement" +#define REGDEFSUBKEY "Defines" +#define REGDEFCOUNT "MakeNSISWDefinesCount" #define EXENAME "makensis.exe" #define MAX_STRING 256 #define TIMEOUT 100 #define MINWIDTH 350 #define MINHEIGHT 180 -#define REGSEC HKEY_LOCAL_MACHINE -#define REGKEY "Software\\NSIS" -#define REGLOC "MakeNSISWPlacement" #define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001) @@ -61,6 +62,13 @@ enum { MAKENSIS_NOTIFY_OUTPUT }; +#ifdef COMPRESSOR_OPTION +typedef enum { + COMPRESSOR_DEFAULT, + COMPRESSOR_ZLIB, + COMPRESSOR_GZIP +} NCOMPRESSOR; +#endif // Extern Variables extern const char* NSISW_VERSION; @@ -73,6 +81,11 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); void CompileNSISScript(); char* BuildDefines(); +#ifdef COMPRESSOR_OPTION +BOOL SetCompressor(WORD); +#endif +void RestoreDefines(); +void SaveDefines(); typedef struct NSISScriptData { bool script_alloced; @@ -93,6 +106,9 @@ typedef struct NSISScriptData { HANDLE thread; HWND focused_hwnd; CHARRANGE textrange; +#ifdef COMPRESSOR_OPTION + NCOMPRESSOR compressor; +#endif } NSCRIPTDATA; typedef struct ResizeData { diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index 90e73c8c..3bcac3ae 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -2,6 +2,28 @@ // Microsoft Developer Studio generated include file. // Used by resource.rc // +#define IDS_LOADSCRIPT 1 +#define IDS_SAVE 2 +#define IDS_EXIT 3 +#define IDS_COPY 4 +#define IDS_FIND 5 +#define IDS_RECOMPILE 6 +#define IDS_DEFINES 7 +#ifdef COMPRESSOR_OPTION +#define IDS_COMPRESSOR 8 +#endif +#define IDS_TEST 9 +#define IDS_EDITSCRIPT 10 +#define IDS_BROWSESCR 11 +#define IDS_CLEARLOG 12 +#define IDS_NSISHOME 13 +#define IDS_NSISDEV 14 +#define IDS_FORUM 15 +#define IDS_NSISUPDATE 16 +#define IDS_DOCS 17 +#define IDS_DEFAULT 18 +#define IDS_ZLIB 19 +#define IDS_GZIP 20 #define DLG_MAIN 101 #define IDI_ICON 102 #define DLG_ABOUT 103 @@ -10,6 +32,8 @@ #define IDI_SHELL 112 #define IDB_LOGO 115 #define DLG_DEFINES 116 +#define IDB_BITMAP1 120 +#define IDB_TOOLBAR 122 #define IDC_LOGWIN 402 #define IDC_VERSION 405 #define IDC_CLOSE 406 @@ -32,6 +56,9 @@ #define IDRIGHT 1019 #define IDLEFT 1020 #define IDC_DEFINES 1021 +#ifdef COMPRESSOR_OPTION +#define IDM_COMPRESSOR 40001 +#endif #define IDM_TEST 40002 #define IDM_EDITSCRIPT 40003 #define IDM_DOCS 40004 @@ -43,13 +70,17 @@ #define IDM_NSISDEV 40014 #define IDM_FORUM 40016 #define IDM_DEFINES 40017 +#define IDM_NSISUPDATE 40018 +#define IDM_DEFAULT 40020 +#define IDM_ZLIB 40021 +#define IDM_GZIP 40022 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 117 -#define _APS_NEXT_COMMAND_VALUE 40018 +#define _APS_NEXT_RESOURCE_VALUE 124 +#define _APS_NEXT_COMMAND_VALUE 40023 #define _APS_NEXT_CONTROL_VALUE 1023 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/Contrib/Makensisw/resource.rc b/Contrib/Makensisw/resource.rc index 0a849cc1..cc330efb 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -83,7 +83,15 @@ BEGIN POPUP "&Tools" BEGIN MENUITEM "&Recompile\tCtrl+R", IDM_RECOMPILE - MENUITEM "&Define Symbols\tCtrl+D", IDM_DEFINES + MENUITEM "&Define Symbols...\tCtrl+D", IDM_DEFINES +#ifdef COMPRESSOR_OPTION + POPUP "&Set Compressor" + BEGIN + MENUITEM "Defa&ult", IDM_DEFAULT + MENUITEM "&zlib", IDM_ZLIB + MENUITEM "&gzip", IDM_GZIP + END +#endif MENUITEM "Test &Installer\tCtrl+T", IDM_TEST MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR @@ -94,6 +102,7 @@ BEGIN MENUITEM "NSIS Homepage", IDM_NSISHOME MENUITEM "NSIS Developer Site", IDM_NSISDEV MENUITEM "NSIS Forum", IDM_FORUM + MENUITEM "NSIS Update", IDM_NSISUPDATE MENUITEM SEPARATOR MENUITEM "Documentation\tF1", IDM_DOCS MENUITEM SEPARATOR @@ -115,12 +124,15 @@ BEGIN "D", IDM_DEFINES, VIRTKEY, CONTROL, NOINVERT "E", IDM_EDITSCRIPT, VIRTKEY, CONTROL, NOINVERT "F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT + "G", IDM_GZIP, VIRTKEY, CONTROL, NOINVERT "L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT "R", IDM_RECOMPILE, VIRTKEY, CONTROL, NOINVERT "T", IDM_TEST, VIRTKEY, CONTROL, NOINVERT + "U", IDM_DEFAULT, VIRTKEY, CONTROL, NOINVERT VK_F1, IDM_DOCS, VIRTKEY, NOINVERT "W", IDM_CLEARLOG, VIRTKEY, CONTROL, NOINVERT "X", IDM_EXIT, VIRTKEY, ALT, NOINVERT + "Z", IDM_ZLIB, VIRTKEY, CONTROL, NOINVERT END @@ -129,7 +141,7 @@ END // Dialog // -DLG_MAIN DIALOG DISCARDABLE 0, 0, 361, 228 +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 | WS_THICKFRAME @@ -139,11 +151,11 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "",IDC_LOGWIN,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL | ES_NOHIDESEL | ES_READONLY | ES_NUMBER | WS_BORDER | - WS_VSCROLL,7,4,345,186 - CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,202,346,1 - LTEXT "",IDC_VERSION,7,212,200,12,WS_DISABLED - DEFPUSHBUTTON "Clo&se",IDC_CLOSE,296,208,49,15 - PUSHBUTTON "Test &Installer",IDC_TEST,230,208,60,15,WS_DISABLED + 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 "Clo&se",IDC_CLOSE,296,226,49,15 + PUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED END DLG_ABOUT DIALOGEX 0, 0, 233, 126 @@ -165,7 +177,7 @@ END DLG_DEFINES DIALOGEX 0, 0, 250, 127 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Define Symbols" -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN DEFPUSHBUTTON "&OK",IDOK,145,106,48,14 PUSHBUTTON "&Cancel",IDCANCEL,195,106,48,14 @@ -189,6 +201,12 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN + DLG_MAIN, DIALOG + BEGIN + RIGHTMARGIN, 361 + BOTTOMMARGIN, 228 + END + DLG_ABOUT, DIALOG BEGIN BOTTOMMARGIN, 121 @@ -218,6 +236,43 @@ END // IDB_LOGO BITMAP DISCARDABLE "logo.bmp" +IDB_TOOLBAR BITMAP DISCARDABLE "toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_LOADSCRIPT "Load Script..." + IDS_SAVE "Save Output..." + IDS_EXIT "Exit" + IDS_COPY "Copy" + IDS_FIND "Find..." + IDS_RECOMPILE "Recompile" + IDS_DEFINES "Define Symbols..." +#ifdef COMPRESSOR_OPTION + IDS_COMPRESSOR "Set Compressor" +#endif + IDS_TEST "Test Installer" + IDS_EDITSCRIPT "Edit Script" + IDS_BROWSESCR "Browse Script" + IDS_CLEARLOG "Clear Log Window" + IDS_NSISHOME "NSIS Homepage" + IDS_NSISDEV "NSIS Developer Site" + IDS_FORUM "NSIS Forum" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_NSISUPDATE "NSIS Update" + IDS_DOCS "Documentation" + IDS_DEFAULT "Default" + IDS_ZLIB "zlib" + IDS_GZIP "gzip" +END + #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index 787d9a79..ff328e14 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -1,6 +1,6 @@ /* Copyright (c) 2002 Robert Rainwater - Contributors: Justin Frankel, Fritz Elfert, and Amir Szekely + Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -22,6 +22,7 @@ #include #include "resource.h" #include "makensisw.h" +#include "toolbar.h" #include "noclib.h" NTOOLTIP g_tip; @@ -83,13 +84,22 @@ void DisableItems(HWND hwnd) { EnableMenuItem(g_sdata.menu,IDM_EXIT,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_LOADSCRIPT,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_DEFINES,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_COPY,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_CLEARLOG,MF_GRAYED); EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,MF_GRAYED); + EnableToolBarButton(IDM_SAVE,FALSE); + EnableToolBarButton(IDM_TEST,FALSE); + EnableToolBarButton(IDM_EXIT,FALSE); + EnableToolBarButton(IDM_LOADSCRIPT,FALSE); + EnableToolBarButton(IDM_RECOMPILE,FALSE); + EnableToolBarButton(IDM_COPY,FALSE); + EnableToolBarButton(IDM_EDITSCRIPT,FALSE); + EnableToolBarButton(IDM_CLEARLOG,FALSE); + EnableToolBarButton(IDM_BROWSESCR,FALSE); + if (!IsWindowEnabled(g_sdata.focused_hwnd)) SetFocus(GetDlgItem(hwnd,IDC_LOGWIN)); } @@ -98,18 +108,27 @@ void EnableItems(HWND hwnd) { if (g_sdata.output_exe && !g_sdata.retcode) { EnableWindow(GetDlgItem(hwnd,IDC_TEST),1); EnableMenuItem(g_sdata.menu,IDM_TEST,MF_ENABLED); + EnableToolBarButton(IDM_TEST,TRUE); } EnableWindow(GetDlgItem(hwnd,IDC_CLOSE),1); EnableMenuItem(g_sdata.menu,IDM_SAVE,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_EXIT,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_LOADSCRIPT,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_ENABLED); - EnableMenuItem(g_sdata.menu,IDM_DEFINES,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_COPY,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_CLEARLOG,MF_ENABLED); EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,MF_ENABLED); + + EnableToolBarButton(IDM_SAVE,TRUE); + EnableToolBarButton(IDM_EXIT,TRUE); + EnableToolBarButton(IDM_LOADSCRIPT,TRUE); + EnableToolBarButton(IDM_RECOMPILE,TRUE); + EnableToolBarButton(IDM_COPY,TRUE); + EnableToolBarButton(IDM_EDITSCRIPT,TRUE); + EnableToolBarButton(IDM_CLEARLOG,TRUE); + EnableToolBarButton(IDM_BROWSESCR,TRUE); SetFocus(g_sdata.focused_hwnd); } @@ -122,10 +141,14 @@ void CompileNSISScript() { if (lstrlen(g_sdata.script)==0) { LogMessage(g_sdata.hwnd,USAGE); EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_DEFINES,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); + EnableToolBarButton(IDM_RECOMPILE,FALSE); + EnableToolBarButton(IDM_EDITSCRIPT,FALSE); + EnableToolBarButton(IDM_TEST,FALSE); + EnableToolBarButton(IDM_BROWSESCR,FALSE); + EnableWindow(GetDlgItem(g_sdata.hwnd,IDC_TEST),0); DragAcceptFiles(g_sdata.hwnd,TRUE); return; @@ -178,7 +201,68 @@ void SaveWindowPos(HWND hwnd) { } } +void RestoreDefines() +{ + HKEY hKey; + HKEY hSubKey; + if (RegOpenKeyEx(REGSEC,REGKEY,0,KEY_READ,&hKey) == ERROR_SUCCESS) { + int n = 0; + DWORD l = sizeof(n); + DWORD t; + if ((RegQueryValueEx(hKey,REGDEFCOUNT,NULL,&t,(unsigned char*)&n,&l)==ERROR_SUCCESS)&&(t == REG_DWORD)&&(l==sizeof(n))) { + if(n > 0) { + if (RegCreateKey(hKey,REGDEFSUBKEY,&hSubKey) == ERROR_SUCCESS) { + char buf[8]; + g_sdata.defines = (char **)GlobalAlloc(GPTR, (n+1)*sizeof(char *)); + for(int i=0; i