]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/ownerdrw.h
fix memory leak as Dimitri suggested
[wxWidgets.git] / include / wx / ownerdrw.h
index 3008d453a8c90b656715aa6df2101ff0a655fab0..2392e532e9083755447ccdabf999e267c00ec8d9 100644 (file)
@@ -6,20 +6,22 @@
 // Created:     11.11.97
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef   _OWNERDRW_H
 #define   _OWNERDRW_H
 
-#include "wx/setup.h"
-
 #if wxUSE_OWNER_DRAWN
 
-#ifdef    __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "ownerdrw.h"
 #endif
 
+#include "wx/bitmap.h"
+#include "wx/colour.h"
+#include "wx/font.h"
+
 // ----------------------------------------------------------------------------
 // wxOwnerDrawn - a mix-in base class, derive from it to implement owner-drawn
 //                behaviour
@@ -61,6 +63,10 @@ public:
         m_bmpUnchecked = bmpUnchecked;
         m_bOwnerDrawn = TRUE; }
 
+  void SetBitmap(const wxBitmap& bmpChecked)
+      { m_bmpChecked = bmpChecked;
+        m_bOwnerDrawn = TRUE; }
+
   const wxBitmap& GetBitmap(bool bChecked = TRUE) const
       { return (bChecked ? m_bmpChecked : m_bmpUnchecked); }
 
@@ -86,6 +92,10 @@ public:
   void SetCheckable(bool checkable) { m_bCheckable = checkable; }
   bool IsCheckable() const { return m_bCheckable; }
 
+  // this is for menu items only: accel string is drawn right aligned after the
+  // menu item if not empty
+  void SetAccelString(const wxString& strAccel) { m_strAccel = strAccel; }
+
   // this function might seem strange, but if it returns FALSE it means that
   // no non-standard attribute are set, so there is no need for this control
   // to be owner-drawn. Moreover, you can force owner-drawn to FALSE if you
@@ -119,7 +129,8 @@ public:
   virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat);
 
 protected:
-  wxString  m_strName;      // label for a manu item
+  wxString  m_strName,      // label for a manu item
+            m_strAccel;     // the accel string ("Ctrl-F17") if any
 
 private:
   static size_t ms_nDefaultMarginWidth; // menu check mark width
@@ -135,6 +146,7 @@ private:
             m_bmpUnchecked; // (checked is used also for 'uncheckable' items)
 
   size_t    m_nHeight,      // font height
+            m_nMinHeight,   // minimum height, as determined by user's system settings
             m_nMarginWidth; // space occupied by bitmap to the left of the item
 };