}
PreviewFrame::PreviewFrame()
- : wxFrame(NULL, -1, _("Preview"))
+ : wxFrame(EditorFrame::Get(), -1, _("Preview"),
+ wxDefaultPosition, wxDefaultSize,
+ wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR
+#ifdef __WXMSW__
+ | wxFRAME_TOOL_WINDOW
+#endif
+ )
{
+ m_Dirty = FALSE;
ms_Instance = this;
m_Node = NULL;
m_Splitter->SplitHorizontally(m_ScrollWin, m_LogCtrl, cfg->Read(_T("previewframe_sash"), 300));
CreateStatusBar();
+
+#ifdef __WXMSW__
+ SendSizeEvent(); // force resize for WXMSW
+#endif
}
+void PreviewFrame::MakeDirty()
+{
+ if (m_Node == NULL) return;
+ if (m_Dirty) return;
+ m_Dirty = TRUE;
+ m_LogCtrl->Clear();
+ m_LogCtrl->SetValue(_("Resource modified.\n"
+ "Move mouse cursor over the preview window to refresh it."));
+}
+
+
+
void PreviewFrame::Preview(wxXmlNode *node)
{
while (node->GetParent()->GetParent() != NULL) node = node->GetParent();
wxSetWorkingDirectory(oldcwd);
wxLog::SetActiveTarget(oldlog);
+
+ m_Dirty = FALSE;
}
0, 0, TRUE);
}
}
+
+
+#ifdef __WXMSW__
+// avoid Problems with setting the focus to a no longer existing child
+void PreviewFrame::OnActivate(wxActivateEvent &event)
+{
+}
+#endif
+
+BEGIN_EVENT_TABLE(PreviewFrame, wxFrame)
+ EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
+#ifdef __WXMSW__
+ EVT_ACTIVATE(PreviewFrame::OnActivate)
+#endif
+END_EVENT_TABLE()
+
+void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
+{
+ if (m_Dirty) Preview(m_Node);
+}