Update of /cvsroot/htoolkit/port/src/cbits/Win32
In directory sc8-pr-cvs1:/tmp/cvs-serv15815/src/cbits/Win32
Modified Files:
Frame.c
Log Message:
Better drawing for menu items with bitmaps
Index: Frame.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/Win32/Frame.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** Frame.c 3 May 2003 09:15:08 -0000 1.10
--- Frame.c 3 Jul 2003 17:46:00 -0000 1.11
***************
*** 10,13 ****
--- 10,22 ----
#define Spacing 1
+ void DrawMenuText(HDC hdc, LPTSTR lpchText, LPRECT lpRect)
+ {
+ int n = 0;
+ while (lpchText[n] && lpchText[n] != '\t') n++;
+
+ DrawText(hdc, lpchText, n, lpRect, DT_SINGLELINE|DT_VCENTER|DT_LEFT);
+ DrawText(hdc, lpchText+n+1, -1, lpRect, DT_SINGLELINE|DT_VCENTER|DT_RIGHT);
+ }
+
LRESULT CALLBACK HFrameSharedFunction(int DocumentInterface, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
***************
*** 174,178 ****
ZeroMemory(&rc,sizeof(rc));
! DrawText(hDC,mii.dwTypeData,mii.cch,&rc,DT_SINGLELINE|DT_VCENTER|DT_LEFT|DT_CALCRECT|DT_EXPANDTABS);
lDims = GetMenuCheckMarkDimensions();
--- 183,187 ----
ZeroMemory(&rc,sizeof(rc));
! DrawText(hDC,mii.dwTypeData,mii.cch,&rc,DT_SINGLELINE|DT_VCENTER|DT_LEFT|DT_CALCRECT);
lDims = GetMenuCheckMarkDimensions();
***************
*** 183,187 ****
wCheckHeight = (WORD)max(handle->bitmap->destsize.cy, wCheckHeight);
! lpMIS->itemWidth = (rc.right-rc.left) + wCheckWidth + (Spacing*2); // Text width
lpMIS->itemHeight = max((rc.bottom-rc.top),wCheckHeight) + (Spacing*2); // Text Height
}
--- 192,196 ----
wCheckHeight = (WORD)max(handle->bitmap->destsize.cy, wCheckHeight);
! lpMIS->itemWidth = (rc.right-rc.left) + wCheckWidth + (Spacing*3); // Text width
lpMIS->itemHeight = max((rc.bottom-rc.top),wCheckHeight) + (Spacing*2); // Text Height
}
***************
*** 214,218 ****
int nIndexDC;
HBRUSH hFillBrush;
- DWORD dwDrawFlags;
struct CanvasHandle canvas;
--- 223,226 ----
***************
*** 264,267 ****
--- 272,276 ----
rc = lpDIS->rcItem;
rc.left += wWidth+Spacing;
+ rc.right-= Spacing;
// Draw out the bitmap associated with the menu item.
***************
*** 295,300 ****
GetMenuItemInfo(hParent, pos, TRUE, &mii);
- dwDrawFlags = DT_SINGLELINE|DT_VCENTER|DT_LEFT|DT_EXPANDTABS;
-
if (lpDIS->itemState & ODS_GRAYED)
{
--- 304,307 ----
***************
*** 304,312 ****
SetTextColor(lpDIS->hDC, GetSysColor(COLOR_3DHILIGHT));
OffsetRect(&rc,1,1);
! DrawText(lpDIS->hDC,mii.dwTypeData,mii.cch,&rc,dwDrawFlags);
OffsetRect(&rc,-1,-1);
SetTextColor(lpDIS->hDC,GetSysColor(COLOR_GRAYTEXT));
! DrawText(lpDIS->hDC,mii.dwTypeData,mii.cch,&rc,dwDrawFlags);
}
else
--- 311,319 ----
SetTextColor(lpDIS->hDC, GetSysColor(COLOR_3DHILIGHT));
OffsetRect(&rc,1,1);
! DrawMenuText(lpDIS->hDC,mii.dwTypeData,&rc);
OffsetRect(&rc,-1,-1);
SetTextColor(lpDIS->hDC,GetSysColor(COLOR_GRAYTEXT));
! DrawMenuText(lpDIS->hDC,mii.dwTypeData,&rc);
}
else
***************
*** 314,322 ****
COLORREF crGray = (GetSysColor(COLOR_GRAYTEXT) + RGB(64,64,64));
SetTextColor(lpDIS->hDC,crGray);
! DrawText(lpDIS->hDC,mii.dwTypeData,mii.cch,&rc,dwDrawFlags);
}
}
else
! DrawText(lpDIS->hDC,mii.dwTypeData,mii.cch,&rc,dwDrawFlags);
}
--- 321,329 ----
COLORREF crGray = (GetSysColor(COLOR_GRAYTEXT) + RGB(64,64,64));
SetTextColor(lpDIS->hDC,crGray);
! DrawMenuText(lpDIS->hDC,mii.dwTypeData,&rc);
}
}
else
! DrawMenuText(lpDIS->hDC,mii.dwTypeData,&rc);
}
|