}
PreviewFrame::PreviewFrame()
- : wxFrame(NULL, -1, _("Preview"))
+ : wxFrame(EditorFrame::Get(), -1, _("Preview"),
+ wxDefaultPosition, wxDefaultSize,
+ wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR | wxFRAME_TOOL_WINDOW)
{
+ m_Dirty = FALSE;
ms_Instance = this;
m_Node = NULL;
m_Splitter->SplitHorizontally(m_ScrollWin, m_LogCtrl, cfg->Read(_T("previewframe_sash"), 300));
CreateStatusBar();
+
+ SetSize(GetSize()); // refresh: MSW needs it
}
+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);
}
}
+
+
+
+BEGIN_EVENT_TABLE(PreviewFrame, wxFrame)
+ EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
+END_EVENT_TABLE()
+
+void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
+{
+ if (m_Dirty) Preview(m_Node);
+}