]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 892543 ] wxUniversal: Bitmaps in disabled menu items
authorJulian Smart <julian@anthemion.co.uk>
Sun, 8 Feb 2004 12:38:31 +0000 (12:38 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 8 Feb 2004 12:38:31 +0000 (12:38 +0000)
Christian Sturmlechner

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/univ/menuitem.h
src/univ/menu.cpp

index 9f8e53306779dc850f8ecbdb9eaee4767094e363..c0554556a064a3c551eb8f2ea198d061012609d0 100644 (file)
@@ -48,6 +48,11 @@ public:
     const wxBitmap& GetBitmap(bool checked = TRUE) const
       { return checked ? m_bmpChecked : m_bmpUnchecked; }
 
+    void SetDisabledBitmap( const wxBitmap& bmpDisabled )
+      { m_bmpDisabled = bmpDisabled; }
+    const wxBitmap& GetDisabledBitmap() const
+      { return m_bmpDisabled; }
+
     // mark item as belonging to the given radio group
     void SetAsRadioGroupStart();
     void SetRadioGroupStart(int start);
@@ -92,7 +97,8 @@ protected:
 
     // the bitmaps (may be invalid, then they're not used)
     wxBitmap m_bmpChecked,
-             m_bmpUnchecked;
+             m_bmpUnchecked,
+             m_bmpDisabled; 
 
     // the positions of the first and last items of the radio group this item
     // belongs to or -1: start is the radio group start and is valid for all
index bce164c6444c02cc3ac38088b4822da5a1ccf823..0ebba81d1978767532dfe5bab40cfd88f726da66 100644 (file)
@@ -585,6 +585,21 @@ void wxPopupMenuWindow::DoDraw(wxControlRenderer *renderer)
             if ( item == GetCurrentItem() )
                 flags |= wxCONTROL_SELECTED;
 
+            wxBitmap bmp;
+
+            if ( !item->IsEnabled() )
+            {
+                bmp = item->GetDisabledBitmap();
+            }
+
+            if ( !bmp.Ok() )
+            {
+                // strangely enough, for unchecked item we use the
+                // "checked" bitmap because this is the default one - this
+                // explains this strange boolean expression
+                bmp = item->GetBitmap(!item->IsCheckable() || item->IsChecked());
+            }
+
             rend->DrawMenuItem
                   (
                      dc,
@@ -592,10 +607,7 @@ void wxPopupMenuWindow::DoDraw(wxControlRenderer *renderer)
                      gi,
                      item->GetLabel(),
                      item->GetAccelString(),
-                     // strangely enough, for unchecked item we use the
-                     // "checked" bitmap because this is the default one - this
-                     // explains this strange boolean expression
-                     item->GetBitmap(!item->IsCheckable() || item->IsChecked()),
+                     bmp,
                      flags,
                      item->GetAccelIndex()
                   );
@@ -1487,6 +1499,8 @@ wxMenuItem::wxMenuItem(wxMenu *parentMenu,
     m_radioGroup.start = -1;
     m_isRadioGroupStart = FALSE;
 
+    m_bmpDisabled = wxNullBitmap;
+
     UpdateAccelInfo();
 }