replaced m_isRadioButton with a virtual function

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-05-31 14:17:23 +00:00
parent d760f23e76
commit 2b4f3c9f76
8 changed files with 82 additions and 54 deletions

View File

@@ -22,36 +22,44 @@
class wxRadioButton: public wxControl
{
public:
inline wxRadioButton() {}
inline wxRadioButton( 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 = wxRadioButtonNameStr )
wxRadioButton() { }
wxRadioButton( 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 = wxRadioButtonNameStr )
{
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 = wxRadioButtonNameStr );
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 = wxRadioButtonNameStr );
virtual void SetLabel(const wxString& label);
virtual void SetValue(bool val);
virtual bool GetValue() const;
bool Enable( bool enable );
// implementation
virtual bool Enable( bool enable );
// implementation
virtual bool IsRadioButton() const { return TRUE; }
GSList *m_radioButtonGroup;
void ApplyWidgetStyle();
bool IsOwnGtkWindow( GdkWindow *window );
void OnInternalIdle();
bool m_blockEvent;
protected:
virtual wxSize DoGetBestSize() const;

View File

@@ -180,6 +180,9 @@ public:
// is this window transparent for the mouse events (as wxStaticBox is)?
virtual bool IsTransparentForMouse() const { return FALSE; }
// is this a radiobutton (used by radiobutton code itself only)?
virtual bool IsRadioButton() const { return FALSE; }
// position and size of the window
int m_x, m_y;
int m_width, m_height;
@@ -214,7 +217,6 @@ public:
bool m_hasVMT:1;
bool m_sizeSet:1;
bool m_resizing:1;
bool m_isRadioButton:1; // faster than IS_KIND_OF
bool m_isFrame:1; // faster than IS_KIND_OF
bool m_acceptsFocus:1; // true if not static
bool m_hasFocus:1; // true if == FindFocus()

View File

@@ -22,36 +22,44 @@
class wxRadioButton: public wxControl
{
public:
inline wxRadioButton() {}
inline wxRadioButton( 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 = wxRadioButtonNameStr )
wxRadioButton() { }
wxRadioButton( 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 = wxRadioButtonNameStr )
{
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 = wxRadioButtonNameStr );
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 = wxRadioButtonNameStr );
virtual void SetLabel(const wxString& label);
virtual void SetValue(bool val);
virtual bool GetValue() const;
bool Enable( bool enable );
// implementation
virtual bool Enable( bool enable );
// implementation
virtual bool IsRadioButton() const { return TRUE; }
GSList *m_radioButtonGroup;
void ApplyWidgetStyle();
bool IsOwnGtkWindow( GdkWindow *window );
void OnInternalIdle();
bool m_blockEvent;
protected:
virtual wxSize DoGetBestSize() const;

View File

@@ -180,6 +180,9 @@ public:
// is this window transparent for the mouse events (as wxStaticBox is)?
virtual bool IsTransparentForMouse() const { return FALSE; }
// is this a radiobutton (used by radiobutton code itself only)?
virtual bool IsRadioButton() const { return FALSE; }
// position and size of the window
int m_x, m_y;
int m_width, m_height;
@@ -214,7 +217,6 @@ public:
bool m_hasVMT:1;
bool m_sizeSet:1;
bool m_resizing:1;
bool m_isRadioButton:1; // faster than IS_KIND_OF
bool m_isFrame:1; // faster than IS_KIND_OF
bool m_acceptsFocus:1; // true if not static
bool m_hasFocus:1; // true if == FindFocus()

View File

@@ -64,13 +64,17 @@ void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *r
IMPLEMENT_DYNAMIC_CLASS(wxRadioButton,wxControl)
bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& label,
const wxPoint& pos, const wxSize& size, long style,
const wxValidator& validator, const wxString& name )
bool wxRadioButton::Create( wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name )
{
m_acceptsFocus = TRUE;
m_needParent = TRUE;
m_isRadioButton = TRUE;
m_blockEvent = FALSE;
@@ -94,10 +98,11 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab
while (node)
{
wxWindow *child = node->GetData();
if (child->m_isRadioButton)
if (child->IsRadioButton())
{
chief = (wxRadioButton*) child;
if (child->HasFlag(wxRB_GROUP)) break;
if (child->HasFlag(wxRB_GROUP))
break;
}
node = node->GetPrevious();
}

View File

@@ -2263,7 +2263,6 @@ void wxWindowGTK::Init()
m_insertCallback = (wxInsertChildFunction) NULL;
m_isRadioButton = FALSE;
m_isFrame = FALSE;
m_acceptsFocus = FALSE;
m_hasFocus = FALSE;

View File

@@ -64,13 +64,17 @@ void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *r
IMPLEMENT_DYNAMIC_CLASS(wxRadioButton,wxControl)
bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& label,
const wxPoint& pos, const wxSize& size, long style,
const wxValidator& validator, const wxString& name )
bool wxRadioButton::Create( wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name )
{
m_acceptsFocus = TRUE;
m_needParent = TRUE;
m_isRadioButton = TRUE;
m_blockEvent = FALSE;
@@ -94,10 +98,11 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab
while (node)
{
wxWindow *child = node->GetData();
if (child->m_isRadioButton)
if (child->IsRadioButton())
{
chief = (wxRadioButton*) child;
if (child->HasFlag(wxRB_GROUP)) break;
if (child->HasFlag(wxRB_GROUP))
break;
}
node = node->GetPrevious();
}

View File

@@ -2263,7 +2263,6 @@ void wxWindowGTK::Init()
m_insertCallback = (wxInsertChildFunction) NULL;
m_isRadioButton = FALSE;
m_isFrame = FALSE;
m_acceptsFocus = FALSE;
m_hasFocus = FALSE;