Override DoEnable() instead of Enable() in wxGTK controls
This is slightly simpler, as it doesn't require checking whether the control state really changes or not (it always does if DoEnable() is called) and allows disabling the controls before creating them, e.g. code like wxButton* const b = new wxButton(); b->Disable(); b->Create(this, wxID_OK); works as expected now instead of spewing GTK+ errors.
This commit is contained in:
@@ -23,8 +23,6 @@ public:
|
||||
m_isPressed = false;
|
||||
}
|
||||
|
||||
virtual bool Enable( bool enable = true ) wxOVERRIDE;
|
||||
|
||||
// implementation
|
||||
// --------------
|
||||
|
||||
@@ -41,6 +39,8 @@ public:
|
||||
protected:
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmapPosition(wxDirection dir) wxOVERRIDE;
|
||||
|
@@ -39,7 +39,6 @@ public:
|
||||
bool GetValue() const wxOVERRIDE;
|
||||
|
||||
virtual void SetLabel( const wxString& label ) wxOVERRIDE;
|
||||
virtual bool Enable( bool enable = true ) wxOVERRIDE;
|
||||
|
||||
static wxVisualAttributes
|
||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||
@@ -52,6 +51,8 @@ protected:
|
||||
virtual void DoApplyWidgetStyle(GtkRcStyle *style) wxOVERRIDE;
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
void DoSet3StateValue(wxCheckBoxState state) wxOVERRIDE;
|
||||
wxCheckBoxState DoGet3StateValue() const wxOVERRIDE;
|
||||
|
||||
|
@@ -141,6 +141,8 @@ protected:
|
||||
virtual void DoApplyWidgetStyle(GtkRcStyle *style) wxOVERRIDE;
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
virtual bool GTKNeedsToFilterSameWindowFocus() const wxOVERRIDE { return true; }
|
||||
|
||||
virtual bool GTKWidgetNeedsMnemonic() const wxOVERRIDE;
|
||||
|
@@ -41,7 +41,6 @@ public:
|
||||
virtual void SetLabel(const wxString& label) wxOVERRIDE;
|
||||
virtual void SetValue(bool val);
|
||||
virtual bool GetValue() const;
|
||||
virtual bool Enable( bool enable = true ) wxOVERRIDE;
|
||||
|
||||
static wxVisualAttributes
|
||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||
@@ -52,6 +51,8 @@ protected:
|
||||
virtual void DoApplyWidgetStyle(GtkRcStyle *style) wxOVERRIDE;
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
private:
|
||||
typedef wxControl base_type;
|
||||
|
||||
|
@@ -44,8 +44,6 @@ public:
|
||||
static wxVisualAttributes
|
||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||
|
||||
virtual bool Enable( bool enable = true ) wxOVERRIDE;
|
||||
|
||||
// implementation
|
||||
int m_pos;
|
||||
|
||||
@@ -56,6 +54,8 @@ protected:
|
||||
virtual wxSize DoGetBestSize() const wxOVERRIDE;
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
private:
|
||||
typedef wxSpinButtonBase base_type;
|
||||
|
||||
|
@@ -95,7 +95,6 @@ public:
|
||||
|
||||
// Overridden wxWindow methods
|
||||
virtual void SetWindowStyleFlag( long style ) wxOVERRIDE;
|
||||
virtual bool Enable( bool enable = true ) wxOVERRIDE;
|
||||
|
||||
// Implementation from now on
|
||||
void OnDropFiles( wxDropFilesEvent &event );
|
||||
@@ -178,6 +177,8 @@ protected:
|
||||
private:
|
||||
void Init();
|
||||
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
// overridden wxTextEntry virtual methods
|
||||
virtual GtkEditable *GetEditable() const wxOVERRIDE;
|
||||
virtual GtkEntry *GetEntry() const wxOVERRIDE;
|
||||
|
Reference in New Issue
Block a user