]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ownerdrw.cpp
Added #if wxUSE_OWNER_DRAWN
[wxWidgets.git] / src / msw / ownerdrw.cpp
index 5cc44d6be0f82f3ee403b04dba3fc0e3df1236f7..2c2ec2a8ead4a27cc97fa993bcc0190ff78a1c91 100644 (file)
@@ -33,6 +33,8 @@
 #include "wx/ownerdrw.h"
 #include "wx/menuitem.h"
 
+#if wxUSE_OWNER_DRAWN
+
 
 // ============================================================================
 // implementation of wxOwnerDrawn class
@@ -140,12 +142,14 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODSt
   // using native API because it reckognizes '&' 
   #ifdef  O_DRAW_NATIVE_API
     int nPrevMode = SetBkMode(hdc, TRANSPARENT);
-    HBRUSH  hbr = CreateSolidBrush(colBack),
-            hPrevBrush = (HBRUSH) SelectObject(hdc, hbr);
+    HBRUSH hbr = CreateSolidBrush(colBack),
+           hPrevBrush = (HBRUSH)SelectObject(hdc, hbr);
 
     RECT rectAll = { rc.GetLeft(), rc.GetTop(), rc.GetRight(), rc.GetBottom() };
     FillRect(hdc, &rectAll, hbr);
 
+    DeleteObject(hbr);
+
     // use default font if no font set
     HFONT hfont;
     if ( m_font.Ok() ) {
@@ -186,14 +190,19 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODSt
 
         // then draw a check mark into it
       RECT rect = { 0, 0, GetMarginWidth(), m_nHeight };
+      if ( m_nHeight > 0 )
+      {
 #ifndef __SC__
-      DrawFrameControl(hdcMem, &rect, DFC_MENU, DFCS_MENUCHECK);
+        DrawFrameControl(hdcMem, &rect, DFC_MENU, DFCS_MENUCHECK);
 #endif
+      }
 
         // finally copy it to screen DC and clean up
       BitBlt(hdc, rc.x, rc.y, GetMarginWidth(), m_nHeight, 
              hdcMem, 0, 0, SRCCOPY);
+
       DeleteDC(hdcMem);
+      DeleteObject(hbmpCheck);
 #else
         // #### to do: perhaps using Marlett font (create equiv. font under X)
 //        wxFAIL("not implemented");
@@ -218,7 +227,7 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODSt
       dc.Blit(rc.x + (GetMarginWidth() - nBmpWidth) / 2, 
               rc.y + (m_nHeight - nBmpHeight) /2, 
               nBmpWidth, nBmpHeight, 
-              &dcMem, 0, 0, wxCOPY,true);
+              &dcMem, 0, 0, wxCOPY, TRUE);
 
       if ( st & wxODSelected ) {
         #ifdef  O_DRAW_NATIVE_API
@@ -244,3 +253,6 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODSt
   return TRUE;
 }
 
+
+#endif // wxUSE_OWNER_DRAWN
+