Added a constructor that allows creation of independent wxControl

(for more easily creating custom controls)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5085 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 1999-12-23 19:23:13 +00:00
parent 17bec151f9
commit 8d772832a0
9 changed files with 99 additions and 5 deletions

View File

@ -29,6 +29,8 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
extern const wxChar* wxControlNameStr;
class wxControl : public wxControlBase
{
public:
@ -38,7 +40,17 @@ public:
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = 0,
const wxString &name = wxPanelNameStr );
const wxString &name = wxControlNameStr );
#if wxUSE_VALIDATORS
wxControl( wxWindow *parent,
wxWindowID id,
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString &name = wxControlNameStr );
#endif
// this function will filter out '&' characters and will put the accelerator
// char (the one immediately after '&') into m_chAccel (TODO not yet)
@ -50,7 +62,7 @@ protected:
wxString m_label;
char m_chAccel; // enabled to avoid breaking binary compatibility later on
private:
DECLARE_DYNAMIC_CLASS(wxControl)
};

View File

@ -29,6 +29,8 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
extern const wxChar* wxControlNameStr;
class wxControl : public wxControlBase
{
public:
@ -38,7 +40,17 @@ public:
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = 0,
const wxString &name = wxPanelNameStr );
const wxString &name = wxControlNameStr );
#if wxUSE_VALIDATORS
wxControl( wxWindow *parent,
wxWindowID id,
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString &name = wxControlNameStr );
#endif
// this function will filter out '&' characters and will put the accelerator
// char (the one immediately after '&') into m_chAccel (TODO not yet)
@ -50,7 +62,7 @@ protected:
wxString m_label;
char m_chAccel; // enabled to avoid breaking binary compatibility later on
private:
DECLARE_DYNAMIC_CLASS(wxControl)
};

View File

@ -18,6 +18,8 @@
#include "wx/dynarray.h"
WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr;
// General item class
class WXDLLEXPORT wxControl : public wxControlBase
{
@ -25,7 +27,26 @@ class WXDLLEXPORT wxControl : public wxControlBase
public:
wxControl();
virtual ~wxControl();
wxControl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
#if wxUSE_VALIDATORS
const wxValidator& validator = wxDefaultValidator,
#endif
const wxString& name = wxControlNameStr)
{
Create(parent, id, pos, size, style, validator, name);
}
bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
#if wxUSE_VALIDATORS
const wxValidator& validator = wxDefaultValidator,
#endif
const wxString& name = wxControlNameStr);
virtual ~wxControl();
// Simulates an event
virtual void Command(wxCommandEvent& event) { ProcessCommand(event); }

View File

@ -36,6 +36,20 @@ wxControl::wxControl( wxWindow *parent,
(void)Create(parent, id, pos, size, style, name);
}
#if wxUSE_VALIDATORS
wxControl::wxControl( wxWindow *parent,
wxWindowID id,
const wxPoint &pos,
const wxSize &size,
long style,
const wxValidator& validator,
const wxString &name)
{
(void)Create(parent, id, pos, size, style, name);
SetValidator(validator);
}
#endif
void wxControl::SetLabel( const wxString &label )
{
m_label.Empty();

View File

@ -130,6 +130,7 @@ wxColour wxNullColour;
wxPalette wxNullPalette;
/* Default window names */
const wxChar *wxControlNameStr = wxT("control");
const wxChar *wxButtonNameStr = wxT("button");
const wxChar *wxCanvasNameStr = wxT("canvas");
const wxChar *wxCheckBoxNameStr = wxT("check");

View File

@ -36,6 +36,20 @@ wxControl::wxControl( wxWindow *parent,
(void)Create(parent, id, pos, size, style, name);
}
#if wxUSE_VALIDATORS
wxControl::wxControl( wxWindow *parent,
wxWindowID id,
const wxPoint &pos,
const wxSize &size,
long style,
const wxValidator& validator,
const wxString &name)
{
(void)Create(parent, id, pos, size, style, name);
SetValidator(validator);
}
#endif
void wxControl::SetLabel( const wxString &label )
{
m_label.Empty();

View File

@ -130,6 +130,7 @@ wxColour wxNullColour;
wxPalette wxNullPalette;
/* Default window names */
const wxChar *wxControlNameStr = wxT("control");
const wxChar *wxButtonNameStr = wxT("button");
const wxChar *wxCanvasNameStr = wxT("canvas");
const wxChar *wxCheckBoxNameStr = wxT("check");

View File

@ -56,6 +56,24 @@ wxControl::~wxControl()
m_isBeingDeleted = TRUE;
}
bool wxControl::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size, long style,
#if wxUSE_VALIDATORS
const wxValidator& validator,
#endif
const wxString& name)
{
bool rval = wxWindow::Create(parent, id, pos, size, style, name);
if (rval) {
#if wxUSE_VALIDATORS
SetValidator(validator);
#endif
}
return rval;
}
bool wxControl::MSWCreateControl(const wxChar *classname,
WXDWORD style,
const wxPoint& pos,

View File

@ -112,6 +112,7 @@ wxFont wxNullFont;
wxColour wxNullColour;
// Default window names
const wxChar *wxControlNameStr = wxT("control");
const wxChar *wxButtonNameStr = wxT("button");
const wxChar *wxCanvasNameStr = wxT("canvas");
const wxChar *wxCheckBoxNameStr = wxT("check");