#endif
#include "wx/wx.h"
-#include "wx/xml/xml.h"
-#include "wx/xml/xmlres.h"
+#include "wx/xrc/xml.h"
+#include "wx/xrc/xmlres.h"
#include "wx/config.h"
#include "wx/log.h"
#include "wx/splitter.h"
#include "xmlhelpr.h"
#include "editor.h"
-#include "wx/xml/xh_menu.h"
+#include "wx/xrc/xh_menu.h"
class MyMenubarHandler : public wxMenuBarXmlHandler
{
SetMenuBar(new wxMenuBar());
- m_RC = new wxXmlResource;
- // these handlers take precedence over std. ones:
- m_RC->AddHandler(new MyMenubarHandler(GetMenuBar()));
- // std handlers:
- m_RC->InitAllHandlers();
+ m_RC = NULL;
m_TmpFile = wxGetTempFileName(_T("wxrcedit"));
- m_RC->Load(m_TmpFile);
+ ResetResource();
wxConfigBase *cfg = wxConfigBase::Get();
SetSize(wxRect(wxPoint(cfg->Read(_T("previewframe_x"), -1), cfg->Read(_T("previewframe_y"), -1)),
CreateStatusBar();
- SetSize(GetSize()); // refresh: MSW needs it
+#ifdef __WXMSW__
+ SendSizeEvent(); // force resize for WXMSW
+#endif
}
+void PreviewFrame::ResetResource()
+{
+ delete m_RC;
+ m_RC = new wxXmlResource;
+ // these handlers take precedence over std. ones:
+ m_RC->AddHandler(new MyMenubarHandler(GetMenuBar()));
+ // std handlers:
+ m_RC->InitAllHandlers();
+ wxRemoveFile(m_TmpFile);
+ m_RC->Load(m_TmpFile);
+}
+
PreviewFrame::~PreviewFrame()
{
wxConfigBase *cfg = wxConfigBase::Get();
-void PreviewFrame::Preview(wxXmlNode *node)
+void PreviewFrame::Preview(wxXmlNode *node,const wxString &version)
{
while (node->GetParent()->GetParent() != NULL) node = node->GetParent();
{
wxXmlDocument doc;
- doc.SetRoot(new wxXmlNode(wxXML_ELEMENT_NODE, _T("resource")));
+ wxXmlNode *root = new wxXmlNode(wxXML_ELEMENT_NODE, _T("resource"));
+ root->AddProperty(new wxXmlProperty(wxT("version"),version,NULL));
+ doc.SetRoot(root);
doc.GetRoot()->AddChild(new wxXmlNode(*node));
if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog"))
XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
- doc.Save(m_TmpFile, wxXML_IO_BIN);
+ doc.Save(m_TmpFile);
// wxXmlResource will detect change automatically
}
}
m_Node = node;
+ m_Version = version;
m_LogCtrl->Clear();
wxLogTextCtrl mylog(m_LogCtrl);
}
-
BEGIN_EVENT_TABLE(PreviewFrame, wxFrame)
EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
END_EVENT_TABLE()
void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
{
- if (m_Dirty) Preview(m_Node);
+ if (m_Dirty) Preview(m_Node,m_Version);
}