#if wxUSE_MDI
-class WXDLLIMPEXP_CORE wxFrame;
+class WXDLLIMPEXP_CORE wxWindow;
class WXDLLIMPEXP_XRC wxMdiXmlHandler : public wxXmlResourceHandler
{
virtual bool CanHandle(wxXmlNode *node);
private:
- wxFrame *CreateFrame();
+ wxWindow *CreateFrame();
DECLARE_DYNAMIC_CLASS(wxMdiXmlHandler)
};
AddWindowStyles();
}
-wxFrame *wxMdiXmlHandler::CreateFrame()
+wxWindow *wxMdiXmlHandler::CreateFrame()
{
if (m_class == wxT("wxMDIParentFrame"))
{
XRC_MAKE_INSTANCE(frame, wxMDIParentFrame);
- frame->Create(m_parentAsWindow,
+ ((wxMDIParentFrame*)frame)->Create(m_parentAsWindow,
GetID(),
GetText(wxT("title")),
wxDefaultPosition, wxDefaultSize,
XRC_MAKE_INSTANCE(frame, wxMDIChildFrame);
- frame->Create(mdiParent,
+ ((wxMDIChildFrame*) frame)->Create(mdiParent,
GetID(),
GetText(wxT("title")),
wxDefaultPosition, wxDefaultSize,
wxObject *wxMdiXmlHandler::DoCreateResource()
{
- wxFrame *frame = CreateFrame();
+ wxWindow *frame = CreateFrame();
if (HasParam(wxT("size")))
frame->SetClientSize(GetSize());
if (HasParam(wxT("pos")))
frame->Move(GetPosition());
- if (HasParam(wxT("icon")))
- frame->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON));
+ if (HasParam(wxT("icon")) && frame->IsKindOf(CLASSINFO(wxFrame)))
+ {
+ wxFrame* f = wxDynamicCast(f, wxFrame);
+ f->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON));
+ }
SetupWindow(frame);