From: <kr_...@us...> - 2004-05-15 15:00:44
|
Update of /cvsroot/htoolkit/port/src/cbits/Win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2244/src/cbits/Win32 Modified Files: Frame.c Log Message: Drawing Check/Radio menu bullets Index: Frame.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/Win32/Frame.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** Frame.c 14 May 2004 23:01:39 -0000 1.27 --- Frame.c 15 May 2004 15:00:32 -0000 1.28 *************** *** 381,388 **** osDrawBitmap(pt.x, pt.y, action->bitmap, &canvas); - // Draw bounding frame ! if (lpDIS->itemState & ODS_SELECTED) ! DrawEdge(lpDIS->hDC,&rcFrame,BDR_RAISEDINNER,BF_RECT); } --- 381,436 ---- osDrawBitmap(pt.x, pt.y, action->bitmap, &canvas); // Draw bounding frame ! if (action->checked) ! DrawEdge(lpDIS->hDC,&rcFrame,BDR_SUNKENINNER,BF_RECT); ! else ! if (lpDIS->itemState & ODS_SELECTED) ! DrawEdge(lpDIS->hDC,&rcFrame,BDR_RAISEDINNER,BF_RECT); ! } ! else ! { ! if (action->checked) ! { ! HDC hMemDC; ! HBITMAP hBmp; ! RECT rc; ! ! hMemDC = CreateCompatibleDC(lpDIS->hDC); ! hBmp = CreateCompatibleBitmap(hMemDC, ! rcFrame.right-rcFrame.left, rcFrame.bottom-rcFrame.top); ! ! SelectObject(hMemDC, hBmp); ! ! rc.left = 0; ! rc.top = 0; ! rc.right = rcFrame.right-rcFrame.left; ! rc.bottom= rcFrame.bottom-rcFrame.top; ! ! switch (action->type) ! { ! case ACTION_CHECK: ! DrawFrameControl(hMemDC, &rc, DFC_MENU, DFCS_MENUCHECK); ! break; ! case ACTION_RADIO: ! DrawFrameControl(hMemDC, &rc, DFC_MENU, DFCS_MENUBULLET); ! break; ! } ! ! SelectObject(lpDIS->hDC, hFillBrush); ! ! MaskBlt(lpDIS->hDC, ! rcFrame.left, ! rcFrame.top, ! rcFrame.right-rcFrame.left, ! rcFrame.bottom-rcFrame.top, ! hMemDC, ! 0, 0, ! hBmp, ! 0, 0, ! MAKEROP4(SRCAND, (lpDIS->itemState & ODS_SELECTED) ? WHITENESS : BLACKNESS)); ! ! DeleteObject(hBmp); ! DeleteDC(hMemDC); ! } } |