#endif
#include "wx/wx.h"
-#include "wx/xrc/xml.h"
+#include "wx/xml/xml.h"
#include "wx/xrc/xmlres.h"
#include "wx/config.h"
#include "wx/log.h"
wxObject *DoCreateResource()
{
- //wxMenuBar *menubar = new wxMenuBar(GetStyle());
+ //wxMenuBar *menubar = new wxMenuBar(GetStyle());
CreateChildren(m_MenuBar);
return m_MenuBar;
}
-
+
private:
wxMenuBar *m_MenuBar;
};
PreviewFrame *PreviewFrame::Get()
{
- if (ms_Instance == NULL)
+ if (ms_Instance == NULL)
{
(void)new PreviewFrame;
- ms_Instance->Show(TRUE);
+ ms_Instance->Show(true);
}
return ms_Instance;
}
PreviewFrame::PreviewFrame()
- : wxFrame(EditorFrame::Get(), -1, _("Preview"),
- wxDefaultPosition, wxDefaultSize,
+ : wxFrame(EditorFrame::Get(), wxID_ANY, _("Preview"),
+ wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR
#ifdef __WXMSW__
| wxFRAME_TOOL_WINDOW
#endif
)
{
- m_Dirty = FALSE;
+ m_Dirty = false;
ms_Instance = this;
m_Node = NULL;
-
+
SetMenuBar(new wxMenuBar());
-
+
m_RC = NULL;
m_TmpFile = wxGetTempFileName(_T("wxrcedit"));
ResetResource();
wxConfigBase *cfg = wxConfigBase::Get();
- SetSize(wxRect(wxPoint(cfg->Read(_T("previewframe_x"), -1), cfg->Read(_T("previewframe_y"), -1)),
+ SetSize(wxRect(wxPoint(cfg->Read(_T("previewframe_x"), wxDefaultCoord), cfg->Read(_T("previewframe_y"), wxDefaultCoord)),
wxSize(cfg->Read(_T("previewframe_w"), 400), cfg->Read(_T("previewframe_h"), 400))));
- m_Splitter = new wxSplitterWindow(this, -1);
- m_LogCtrl = new wxTextCtrl(m_Splitter, -1, wxEmptyString, wxDefaultPosition,
+ m_Splitter = new wxSplitterWindow(this, wxID_ANY);
+#if wxUSE_LOG
+ m_LogCtrl = new wxTextCtrl(m_Splitter, wxID_ANY, wxEmptyString, wxDefaultPosition,
wxDefaultSize, wxTE_MULTILINE);
- m_ScrollWin = new wxScrolledWindow(m_Splitter, -1);
+#endif // wxUSE_LOG
+ m_ScrollWin = new wxScrolledWindow(m_Splitter, wxID_ANY);
m_ScrollWin->SetBackgroundColour(_T("light steel blue"));
+#if wxUSE_LOG
m_Splitter->SplitHorizontally(m_ScrollWin, m_LogCtrl, cfg->Read(_T("previewframe_sash"), 300));
+#endif // wxUSE_LOG
+#if wxUSE_STATUSBAR
CreateStatusBar();
+#endif // wxUSE_STATUSBAR
#ifdef __WXMSW__
SendSizeEvent(); // force resize for WXMSW
PreviewFrame::~PreviewFrame()
{
- wxConfigBase *cfg = wxConfigBase::Get();
+ wxConfigBase *cfg = wxConfigBase::Get();
cfg->Write(_T("previewframe_x"), (long)GetPosition().x);
cfg->Write(_T("previewframe_y"), (long)GetPosition().y);
cfg->Write(_T("previewframe_w"), (long)GetSize().x);
cfg->Write(_T("previewframe_h"), (long)GetSize().y);
cfg->Write(_T("previewframe_sash"), (long)m_Splitter->GetSashPosition());
-
+
ms_Instance = NULL;
-
+
delete m_RC;
wxRemoveFile(m_TmpFile);
}
-
+
void PreviewFrame::MakeDirty()
{
if (m_Node == NULL) return;
if (m_Dirty) return;
- m_Dirty = TRUE;
+ m_Dirty = true;
+#if wxUSE_LOG
m_LogCtrl->Clear();
- m_LogCtrl->SetValue(_("Resource modified.\n"
- "Move mouse cursor over the preview window to refresh it."));
+ m_LogCtrl->SetValue(_("Resource modified.\nMove mouse cursor over the preview window to refresh it."));
+#endif // wxUSE_LOG
}
doc.GetRoot()->AddChild(new wxXmlNode(*node));
doc.SetFileEncoding(orig_doc->GetFileEncoding());
- if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog"))
- XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
+ if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog"))
+ XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
- if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxFrame"))
- XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
+ if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxFrame"))
+ XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
doc.Save(m_TmpFile);
// wxXmlResource will detect change automatically
m_Node = node;
m_Doc = orig_doc;
+#if wxUSE_LOG
m_LogCtrl->Clear();
wxLogTextCtrl mylog(m_LogCtrl);
wxLog *oldlog = wxLog::SetActiveTarget(&mylog);
-
+#endif // wxUSE_LOG
+
wxString oldcwd = wxGetCwd();
wxSetWorkingDirectory(wxPathOnly(EditorFrame::Get()->GetFileName()));
-
+
if (XmlGetClass(node) == _T("wxMenuBar") || XmlGetClass(node) == _T("wxMenu"))
PreviewMenu();
else if (XmlGetClass(node) == _T("wxToolBar"))
else if (XmlGetClass(node) == _T("wxPanel") || XmlGetClass(node) == _T("wxDialog"))
PreviewPanel();
else if (XmlGetClass(node) == _T("wxFrame"))
- PreviewWXFrame();
+ PreviewWXFrame();
wxSetWorkingDirectory(oldcwd);
+#if wxUSE_LOG
wxLog::SetActiveTarget(oldlog);
-
- m_Dirty = FALSE;
+#endif // wxUSE_LOG
+
+ m_Dirty = false;
}
void PreviewFrame::PreviewMenu()
{
- wxMenuBar *mbar;
+ wxMenuBar *mbar = NULL;
if (XmlGetClass(m_Node) == _T("wxMenuBar"))
mbar = m_RC->LoadMenuBar(m_Node->GetPropVal(_T("name"), _T("-1")));
else
{
m_ScrollWin->SetScrollbars(1, 1, panel->GetSize().x, panel->GetSize().y,
- 0, 0, TRUE);
+ 0, 0, true);
}
}
void PreviewFrame::PreviewWXFrame()
{
- //for this to work the frame MUST have a child panel!
-
- wxXmlNode* child = m_Node;
- wxString name;
-
- while( child != NULL)
- {
- name = child->GetPropVal(_T("name"), _T("-1"));
-
- if(name != _T("-1"))
- {
- wxXmlNode* parent = child->GetParent();
- if(parent->GetPropVal(_T("class"),_T("-1")) == _T("wxPanel"))
- break;
- }
- child = child->GetNext();
- }
+ //for this to work the frame MUST have a child panel!
+
+ wxXmlNode* child = m_Node;
+ wxString name;
+
+ while( child != NULL)
+ {
+ name = child->GetPropVal(_T("name"), _T("-1"));
+
+ if(name != _T("-1"))
+ {
+ wxXmlNode* parent = child->GetParent();
+ if(parent->GetPropVal(_T("class"),_T("-1")) == _T("wxPanel"))
+ break;
+ }
+ child = child->GetNext();
+ }
wxPanel *panel = m_RC->LoadPanel(m_ScrollWin, name);
-
+
if (panel == NULL)
wxLogError(_("Cannot preview the panel -- XML resource corrupted."));
else
{
m_ScrollWin->SetScrollbars(1, 1, panel->GetSize().x, panel->GetSize().y,
- 0, 0, TRUE);
+ 0, 0, true);
}
}
EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
END_EVENT_TABLE()
-void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
+void PreviewFrame::OnMouseEnter(wxMouseEvent& WXUNUSED(event))
{
if (m_Dirty) Preview(m_Node,m_Doc);
}