winhlp32: Implement MACRO_HelpOnTop() and thus the corresponding menu.

Francois Gouget fgouget at free.fr
Thu Mar 31 05:44:21 CDT 2011


---
 programs/winhlp32/macro.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/programs/winhlp32/macro.c b/programs/winhlp32/macro.c
index 3151e0d..7f3328f 100644
--- a/programs/winhlp32/macro.c
+++ b/programs/winhlp32/macro.c
@@ -488,7 +488,29 @@ void CALLBACK MACRO_HelpOn(void)
 
 void CALLBACK MACRO_HelpOnTop(void)
 {
-    WINE_FIXME("()\n");
+    static BOOL on_top = FALSE;
+    WINHELP_WINDOW *win;
+    HWND main_wnd = NULL;
+    HMENU menu;
+
+    for (win = Globals.win_list; win; win = win->next)
+        if (!lstrcmpi(win->info->name, "main"))
+            main_wnd = win->hMainWnd;
+    if (!main_wnd)
+    {
+        WINE_ERR("could not find the main window!\n");
+        return;
+    }
+    menu = GetMenu(main_wnd);
+
+    on_top = !on_top;
+    if (on_top) {
+        CheckMenuItem(menu, MNID_HELP_HELPTOP, MF_BYCOMMAND|MF_CHECKED);
+        SetWindowPos(main_wnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
+    } else {
+        CheckMenuItem(menu, MNID_HELP_HELPTOP, MF_BYCOMMAND|MF_UNCHECKED);
+        SetWindowPos(main_wnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
+    }
 }
 
 void CALLBACK MACRO_History(void)
-- 
1.7.4.1




More information about the wine-patches mailing list