simplify Enable()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2009-12-05 19:25:04 +00:00
parent 61aba4609a
commit b545684e13
11 changed files with 28 additions and 40 deletions

View File

@@ -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)
};

View File

@@ -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)
};

View File

@@ -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)
};

View File

@@ -60,6 +60,8 @@ protected:
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
private:
typedef wxSpinButtonBase base_type;
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxSpinButton)
};

View File

@@ -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)
};

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}