winhlp32: Add support for accelerators in general and F1 in particular.
Francois Gouget
fgouget at free.fr
Fri Apr 8 05:03:25 CDT 2011
---
Note that I decided to keep the 'Help on Help' menu name because the
user may think that 'Contents' refers to the current help file's table
of contents.
programs/winhlp32/winhelp.c | 12 +++++++++---
programs/winhlp32/winhelp_res.h | 1 +
programs/winhlp32/winhlp32.rc | 8 +++++++-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/programs/winhlp32/winhelp.c b/programs/winhlp32/winhelp.c
index 685b55a..a43a784 100644
--- a/programs/winhlp32/winhelp.c
+++ b/programs/winhlp32/winhelp.c
@@ -1347,7 +1347,7 @@ static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
case WM_COMMAND:
win = (WINHELP_WINDOW*) GetWindowLongPtr(hWnd, 0);
- switch (wParam)
+ switch (LOWORD(wParam))
{
/* Menu FILE */
case MNID_FILE_OPEN: MACRO_FileOpen(); break;
@@ -1654,6 +1654,7 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
static CHAR default_wndname[] = "main";
LPSTR wndname = default_wndname;
WINHELP_DLL* dll;
+ HACCEL hAccel;
Globals.hInstance = hInstance;
@@ -1725,10 +1726,15 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
WINHELP_GetWindowInfo(hlpfile, wndname), show);
/* Message loop */
+ hAccel = LoadAcceleratorsW(hInstance, MAKEINTRESOURCEW(MAIN_ACCEL));
while ((Globals.win_list || Globals.active_popup) && GetMessage(&msg, 0, 0, 0))
{
- TranslateMessage(&msg);
- DispatchMessage(&msg);
+ HWND hWnd = Globals.active_win ? Globals.active_win->hMainWnd : NULL;
+ if (!TranslateAcceleratorW(hWnd, hAccel, &msg))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
}
for (dll = Globals.dlls; dll; dll = dll->next)
{
diff --git a/programs/winhlp32/winhelp_res.h b/programs/winhlp32/winhelp_res.h
index 92a4863..5bf97aa 100644
--- a/programs/winhlp32/winhelp_res.h
+++ b/programs/winhlp32/winhelp_res.h
@@ -29,6 +29,7 @@
#define MAIN_MENU 0xF000
#define CONTEXT_MENU 0xF001
+#define MAIN_ACCEL 0xF002
#define STID_WINE_HELP 0x120
#define STID_WHERROR 0x121
diff --git a/programs/winhlp32/winhlp32.rc b/programs/winhlp32/winhlp32.rc
index 8d3acaf..6f0ee8a 100644
--- a/programs/winhlp32/winhlp32.rc
+++ b/programs/winhlp32/winhlp32.rc
@@ -51,7 +51,7 @@ MAIN_MENU MENU
END
}
POPUP "&Help" {
- MENUITEM "&Help on help", MNID_HELP_HELPON
+ MENUITEM "&Help on help\tF1", MNID_HELP_HELPON
MENUITEM "Always on &top", MNID_HELP_HELPTOP
MENUITEM SEPARATOR
MENUITEM "&About Wine Help", MNID_HELP_ABOUT
@@ -94,5 +94,11 @@ STID_PSH_INDEX, "Help topics: "
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+MAIN_ACCEL ACCELERATORS
+{
+ VK_F1, MNID_HELP_HELPON, VIRTKEY
+}
+
/* @makedep: winhelp.ico */
IDI_WINHELP ICON winhelp.ico
--
1.7.4.1
More information about the wine-patches
mailing list