From b4413ab821159e4332f044e891a2d8eb0fbce186 Mon Sep 17 00:00:00 2001 From: kichik Date: Mon, 6 Mar 2006 15:15:49 +0000 Subject: [PATCH] added "Cancel compilation" menu item to abort current compilation by sending ctrl+c signal git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4552 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/Makensisw/makensisw.cpp | 7 +++++++ Contrib/Makensisw/makensisw.h | 1 + Contrib/Makensisw/resource.h | 3 ++- Contrib/Makensisw/resource.rc | 1 + Contrib/Makensisw/utils.cpp | 2 ++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index f6f68cec..7036cf3c 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -45,6 +45,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmd g_sdata.hInstance=GetModuleHandle(0); g_sdata.script_alloced=false; g_sdata.symbols = NULL; + g_sdata.sigint_event = CreateEvent(NULL, FALSE, FALSE, "makensis win32 signint event"); RestoreSymbols(); if (!InitBranding()) { @@ -70,6 +71,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmd } } if (g_sdata.script_alloced) GlobalFree(g_sdata.script); + if (g_sdata.sigint_event) CloseHandle(g_sdata.sigint_event); FinalizeUpdate(); ExitProcess(msg.wParam); return msg.wParam; @@ -576,6 +578,11 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { } return TRUE; } + case IDM_CANCEL: + { + SetEvent(g_sdata.sigint_event); + return TRUE; + } case IDM_COPY: { CopyToClipboard(g_sdata.hwnd); diff --git a/Contrib/Makensisw/makensisw.h b/Contrib/Makensisw/makensisw.h index a88a6089..4f74f02b 100644 --- a/Contrib/Makensisw/makensisw.h +++ b/Contrib/Makensisw/makensisw.h @@ -184,6 +184,7 @@ typedef struct NSISScriptData { HMENU editSubmenu; HMENU toolsSubmenu; HANDLE thread; + HANDLE sigint_event; HWND focused_hwnd; CHARRANGE textrange; NCOMPRESSOR default_compressor; diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index 71602b52..eadb9abd 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -95,13 +95,14 @@ #define IDM_RECOMPILE_TEST 40033 #define IDM_BEST 40034 #define IDM_SETTINGS 40035 +#define IDM_CANCEL 40036 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 133 -#define _APS_NEXT_COMMAND_VALUE 40036 +#define _APS_NEXT_COMMAND_VALUE 40037 #define _APS_NEXT_CONTROL_VALUE 1032 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/Contrib/Makensisw/resource.rc b/Contrib/Makensisw/resource.rc index 33c47fe0..8ffb8671 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -88,6 +88,7 @@ BEGIN MENUITEM "&Recompile\tCtrl+R", IDM_RECOMPILE MENUITEM "Test &Installer\tCtrl+T", IDM_TEST MENUITEM "Reco&mpile and Test\tCtrl+M", IDM_RECOMPILE_TEST + MENUITEM "C&ancel compilation", IDM_CANCEL MENUITEM SEPARATOR POPUP "Set &Compressor" BEGIN diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index e3807494..da588911 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -162,6 +162,7 @@ void ErrorMessage(HWND hwnd,const char *str) { // 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); if(!on) g_sdata.focused_hwnd = GetFocus(); @@ -189,6 +190,7 @@ void Items(HWND hwnd, int on){ EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,mf); EnableMenuItem(g_sdata.menu,IDM_RECOMPILE_TEST,mf); EnableMenuItem(g_sdata.menu,IDM_COMPRESSOR,mf); + EnableMenuItem(g_sdata.menu,IDM_CANCEL,nmf); EnableToolBarButton(IDM_SAVE,on); // Altered by Darren Owen (DrO) on 6/10/2003