Erich Hoover : hhctrl.ocx: Properly show HTML Help dialogs without Tri-Pane display.
Alexandre Julliard
julliard at winehq.org
Tue Sep 4 12:38:38 CDT 2012
Module: wine
Branch: master
Commit: b6ed7acce1d0692c0510366210762cda9076a6ce
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6ed7acce1d0692c0510366210762cda9076a6ce
Author: Erich Hoover <ehoover at mines.edu>
Date: Fri Aug 31 15:26:26 2012 -0600
hhctrl.ocx: Properly show HTML Help dialogs without Tri-Pane display.
---
dlls/hhctrl.ocx/help.c | 37 ++++++++++++++++++++++---------------
1 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 93a93a5..514b2a8 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -165,6 +165,11 @@ struct html_encoded_symbol html_encoded_symbols[] =
{"yuml", 0xFF}
};
+static inline BOOL navigation_visible(HHInfo *info)
+{
+ return ((info->WinType.fsWinProperties & HHWIN_PROP_TRI_PANE) && !info->WinType.fNotExpanded);
+}
+
/* Loads a string from the resource file */
static LPWSTR HH_LoadString(DWORD dwID)
{
@@ -427,7 +432,7 @@ static BOOL HH_AddSizeBar(HHInfo *pHHInfo)
DWORD dwExStyles = WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR;
RECT rc;
- if (!pHHInfo->WinType.fNotExpanded)
+ if (navigation_visible(pHHInfo))
dwStyles |= WS_VISIBLE;
SB_GetSizeBarRect(pHHInfo, &rc);
@@ -1010,8 +1015,7 @@ static BOOL HH_AddToolbar(HHInfo *pHHInfo)
else
toolbarFlags = HHWIN_DEF_BUTTONS;
- dwStyles = WS_CHILDWINDOW | WS_VISIBLE | TBSTYLE_FLAT |
- TBSTYLE_WRAPABLE | TBSTYLE_TOOLTIPS | CCS_NODIVIDER;
+ dwStyles = WS_CHILDWINDOW | TBSTYLE_FLAT | TBSTYLE_WRAPABLE | TBSTYLE_TOOLTIPS | CCS_NODIVIDER;
dwExStyles = WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR;
hToolbar = CreateWindowExW(dwExStyles, TOOLBARCLASSNAMEW, NULL, dwStyles,
@@ -1039,7 +1043,8 @@ static BOOL HH_AddToolbar(HHInfo *pHHInfo)
SendMessageW(hToolbar, TB_ADDBUTTONSW, dwNumButtons, (LPARAM)buttons);
SendMessageW(hToolbar, TB_AUTOSIZE, 0, 0);
- ShowWindow(hToolbar, SW_SHOW);
+ if (pHHInfo->WinType.fsWinProperties & HHWIN_PROP_TRI_PANE)
+ ShowWindow(hToolbar, SW_SHOW);
return TRUE;
}
@@ -1091,7 +1096,7 @@ static BOOL HH_AddNavigationPane(HHInfo *info)
DWORD dwExStyles = WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR;
RECT rc;
- if (!info->WinType.fNotExpanded)
+ if (navigation_visible(info))
dwStyles |= WS_VISIBLE;
NP_GetNavigationRect(info, &rc);
@@ -1138,20 +1143,22 @@ static void HP_GetHTMLRect(HHInfo *info, RECT *rc)
RECT rectTB, rectWND, rectNP, rectSB;
GetClientRect(info->WinType.hwndHelp, &rectWND);
- GetClientRect(info->WinType.hwndToolBar, &rectTB);
GetClientRect(info->hwndSizeBar, &rectSB);
- if (info->WinType.fNotExpanded)
- rc->left = 0;
- else
+ rc->left = 0;
+ rc->top = 0;
+ if (navigation_visible(info))
{
GetClientRect(info->WinType.hwndNavigation, &rectNP);
- rc->left = rectNP.right + rectSB.right;
+ rc->left += rectNP.right + rectSB.right;
+ }
+ if (info->WinType.fsWinProperties & HHWIN_PROP_TRI_PANE)
+ {
+ GetClientRect(info->WinType.hwndToolBar, &rectTB);
+ rc->top += rectTB.bottom;
}
-
- rc->top = rectTB.bottom;
rc->right = rectWND.right - rc->left;
- rc->bottom = rectWND.bottom - rectTB.bottom;
+ rc->bottom = rectWND.bottom - rc->top;
}
static BOOL HH_AddHTMLPane(HHInfo *pHHInfo)
@@ -1535,7 +1542,7 @@ static LRESULT Help_OnSize(HWND hWnd)
if (!pHHInfo)
return 0;
- if (!pHHInfo->WinType.fNotExpanded)
+ if (navigation_visible(pHHInfo))
{
NP_GetNavigationRect(pHHInfo, &rc);
SetWindowPos(pHHInfo->WinType.hwndNavigation, HWND_TOP, 0, 0,
@@ -1643,7 +1650,7 @@ static BOOL HH_CreateHelpWindow(HHInfo *info)
height = WINTYPE_DEFAULT_HEIGHT;
}
- if (info->WinType.fNotExpanded)
+ if (!(info->WinType.fsWinProperties & HHWIN_PROP_TRI_PANE) && info->WinType.fNotExpanded)
{
if (!(info->WinType.fsValidMembers & HHWIN_PARAM_NAV_WIDTH) &&
info->WinType.iNavWidth == 0)
More information about the wine-cvs
mailing list