- Recompile and Run (DrO)

- Fix for the context menu (DrO)


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3125 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-11-11 13:43:59 +00:00
parent 26ac800738
commit ff63db4c66
9 changed files with 123 additions and 92 deletions

View file

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

View file

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

View file

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

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

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

View file

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

View file

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

View file

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