From b545684e13530b21082bc2fc5c64c1c14b852994 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sat, 5 Dec 2009 19:25:04 +0000 Subject: [PATCH] simplify Enable() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/button.h | 4 ++-- include/wx/gtk/checkbox.h | 11 ++++++----- include/wx/gtk/radiobut.h | 3 +++ include/wx/gtk/spinbutt.h | 2 ++ include/wx/gtk/tglbtn.h | 4 ++++ src/gtk/button.cpp | 8 ++------ src/gtk/checkbox.cpp | 8 ++------ src/gtk/radiobox.cpp | 6 +----- src/gtk/radiobut.cpp | 8 ++------ src/gtk/spinbutt.cpp | 6 ++---- src/gtk/tglbtn.cpp | 8 ++------ 11 files changed, 28 insertions(+), 40 deletions(-) diff --git a/include/wx/gtk/button.h b/include/wx/gtk/button.h index 2b7f9a0278..7d1e5847a1 100644 --- a/include/wx/gtk/button.h +++ b/include/wx/gtk/button.h @@ -68,6 +68,8 @@ protected: virtual void DoSetBitmapPosition(wxDirection dir); private: + typedef wxButtonBase base_type; + // common part of all ctors void Init() { @@ -89,7 +91,6 @@ private: // show the given bitmap (must be valid) void GTKDoShowBitmap(const wxBitmap& bitmap); - // the bitmaps for the different state of the buttons, all of them may be // invalid and the button only shows a bitmap at all if State_Normal bitmap // is valid @@ -101,7 +102,6 @@ private: // true iff the button is in pressed state bool m_isPressed; - DECLARE_DYNAMIC_CLASS(wxButton) }; diff --git a/include/wx/gtk/checkbox.h b/include/wx/gtk/checkbox.h index 5ae9c7fb47..a3631debaf 100644 --- a/include/wx/gtk/checkbox.h +++ b/include/wx/gtk/checkbox.h @@ -44,6 +44,10 @@ public: static wxVisualAttributes GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + // implementation + void GTKDisableEvents(); + void GTKEnableEvents(); + protected: virtual wxSize DoGetBestSize() const; virtual void DoApplyWidgetStyle(GtkRcStyle *style); @@ -52,15 +56,12 @@ protected: void DoSet3StateValue(wxCheckBoxState state); wxCheckBoxState DoGet3StateValue() const; -public: - // implementation - void GTKDisableEvents(); - void GTKEnableEvents(); +private: + typedef wxCheckBoxBase base_type; GtkWidget *m_widgetCheckbox; GtkWidget *m_widgetLabel; -private: DECLARE_DYNAMIC_CLASS(wxCheckBox) }; diff --git a/include/wx/gtk/radiobut.h b/include/wx/gtk/radiobut.h index 2ee6a49085..e1a1d6275e 100644 --- a/include/wx/gtk/radiobut.h +++ b/include/wx/gtk/radiobut.h @@ -53,6 +53,9 @@ protected: virtual void DoApplyWidgetStyle(GtkRcStyle *style); virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; +private: + typedef wxControl base_type; + DECLARE_DYNAMIC_CLASS(wxRadioButton) }; diff --git a/include/wx/gtk/spinbutt.h b/include/wx/gtk/spinbutt.h index c9d3bc31ed..7f2f323d23 100644 --- a/include/wx/gtk/spinbutt.h +++ b/include/wx/gtk/spinbutt.h @@ -60,6 +60,8 @@ protected: virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: + typedef wxSpinButtonBase base_type; + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxSpinButton) }; diff --git a/include/wx/gtk/tglbtn.h b/include/wx/gtk/tglbtn.h index 583ba88619..aa75f3898c 100644 --- a/include/wx/gtk/tglbtn.h +++ b/include/wx/gtk/tglbtn.h @@ -84,6 +84,8 @@ protected: virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: + typedef wxToggleButtonBase base_type; + DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton) }; @@ -137,6 +139,8 @@ protected: virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: + typedef wxToggleButtonBase base_type; + DECLARE_DYNAMIC_CLASS(wxToggleButton) }; diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index 2ce3e1d0a1..8fe4d861bb 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -266,17 +266,13 @@ void wxButton::SetLabel( const wxString &lbl ) bool wxButton::Enable( bool enable ) { - bool isEnabled = IsEnabled(); - - if ( !wxControl::Enable( enable ) ) + if (!base_type::Enable(enable)) return false; gtk_widget_set_sensitive(GTK_BIN(m_widget)->child, enable); - if (!isEnabled && enable) - { + if (enable) GTKFixSensitivity(); - } GTKUpdateBitmap(); diff --git a/src/gtk/checkbox.cpp b/src/gtk/checkbox.cpp index 82606be7ff..f4d79dde3e 100644 --- a/src/gtk/checkbox.cpp +++ b/src/gtk/checkbox.cpp @@ -217,17 +217,13 @@ void wxCheckBox::SetLabel( const wxString& label ) bool wxCheckBox::Enable( bool enable ) { - bool isEnabled = IsEnabled(); - - if ( !wxControl::Enable( enable ) ) + if (!base_type::Enable(enable)) return false; gtk_widget_set_sensitive( m_widgetLabel, enable ); - if (!isEnabled && enable) - { + if (enable) GTKFixSensitivity(); - } return true; } diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp index a0e73a219d..08368f2459 100644 --- a/src/gtk/radiobox.cpp +++ b/src/gtk/radiobox.cpp @@ -428,8 +428,6 @@ void wxRadioBox::SetString(unsigned int item, const wxString& label) bool wxRadioBox::Enable( bool enable ) { - bool isEnabled = IsEnabled(); - if ( !wxControl::Enable( enable ) ) return false; @@ -444,10 +442,8 @@ bool wxRadioBox::Enable( bool enable ) node = node->GetNext(); } - if (!isEnabled && enable) - { + if (enable) GTKFixSensitivity(); - } return true; } diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp index 779c22e58d..d2c5f73cfe 100644 --- a/src/gtk/radiobut.cpp +++ b/src/gtk/radiobut.cpp @@ -138,17 +138,13 @@ bool wxRadioButton::GetValue() const bool wxRadioButton::Enable( bool enable ) { - bool isEnabled = IsEnabled(); - - if ( !wxControl::Enable( enable ) ) + if (!base_type::Enable(enable)) return false; gtk_widget_set_sensitive(GTK_BIN(m_widget)->child, enable); - if (!isEnabled && enable) - { + if (enable) GTKFixSensitivity(); - } return true; } diff --git a/src/gtk/spinbutt.cpp b/src/gtk/spinbutt.cpp index 4ed8250624..9155e23d3f 100644 --- a/src/gtk/spinbutt.cpp +++ b/src/gtk/spinbutt.cpp @@ -177,13 +177,11 @@ void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) ) bool wxSpinButton::Enable( bool enable ) { - bool isEnabled = IsEnabled(); - - if ( !wxControl::Enable( enable ) ) + if (!base_type::Enable(enable)) return false; // Work around lack of visual update when enabling - if (!isEnabled && enable) + if (enable) GTKFixSensitivity(false /* fix even if not under mouse */); return true; diff --git a/src/gtk/tglbtn.cpp b/src/gtk/tglbtn.cpp index 503382712c..8e33e7f6d9 100644 --- a/src/gtk/tglbtn.cpp +++ b/src/gtk/tglbtn.cpp @@ -285,17 +285,13 @@ void wxToggleButton::SetLabel(const wxString& label) bool wxToggleButton::Enable(bool enable /*=true*/) { - bool isEnabled = IsEnabled(); - - if (!wxControl::Enable(enable)) + if (!base_type::Enable(enable)) return false; gtk_widget_set_sensitive(GTK_BIN(m_widget)->child, enable); - if (!isEnabled && enable) - { + if (enable) GTKFixSensitivity(); - } return true; } -- 2.45.2