// Create()
wxWindowBase() ;
- // pseudo ctor (can't be virtual, called from ctor)
- bool CreateBase(wxWindowBase *parent,
- wxWindowID winid,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxPanelNameStr);
-
virtual ~wxWindowBase();
// deleting the window
virtual bool CanApplyThemeBorder() const { return true; }
protected:
+ // helper for the derived class Create() methods: the first overload, with
+ // validator parameter, should be used for child windows while the second
+ // one is used for top level ones
+ bool CreateBase(wxWindowBase *parent,
+ wxWindowID winid,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPanelNameStr);
+
+ bool CreateBase(wxWindowBase *parent,
+ wxWindowID winid,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name);
+
// event handling specific to wxWindow
virtual bool TryBefore(wxEvent& event);
virtual bool TryAfter(wxEvent& event);
const wxPoint& WXUNUSED(pos),
const wxSize& WXUNUSED(size),
long style,
- const wxValidator& wxVALIDATOR_PARAM(validator),
const wxString& name)
{
// ids are limited to 16 bits under MSW so if you care about portability,
SetName(name);
SetParent(parent);
+ return true;
+}
+
+bool wxWindowBase::CreateBase(wxWindowBase *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& wxVALIDATOR_PARAM(validator),
+ const wxString& name)
+{
+ if ( !CreateBase(parent, id, pos, size, style, name) )
+ return false;
+
#if wxUSE_VALIDATORS
SetValidator(validator);
#endif // wxUSE_VALIDATORS
long style,
const wxString& name)
{
- bool ret wxDUMMY_INITIALIZE(false);
-
wxSize sizeReal = size;
if ( !sizeReal.IsFullySpecified() )
{
sizeReal.SetDefaults(GetDefaultSize());
}
- m_windowStyle = style;
-
- SetName(name);
-
- m_windowId = id == wxID_ANY ? NewControlId() : id;
+ bool ret = CreateBase(parent, id, pos, sizeReal, style, name);
+ if ( !ret )
+ return false;
wxTopLevelWindows.Append(this);