96f3832d52
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.
69 lines
2.2 KiB
C++
69 lines
2.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/checkbox.h
|
|
// Purpose:
|
|
// Author: Robert Roebling
|
|
// Copyright: (c) 1998 Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTKCHECKBOX_H_
|
|
#define _WX_GTKCHECKBOX_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxCheckBox
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase
|
|
{
|
|
public:
|
|
wxCheckBox();
|
|
~wxCheckBox();
|
|
wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize, long style = 0,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxCheckBoxNameStr)
|
|
{
|
|
Create(parent, id, label, pos, size, style, validator, name);
|
|
}
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxCheckBoxNameStr );
|
|
|
|
void SetValue( bool state ) wxOVERRIDE;
|
|
bool GetValue() const wxOVERRIDE;
|
|
|
|
virtual void SetLabel( const wxString& label ) wxOVERRIDE;
|
|
|
|
static wxVisualAttributes
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
|
|
// implementation
|
|
void GTKDisableEvents();
|
|
void GTKEnableEvents();
|
|
|
|
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;
|
|
|
|
private:
|
|
typedef wxCheckBoxBase base_type;
|
|
|
|
GtkWidget *m_widgetCheckbox;
|
|
GtkWidget *m_widgetLabel;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxCheckBox);
|
|
};
|
|
|
|
#endif // _WX_GTKCHECKBOX_H_
|