Add wxWindow::CreateUsingMSWClass() helper function
This method allows to use the Windows class to use for the window being created instead of always using "wxWindow" or "wxWindowNR". This can be useful to make it possible to handle some windows specially from outside the application, e.g. use specific class names for accessibility purposes as will be done by the next commit.
This commit is contained in:
@@ -52,7 +52,23 @@ public:
|
|||||||
const wxPoint& pos = wxDefaultPosition,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxSize& size = wxDefaultSize,
|
||||||
long style = 0,
|
long style = 0,
|
||||||
const wxString& name = wxPanelNameStr);
|
const wxString& name = wxPanelNameStr)
|
||||||
|
{
|
||||||
|
return CreateUsingMSWClass(GetMSWClassName(),
|
||||||
|
parent, id, pos, size, style, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Non-portable, MSW-specific Create() variant allowing to create the
|
||||||
|
// window with a custom Windows class name. This can be useful to assign a
|
||||||
|
// custom Windows class, that can be recognized from the outside of the
|
||||||
|
// application, for windows of specific type.
|
||||||
|
bool CreateUsingMSWClass(const wxChar* classname,
|
||||||
|
wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxPanelNameStr);
|
||||||
|
|
||||||
// implement base class pure virtuals
|
// implement base class pure virtuals
|
||||||
virtual void SetLabel(const wxString& label) wxOVERRIDE;
|
virtual void SetLabel(const wxString& label) wxOVERRIDE;
|
||||||
|
@@ -481,12 +481,13 @@ const wxChar *wxWindowMSW::GetMSWClassName() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// real construction (Init() must have been called before!)
|
// real construction (Init() must have been called before!)
|
||||||
bool wxWindowMSW::Create(wxWindow *parent,
|
bool wxWindowMSW::CreateUsingMSWClass(const wxChar* classname,
|
||||||
wxWindowID id,
|
wxWindow *parent,
|
||||||
const wxPoint& pos,
|
wxWindowID id,
|
||||||
const wxSize& size,
|
const wxPoint& pos,
|
||||||
long style,
|
const wxSize& size,
|
||||||
const wxString& name)
|
long style,
|
||||||
|
const wxString& name)
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( parent, false, wxT("can't create wxWindow without parent") );
|
wxCHECK_MSG( parent, false, wxT("can't create wxWindow without parent") );
|
||||||
|
|
||||||
@@ -512,7 +513,7 @@ bool wxWindowMSW::Create(wxWindow *parent,
|
|||||||
msflags |= WS_VISIBLE;
|
msflags |= WS_VISIBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !MSWCreate(GetMSWClassName(), NULL, pos, size, msflags, exstyle) )
|
if ( !MSWCreate(classname, NULL, pos, size, msflags, exstyle) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
InheritAttributes();
|
InheritAttributes();
|
||||||
|
Reference in New Issue
Block a user