[PATCH 4/8] [WinHelp]: implemented SetPopupColor macro

Eric Pouech eric.pouech at orange.fr
Sat Jul 12 03:37:08 CDT 2008




A+
---

 programs/winhlp32/hlpfile.h |    3 +++
 programs/winhlp32/macro.c   |    6 ++++--
 programs/winhlp32/winhelp.c |    5 ++++-
 3 files changed, 11 insertions(+), 3 deletions(-)


diff --git a/programs/winhlp32/hlpfile.h b/programs/winhlp32/hlpfile.h
index f25fc62..5097259 100644
--- a/programs/winhlp32/hlpfile.h
+++ b/programs/winhlp32/hlpfile.h
@@ -133,6 +133,9 @@ typedef struct tagHlpFileFile
     HLPFILE_WINDOWINFO*         windows;
     HICON                       hIcon;
 
+    BOOL                        has_popup_color;
+    COLORREF                    popup_color;
+
     LPSTR                       help_on_file;
 } HLPFILE;
 
diff --git a/programs/winhlp32/macro.c b/programs/winhlp32/macro.c
index a2f50c4..2fc9299 100644
--- a/programs/winhlp32/macro.c
+++ b/programs/winhlp32/macro.c
@@ -904,9 +904,11 @@ void CALLBACK MACRO_SetHelpOnFile(LPCSTR str)
         strcpy(Globals.active_win->page->file->help_on_file, str);
 }
 
-void CALLBACK MACRO_SetPopupColor(LONG u1, LONG u2, LONG u3)
+void CALLBACK MACRO_SetPopupColor(LONG r, LONG g, LONG b)
 {
-    WINE_FIXME("(%u, %u, %u)\n", u1, u2, u3);
+    WINE_TRACE("(%x, %x, %x)\n", r, g, b);
+    Globals.active_win->page->file->has_popup_color = TRUE;
+    Globals.active_win->page->file->popup_color = RGB(r, g, b);
 }
 
 void CALLBACK MACRO_ShellExecute(LPCSTR str1, LPCSTR str2, LONG u1, LONG u2, LPCSTR str3, LPCSTR str4)
diff --git a/programs/winhlp32/winhelp.c b/programs/winhlp32/winhelp.c
index 13114f7..0ad3243 100644
--- a/programs/winhlp32/winhelp.c
+++ b/programs/winhlp32/winhelp.c
@@ -228,7 +228,10 @@ static HLPFILE_WINDOWINFO*     WINHELP_GetPopupWindowInfo(HLPFILE* hlpfile,
 
     wi.style = SW_SHOW;
     wi.win_style = WS_POPUP | WS_BORDER;
-    wi.sr_color = parent->info->sr_color;
+    if (parent->page->file->has_popup_color)
+        wi.sr_color = parent->page->file->popup_color;
+    else
+        wi.sr_color = parent->info->sr_color;
     wi.nsr_color = 0xFFFFFF;
 
     return &wi;





More information about the wine-patches mailing list