Add wxDocument::Activate() method.

Make activating the first (and, in the vast majority of cases, the only) view
of the document easier.

Closes #15120.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-03-26 11:00:59 +00:00
parent 82bf23ce3c
commit beba4fa694
4 changed files with 17 additions and 8 deletions

View File

@@ -624,6 +624,7 @@ All (GUI):
- Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style (Allann Jones). - Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style (Allann Jones).
- Make wxGenericDataViewCtrl::SetFont() really work (Laurent Poujoulat). - Make wxGenericDataViewCtrl::SetFont() really work (Laurent Poujoulat).
- Remove wxLogWindow::OnFrameCreate(), it was never called anyhow. - Remove wxLogWindow::OnFrameCreate(), it was never called anyhow.
- Added wxDocument::Activate() (troelsk).
wxGTK: wxGTK:

View File

@@ -86,6 +86,9 @@ public:
bool GetDocumentSaved() const { return m_savedYet; } bool GetDocumentSaved() const { return m_savedYet; }
void SetDocumentSaved(bool saved = true) { m_savedYet = saved; } void SetDocumentSaved(bool saved = true) { m_savedYet = saved; }
// activate the first view of the document if any
void Activate();
// return true if the document hasn't been modified since the last time it // return true if the document hasn't been modified since the last time it
// was saved (implying that it returns false if it was never saved, even if // was saved (implying that it returns false if it was never saved, even if
// the document is not modified) // the document is not modified)
@@ -550,10 +553,6 @@ protected:
// view and returns it then // view and returns it then
wxView *GetActiveView() const; wxView *GetActiveView() const;
// activate the first view of the given document if any
void ActivateDocument(wxDocument *doc);
int m_defaultDocumentNameCounter; int m_defaultDocumentNameCounter;
int m_maxDocsOpen; int m_maxDocsOpen;
wxList m_docs; wxList m_docs;

View File

@@ -1240,6 +1240,15 @@ public:
*/ */
bool AlreadySaved() const; bool AlreadySaved() const;
/**
Activate the first view of the document if any.
@see GetFirstView()
@since 2.9.5
*/
void Activate() const;
/** /**
Closes the document, by calling OnSaveModified() and then (if this Closes the document, by calling OnSaveModified() and then (if this
returned @true) OnCloseDocument(). This does not normally delete the returned @true) OnCloseDocument(). This does not normally delete the

View File

@@ -1407,9 +1407,9 @@ wxDocTemplateVector GetVisibleTemplates(const wxList& allTemplates)
} // anonymous namespace } // anonymous namespace
void wxDocManager::ActivateDocument(wxDocument *doc) void wxDocument::Activate()
{ {
wxView * const view = doc->GetFirstView(); wxView * const view = GetFirstView();
if ( !view ) if ( !view )
return; return;
@@ -1472,7 +1472,7 @@ wxDocument *wxDocManager::CreateDocument(const wxString& pathOrig, long flags)
if ( fn == doc->GetFilename() ) if ( fn == doc->GetFilename() )
{ {
// file already open, just activate it and return // file already open, just activate it and return
ActivateDocument(doc); doc->Activate();
return doc; return doc;
} }
} }
@@ -1523,7 +1523,7 @@ wxDocument *wxDocManager::CreateDocument(const wxString& pathOrig, long flags)
// at least under Mac (where views are top level windows) it seems to be // at least under Mac (where views are top level windows) it seems to be
// necessary to manually activate the new document to bring it to the // necessary to manually activate the new document to bring it to the
// forefront -- and it shouldn't hurt doing this under the other platforms // forefront -- and it shouldn't hurt doing this under the other platforms
ActivateDocument(docNew); docNew->Activate();
return docNew; return docNew;
} }