diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index dad9d470..47d6e185 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -154,28 +154,6 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } return TRUE; } - case WM_CONTEXTMENU: - { - // This does not work on Windows versions < Windows 2000 - // See http://support.microsoft.com:80/support/kb/articles/Q245/7/54.asp - if ((HWND)wParam==GetDlgItem(g_sdata.hwnd,IDC_LOGWIN)) { - // Added and altered by Darren Owen (DrO) on 29/9/2003 - // Will place the right-click menu in the top left corner of the window - // if the application key is pressed and the mouse is not in the window - // from here... - POINT pt; - RECT r; - pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); - ScreenToClient((HWND)wParam,&pt); - GetClientRect((HWND)wParam,&r); - if(!PtInRect(&r,pt)) { pt.x = pt.y = 0; } - MapWindowPoints((HWND)wParam,HWND_DESKTOP,&pt,1); - TrackPopupMenu(g_sdata.editSubmenu,TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,pt.x,pt.y,0,g_sdata.hwnd,0); - // ...to here - //TrackPopupMenu(g_sdata.editSubmenu,NULL,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),0,g_sdata.hwnd,0); - } - return TRUE; - } case WM_DROPFILES: { int num; char szTmp[MAX_PATH]; @@ -235,12 +213,21 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { if (g_sdata.retcode==0) { MessageBeep(MB_ICONASTERISK); if (g_sdata.warnings) SetTitle(g_sdata.hwnd,"Finished with Warnings"); - else SetTitle(g_sdata.hwnd,"Finished Sucessfully"); + else { + SetTitle(g_sdata.hwnd,"Finished Sucessfully"); + // Added by Darren Owen (DrO) on 1/10/2003 + if(g_sdata.recompile_test) + PostMessage(g_sdata.hwnd, WM_COMMAND, LOWORD(IDM_TEST), 0); + } } else { MessageBeep(MB_ICONEXCLAMATION); SetTitle(g_sdata.hwnd,"Compile Error: See Log for Details"); } + + // Added by Darren Owen (DrO) on 1/10/2003 + // ensures the recompile and run state is reset after use + g_sdata.recompile_test = 0; DragAcceptFiles(g_sdata.hwnd,TRUE); return TRUE; } @@ -253,15 +240,29 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,(enabled?MF_ENABLED:MF_GRAYED)); EnableToolBarButton(IDM_COPY,enabled); } - // Added by Darren Owen (DrO) on 29/9/2003 + // Altered by Darren Owen (DrO) on 6/10/2003 // Allows the detection of the right-click menu when running on OSes below Windows 2000 // and will then simulate the effective WM_CONTEXTMENU message that would be received + // note: removed the WM_CONTEXTMENU handling to prevent a duplicate menu appearing on + // Windows 2000 and higher case EN_MSGFILTER: #define lpnmMsg ((MSGFILTER*)lParam) if(WM_RBUTTONUP == lpnmMsg->msg || WM_KEYUP == lpnmMsg->msg && lpnmMsg->wParam == VK_APPS){ - POINT pt; + POINT pt; + HWND edit = GetDlgItem(g_sdata.hwnd,IDC_LOGWIN); + RECT r; GetCursorPos(&pt); - SendMessage(GetParent(lpnmMsg->nmhdr.hwndFrom),WM_CONTEXTMENU,(WPARAM)lpnmMsg->nmhdr.hwndFrom,MAKELPARAM(pt.x,pt.y)); + + // Added and altered by Darren Owen (DrO) on 29/9/2003 + // Will place the right-click menu in the top left corner of the window + // if the application key is pressed and the mouse is not in the window + // from here... + ScreenToClient(edit, &pt); + GetClientRect(edit, &r); + if(!PtInRect(&r, pt)) + pt.x = pt.y = 0; + MapWindowPoints(edit, HWND_DESKTOP, &pt, 1); + TrackPopupMenu(g_sdata.editSubmenu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, 0, g_sdata.hwnd, 0); } #ifdef COMPRESSOR_OPTION case TBN_DROPDOWN: @@ -417,6 +418,14 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { CompileNSISScript(); return TRUE; } + // Added by Darren Owen (DrO) on 1/10/2003 + case IDM_RECOMPILE_TEST: + case IDC_RECOMPILE_TEST: + { + g_sdata.recompile_test = 1; + CompileNSISScript(); + return TRUE; + } case IDM_DEFINES: { DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_DEFINES),g_sdata.hwnd,(DLGPROC)DefinesProc); diff --git a/Contrib/Makensisw/makensisw.h b/Contrib/Makensisw/makensisw.h index 4278def2..9a64996e 100644 --- a/Contrib/Makensisw/makensisw.h +++ b/Contrib/Makensisw/makensisw.h @@ -116,6 +116,8 @@ typedef struct NSISScriptData { #ifdef COMPRESSOR_OPTION NCOMPRESSOR compressor; #endif + // Added by Darren Owen (DrO) on 1/10/2003 + int recompile_test; } NSCRIPTDATA; typedef struct ResizeData { diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index 82d4f9df..030bdbb1 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -20,6 +20,9 @@ #define IDS_DEFAULT 18 #define IDS_ZLIB 19 #define IDS_GZIP 20 +// Added by Darren Owen (DrO) on 1/10/2003 +#define IDS_RECOMPILE_TEST 21 + #define DLG_MAIN 101 #define IDI_ICON 102 #define DLG_ABOUT 103 @@ -52,6 +55,9 @@ #define IDRIGHT 1019 #define IDLEFT 1020 #define IDC_DEFINES 1021 +// Added by Darren Owen (DrO) on 1/10/2003 +#define IDC_RECOMPILE_TEST 1022 + #define IDM_TEST 40002 #define IDM_EDITSCRIPT 40003 #define IDM_DOCS 40004 @@ -68,13 +74,15 @@ #define IDM_GZIP 40022 #define IDM_MRU_FILE 40023 #define IDM_CLEAR_MRU_LIST 40029 +// Added by Darren Owen (DrO) on 1/10/2003 +#define IDM_RECOMPILE_TEST 40030 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 124 -#define _APS_NEXT_COMMAND_VALUE 40030 +#define _APS_NEXT_COMMAND_VALUE 40031 #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 aee08b7e..4344334b 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -87,6 +87,7 @@ BEGIN 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 MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR MENUITEM "Clear &Log Window\tCtrl+W", IDM_CLEARLOG @@ -120,6 +121,7 @@ BEGIN "F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT "G", IDM_GZIP, VIRTKEY, CONTROL, NOINVERT "L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT + "M", IDM_RECOMPILE_TEST, VIRTKEY, CONTROL, NOINVERT "R", IDM_RECOMPILE, VIRTKEY, CONTROL, NOINVERT "T", IDM_TEST, VIRTKEY, CONTROL, NOINVERT "U", IDM_DEFAULT, VIRTKEY, CONTROL, NOINVERT @@ -261,6 +263,7 @@ BEGIN IDS_DEFAULT "Default" IDS_ZLIB "zlib" IDS_GZIP "gzip" + IDS_RECOMPILE_TEST "Recompile and run" END #endif // English (U.S.) resources diff --git a/Contrib/Makensisw/toolbar.bmp b/Contrib/Makensisw/toolbar.bmp index 1f821293..64e2faf4 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 99890551..3963a722 100644 --- a/Contrib/Makensisw/toolbar.cpp +++ b/Contrib/Makensisw/toolbar.cpp @@ -59,6 +59,8 @@ void CreateToolBar() tbButton[TBB_COMPRESSOR] = CreateToolBarButton(0, 0, TBSTATE_HIDDEN, TBSTYLE_DROPDOWN, 0, 0); #endif tbButton[TBB_TEST] = CreateToolBarButton(IDB_TEST, IDM_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); + // Added by Darren Owen (DrO) on 1/10/2003 + tbButton[TBB_RECOMPILE_TEST] = CreateToolBarButton(IDB_RECOMPILE_TEST, IDM_RECOMPILE_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_EDITSCRIPT] = CreateToolBarButton(IDB_EDITSCRIPT, IDM_EDITSCRIPT, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_BROWSESCR] = CreateToolBarButton(IDB_BROWSESCR, IDM_BROWSESCR, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0); tbButton[TBB_CLEARLOG] = CreateToolBarButton(IDB_CLEARLOG, IDM_CLEARLOG, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0); @@ -189,6 +191,8 @@ void AddToolBarTooltips() AddToolBarButtonTooltip(TBB_COMPRESSOR, IDS_COMPRESSOR); #endif AddToolBarButtonTooltip(TBB_TEST, IDS_TEST); + // Added by Darren Owen (DrO) on 1/10/2003 + AddToolBarButtonTooltip(TBB_RECOMPILE_TEST, IDS_RECOMPILE_TEST); AddToolBarButtonTooltip(TBB_EDITSCRIPT, IDS_EDITSCRIPT); AddToolBarButtonTooltip(TBB_BROWSESCR, IDS_BROWSESCR); AddToolBarButtonTooltip(TBB_CLEARLOG, IDS_CLEARLOG); diff --git a/Contrib/Makensisw/toolbar.h b/Contrib/Makensisw/toolbar.h index cdf65b92..a481966b 100644 --- a/Contrib/Makensisw/toolbar.h +++ b/Contrib/Makensisw/toolbar.h @@ -30,7 +30,8 @@ #define BUTTONWIDTH 0 #define BUTTONHEIGHT 0 -#define BUTTONCOUNT 20 +// Altered by Darren Owen (DrO) on 1/10/2003 +#define BUTTONCOUNT 21 // was 20 #define TBB_LOADSCRIPT 0 #define TBB_SAVE 1 @@ -43,15 +44,17 @@ #define TBB_DEFINES 8 #define TBB_COMPRESSOR 9 #define TBB_TEST 10 -#define TBB_EDITSCRIPT 11 -#define TBB_BROWSESCR 12 -#define TBB_CLEARLOG 13 -#define TBB_SEP3 14 -#define TBB_NSISHOME 15 -#define TBB_FORUM 16 -#define TBB_NSISUPDATE 17 -#define TBB_SEP4 18 -#define TBB_DOCS 19 +// Added by Darren Owen (DrO) on 1/10/2003 and altered following ids +#define TBB_RECOMPILE_TEST 11 +#define TBB_EDITSCRIPT 12 +#define TBB_BROWSESCR 13 +#define TBB_CLEARLOG 14 +#define TBB_SEP3 15 +#define TBB_NSISHOME 16 +#define TBB_FORUM 17 +#define TBB_NSISUPDATE 18 +#define TBB_SEP4 19 +#define TBB_DOCS 20 #define IDB_LOADSCRIPT 0 #define IDB_SAVE 1 @@ -75,6 +78,8 @@ #define IDB_COMPRESSOR_ZLIB 17 #define IDB_COMPRESSOR_GZIP 18 #endif +// Added by Darren Owen (DrO) on 1/10/2003 +#define IDB_RECOMPILE_TEST 19 typedef struct ToolBarStruct { HWND hwnd; diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index e71a4efb..e4d94046 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -76,63 +76,56 @@ void ErrorMessage(HWND hwnd,const char *str) { LogMessage(hwnd,buf); } -void DisableItems(HWND hwnd) { - g_sdata.focused_hwnd = GetFocus(); - - EnableWindow(GetDlgItem(hwnd,IDC_CLOSE),0); - EnableWindow(GetDlgItem(hwnd,IDC_TEST),0); - EnableMenuItem(g_sdata.menu,IDM_SAVE,MF_GRAYED); - EnableMenuItem(g_sdata.menu,IDM_TEST,MF_GRAYED); - 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_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); +// Altered by Darren Owen (DrO) on 1/10/2003 +void Items(HWND hwnd, int on){ + UINT mf = (!on ? MF_GRAYED : MF_ENABLED); - 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(!on) + g_sdata.focused_hwnd = GetFocus(); + // Altered by Darren Owen (DrO) on 6/10/2003 + else + EnableWindow(GetDlgItem(hwnd,IDC_CLOSE),1); - if (!IsWindowEnabled(g_sdata.focused_hwnd)) - SetFocus(GetDlgItem(hwnd,IDC_LOGWIN)); -} + EnableWindow(GetDlgItem(hwnd,IDC_CLOSE),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); -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); + EnableMenuItem(g_sdata.menu,IDM_SAVE,mf); + // Altered by Darren Owen (DrO) on 6/10/2003 + if((!g_sdata.retcode && on) || !on) + EnableMenuItem(g_sdata.menu,IDM_TEST,mf); + EnableMenuItem(g_sdata.menu,IDM_EXIT,mf); + EnableMenuItem(g_sdata.menu,IDM_LOADSCRIPT,mf); + EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,mf); + EnableMenuItem(g_sdata.menu,IDM_COPY,mf); + EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,mf); + EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,mf); + EnableMenuItem(g_sdata.menu,IDM_CLEARLOG,mf); + EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,mf); + EnableMenuItem(g_sdata.menu,IDM_RECOMPILE_TEST,mf); + + EnableToolBarButton(IDM_SAVE,on); + + // Altered by Darren Owen (DrO) on 6/10/2003 + if((!g_sdata.retcode && on) || !on) + EnableToolBarButton(IDM_TEST,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); + + if(!on) { + if (!IsWindowEnabled(g_sdata.focused_hwnd)) + SetFocus(GetDlgItem(hwnd,IDC_LOGWIN)); } - 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_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); + else + SetFocus(g_sdata.focused_hwnd); } void CompileNSISScript() { @@ -146,9 +139,13 @@ void CompileNSISScript() { 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); diff --git a/Contrib/Makensisw/utils.h b/Contrib/Makensisw/utils.h index ebf9c08f..e34c1476 100644 --- a/Contrib/Makensisw/utils.h +++ b/Contrib/Makensisw/utils.h @@ -32,8 +32,11 @@ void CopyToClipboard(HWND hwnd); void ClearLog(HWND hwnd); void LogMessage(HWND hwnd,const char *str); void ErrorMessage(HWND hwnd,const char *str); -void DisableItems(HWND hwnd); -void EnableItems(HWND hwnd); +#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);*/ void RestoreWindowPos(HWND hwnd); void SaveWindowPos(HWND hwnd); void ResetObjects();