]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied: wxDocument: Adding an asterix to the title
authorJulian Smart <julian@anthemion.co.uk>
Thu, 24 Sep 2009 13:49:01 +0000 (13:49 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Thu, 24 Sep 2009 13:49:01 +0000 (13:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/docview.h
src/common/docview.cpp

index b8bb1f31c9a4a20498acd6018dd5bb93e7a15961..c9109ce65bb417d512583f4f93be06cdab7b0b37 100644 (file)
@@ -133,7 +133,7 @@ public:
 
     virtual bool Draw(wxDC&);
     virtual bool IsModified() const { return m_documentModified; }
 
     virtual bool Draw(wxDC&);
     virtual bool IsModified() const { return m_documentModified; }
-    virtual void Modify(bool mod) { m_documentModified = mod; }
+    virtual void Modify(bool mod);
 
     virtual bool AddView(wxView *view);
     virtual bool RemoveView(wxView *view);
 
     virtual bool AddView(wxView *view);
     virtual bool RemoveView(wxView *view);
index 6658e51f0e7d4e5e7c199b93648bafee5138577b..b2ae02bdfe7fb0f1595e38fa199ac4595fffefd9 100644 (file)
@@ -233,6 +233,18 @@ wxView *wxDocument::GetFirstView() const
     return static_cast<wxView *>(m_documentViews.GetFirst()->GetData());
 }
 
     return static_cast<wxView *>(m_documentViews.GetFirst()->GetData());
 }
 
+void wxDocument::Modify(bool mod)
+{
+    if (mod != m_documentModified)
+    {
+        m_documentModified = mod;
+
+        // Allow views to append asterix to the title
+        wxView* view = GetFirstView();
+        if (view) view->OnChangeFilename();
+    }
+}
+
 wxDocManager *wxDocument::GetDocumentManager() const
 {
     return m_documentTemplate ? m_documentTemplate->GetDocumentManager() : NULL;
 wxDocManager *wxDocument::GetDocumentManager() const
 {
     return m_documentTemplate ? m_documentTemplate->GetDocumentManager() : NULL;
@@ -713,7 +725,12 @@ void wxView::OnChangeFilename()
     wxDocument *doc = GetDocument();
     if (!doc) return;
 
     wxDocument *doc = GetDocument();
     if (!doc) return;
 
-    win->SetLabel(doc->GetUserReadableName());
+    wxString label = doc->GetUserReadableName();
+    if (doc->IsModified())
+    {
+       label += "*";
+    }
+    win->SetLabel(label);
 }
 
 void wxView::SetDocument(wxDocument *doc)
 }
 
 void wxView::SetDocument(wxDocument *doc)