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).
- Make wxGenericDataViewCtrl::SetFont() really work (Laurent Poujoulat).
- Remove wxLogWindow::OnFrameCreate(), it was never called anyhow.
- Added wxDocument::Activate() (troelsk).
wxGTK:

View File

@@ -86,6 +86,9 @@ public:
bool GetDocumentSaved() const { return m_savedYet; }
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
// was saved (implying that it returns false if it was never saved, even if
// the document is not modified)
@@ -550,10 +553,6 @@ protected:
// view and returns it then
wxView *GetActiveView() const;
// activate the first view of the given document if any
void ActivateDocument(wxDocument *doc);
int m_defaultDocumentNameCounter;
int m_maxDocsOpen;
wxList m_docs;

View File

@@ -1240,6 +1240,15 @@ public:
*/
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
returned @true) OnCloseDocument(). This does not normally delete the

View File

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