Added generic LoadObject methods that can load any classtype from a
resources and return it as a wxObject (Assuming there is a handler for it.) Enabled wxFrames and wxDialogs to be loaded using a new instance rather than only with existing instances. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -132,6 +132,12 @@ void wxXmlResource::AddHandler(wxXmlResourceHandler *handler)
|
||||
handler->SetParentResource(this);
|
||||
}
|
||||
|
||||
void wxXmlResource::InsertHandler(wxXmlResourceHandler *handler)
|
||||
{
|
||||
m_handlers.Insert(handler);
|
||||
handler->SetParentResource(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void wxXmlResource::ClearHandlers()
|
||||
@@ -188,6 +194,11 @@ bool wxXmlResource::LoadPanel(wxPanel *panel, wxWindow *parent, const wxString&
|
||||
return CreateResFromNode(FindResource(name, wxT("wxPanel")), parent, panel) != NULL;
|
||||
}
|
||||
|
||||
wxFrame *wxXmlResource::LoadFrame(wxWindow* parent, const wxString& name)
|
||||
{
|
||||
return (wxFrame*)CreateResFromNode(FindResource(name, wxT("wxFrame")), parent, NULL);
|
||||
}
|
||||
|
||||
bool wxXmlResource::LoadFrame(wxFrame* frame, wxWindow *parent, const wxString& name)
|
||||
{
|
||||
return CreateResFromNode(FindResource(name, wxT("wxFrame")), parent, frame) != NULL;
|
||||
@@ -213,6 +224,18 @@ wxIcon wxXmlResource::LoadIcon(const wxString& name)
|
||||
return rt;
|
||||
}
|
||||
|
||||
|
||||
wxObject *wxXmlResource::LoadObject(wxWindow *parent, const wxString& name, const wxString& classname)
|
||||
{
|
||||
return CreateResFromNode(FindResource(name, classname), parent, NULL);
|
||||
}
|
||||
|
||||
bool wxXmlResource::LoadObject(wxObject *instance, wxWindow *parent, const wxString& name, const wxString& classname)
|
||||
{
|
||||
return CreateResFromNode(FindResource(name, classname), parent, instance) != NULL;
|
||||
}
|
||||
|
||||
|
||||
bool wxXmlResource::AttachUnknownControl(const wxString& name,
|
||||
wxWindow *control, wxWindow *parent)
|
||||
{
|
||||
@@ -756,7 +779,7 @@ wxColour wxXmlResourceHandler::GetColour(const wxString& param)
|
||||
|
||||
|
||||
|
||||
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||
const wxArtClient& defaultArtClient,
|
||||
wxSize size)
|
||||
{
|
||||
@@ -768,7 +791,7 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||
if ( !sid.empty() )
|
||||
{
|
||||
wxString scl = bmpNode->GetPropVal(wxT("stock_client"), defaultArtClient);
|
||||
wxBitmap stockArt =
|
||||
wxBitmap stockArt =
|
||||
wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(sid),
|
||||
wxART_MAKE_CLIENT_ID_FROM_STR(scl),
|
||||
size);
|
||||
@@ -777,9 +800,9 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||
}
|
||||
}
|
||||
|
||||
/* ...or load the bitmap from file: */
|
||||
/* ...or load the bitmap from file: */
|
||||
wxString name = GetParamValue(param);
|
||||
if (name.IsEmpty()) return wxNullBitmap;
|
||||
if (name.IsEmpty()) return wxNullBitmap;
|
||||
#if wxUSE_FILESYSTEM
|
||||
wxFSFile *fsfile = GetCurFileSystem().OpenFile(name);
|
||||
if (fsfile == NULL)
|
||||
@@ -805,7 +828,7 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||
|
||||
|
||||
|
||||
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
|
||||
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
|
||||
const wxArtClient& defaultArtClient,
|
||||
wxSize size)
|
||||
{
|
||||
|
Reference in New Issue
Block a user