From a6fd0fde4ca9f5109820e5494e43e9bbf188fc4d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 3 Oct 2004 13:46:11 +0000 Subject: [PATCH] update the disabled buttons appearance when system colours change (followup to patch 1027243) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/bmpbuttn.h | 7 +++++++ src/msw/bmpbuttn.cpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/wx/msw/bmpbuttn.h b/include/wx/msw/bmpbuttn.h index fc92a31363..c7e2113a74 100644 --- a/include/wx/msw/bmpbuttn.h +++ b/include/wx/msw/bmpbuttn.h @@ -59,8 +59,15 @@ public: protected: virtual wxSize DoGetBestSize() const; + // invalidate m_brushDisabled when system colours change + void OnSysColourChanged(wxSysColourChangedEvent& event); + + + // the brush we use to draw disabled buttons wxBrush m_brushDisabled; + + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton) }; diff --git a/src/msw/bmpbuttn.cpp b/src/msw/bmpbuttn.cpp index 8a7ff239e0..d40d422eda 100644 --- a/src/msw/bmpbuttn.cpp +++ b/src/msw/bmpbuttn.cpp @@ -89,6 +89,10 @@ wxCONSTRUCTOR_5( wxBitmapButton , wxWindow* , Parent , wxWindowID , Id , wxBitma IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) #endif +BEGIN_EVENT_TABLE(wxBitmapButton, wxBitmapButtonBase) + EVT_SYS_COLOUR_CHANGED(wxBitmapButton::OnSysColourChanged) +END_EVENT_TABLE() + /* TODO PROPERTIES : @@ -183,6 +187,19 @@ bool wxBitmapButton::SetBackgroundColour(const wxColour& colour) return true; } +void wxBitmapButton::OnSysColourChanged(wxSysColourChangedEvent& event) +{ + m_brushDisabled = wxNullBrush; + + if ( !IsEnabled() ) + { + // this change affects our current state + Refresh(); + } + + event.Skip(); +} + // VZ: should be at the very least less than wxDEFAULT_BUTTON_MARGIN #define FOCUS_MARGIN 3 -- 2.45.2