no message
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2819 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
2236b14ac6
commit
3419a6b0cd
3 changed files with 34 additions and 3 deletions
|
@ -108,6 +108,28 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
||||||
g_sdata.menu = GetMenu(g_sdata.hwnd);
|
g_sdata.menu = GetMenu(g_sdata.hwnd);
|
||||||
g_sdata.submenu = GetSubMenu(g_sdata.menu,1);
|
g_sdata.submenu = GetSubMenu(g_sdata.menu,1);
|
||||||
|
{
|
||||||
|
OSVERSIONINFO osvi;
|
||||||
|
my_memset(&osvi, 0, sizeof(osvi));
|
||||||
|
osvi.dwOSVersionInfoSize = sizeof(osvi);
|
||||||
|
GetVersionEx(&osvi);
|
||||||
|
if(osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
|
||||||
|
// This is a hack because Win9x & WinNT/2000/XP behave differently for WM_MENUSELECT
|
||||||
|
MENUITEMINFO mii;
|
||||||
|
my_memset(&mii, 0, sizeof(mii));
|
||||||
|
mii.cbSize = sizeof(mii);
|
||||||
|
mii.fMask = MIIM_ID;
|
||||||
|
|
||||||
|
GetMenuItemInfo(g_sdata.menu, FILE_MENU_INDEX, TRUE, &mii);
|
||||||
|
g_sdata.fileMenuId = mii.wID;
|
||||||
|
GetMenuItemInfo(g_sdata.menu, TOOLS_MENU_INDEX, TRUE, &mii);
|
||||||
|
g_sdata.toolsMenuId = mii.wID;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
g_sdata.fileMenuId = FILE_MENU_INDEX;
|
||||||
|
g_sdata.toolsMenuId = TOOLS_MENU_INDEX;
|
||||||
|
}
|
||||||
|
}
|
||||||
CreateToolBar();
|
CreateToolBar();
|
||||||
InitTooltips(g_sdata.hwnd);
|
InitTooltips(g_sdata.hwnd);
|
||||||
#ifdef COMPRESSOR_OPTION
|
#ifdef COMPRESSOR_OPTION
|
||||||
|
@ -276,11 +298,12 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
HMENU hMenu = (HMENU)lParam;
|
HMENU hMenu = (HMENU)lParam;
|
||||||
UINT id = (UINT)LOWORD(wParam);
|
UINT id = (UINT)LOWORD(wParam);
|
||||||
UINT flags = (UINT)HIWORD(wParam);
|
UINT flags = (UINT)HIWORD(wParam);
|
||||||
|
|
||||||
if(hMenu == g_sdata.menu && (flags & MF_POPUP) == MF_POPUP) {
|
if(hMenu == g_sdata.menu && (flags & MF_POPUP) == MF_POPUP) {
|
||||||
if(id == 0) { // File menu
|
if(id == g_sdata.fileMenuId) { // File menu
|
||||||
BuildMRUMenu(GetSubMenu(hMenu, id));
|
BuildMRUMenu(GetSubMenu(hMenu, id));
|
||||||
}
|
}
|
||||||
else if (id == 2) { // Tools menu
|
else if (id == g_sdata.toolsMenuId) { // Tools menu
|
||||||
SetClearMRUListMenuitemState(GetSubMenu(hMenu, id));
|
SetClearMRUListMenuitemState(GetSubMenu(hMenu, id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,8 @@
|
||||||
#define TIMEOUT 100
|
#define TIMEOUT 100
|
||||||
#define MINWIDTH 350
|
#define MINWIDTH 350
|
||||||
#define MINHEIGHT 180
|
#define MINHEIGHT 180
|
||||||
|
#define FILE_MENU_INDEX 0
|
||||||
|
#define TOOLS_MENU_INDEX 2
|
||||||
|
|
||||||
#define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
|
#define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
|
||||||
|
|
||||||
|
@ -104,6 +106,8 @@ typedef struct NSISScriptData {
|
||||||
HINSTANCE hInstance;
|
HINSTANCE hInstance;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
HMENU menu;
|
HMENU menu;
|
||||||
|
UINT fileMenuId;
|
||||||
|
UINT toolsMenuId;
|
||||||
HMENU submenu;
|
HMENU submenu;
|
||||||
HANDLE thread;
|
HANDLE thread;
|
||||||
HWND focused_hwnd;
|
HWND focused_hwnd;
|
||||||
|
|
|
@ -472,11 +472,14 @@ void BuildMRUMenu(HMENU hMenu)
|
||||||
MENUITEMINFO mii;
|
MENUITEMINFO mii;
|
||||||
char buf[MRU_DISPLAY_LENGTH+1];
|
char buf[MRU_DISPLAY_LENGTH+1];
|
||||||
char buf2[MRU_DISPLAY_LENGTH - 6];
|
char buf2[MRU_DISPLAY_LENGTH - 6];
|
||||||
|
int n;
|
||||||
|
|
||||||
for(i = 0; i < MRU_LIST_SIZE; i++) {
|
for(i = 0; i < MRU_LIST_SIZE; i++) {
|
||||||
DeleteMenu(hMenu, IDM_MRU_FILE+i, MF_BYCOMMAND);
|
DeleteMenu(hMenu, IDM_MRU_FILE+i, MF_BYCOMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
n = GetMenuItemCount(hMenu);
|
||||||
|
|
||||||
for(i = 0; i < MRU_LIST_SIZE; i++) {
|
for(i = 0; i < MRU_LIST_SIZE; i++) {
|
||||||
if(g_mru_list[i][0]) {
|
if(g_mru_list[i][0]) {
|
||||||
my_memset(buf,0,sizeof(buf));
|
my_memset(buf,0,sizeof(buf));
|
||||||
|
@ -516,7 +519,8 @@ void BuildMRUMenu(HMENU hMenu)
|
||||||
mii.dwTypeData = buf;
|
mii.dwTypeData = buf;
|
||||||
mii.cch = lstrlen(buf)+1;
|
mii.cch = lstrlen(buf)+1;
|
||||||
mii.fState = MFS_ENABLED;
|
mii.fState = MFS_ENABLED;
|
||||||
InsertMenuItem(hMenu, IDM_MRU_FILE+i, FALSE, &mii);
|
InsertMenuItem(hMenu, n++, TRUE, &mii);
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue