Add wxDocManager::FindTemplate() method.
This allows to find the template corresponding to the document of the given class. Closes #12170. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
35f82b01cf
commit
a70d268a1b
@ -425,6 +425,7 @@ All (GUI):
|
||||
- Restore text drag-and-drop in wxSTC broken by Scintilla 2 update (Jens Lody).
|
||||
- Improve wxGTK print/page setup dialog (rafravago).
|
||||
- Added wxToolbook XRC handler (Andrea Zanellato).
|
||||
- Added wxDocManager::FindTemplate() (troelsk).
|
||||
|
||||
MSW:
|
||||
|
||||
|
@ -414,6 +414,9 @@ public:
|
||||
void AssociateTemplate(wxDocTemplate *temp);
|
||||
void DisassociateTemplate(wxDocTemplate *temp);
|
||||
|
||||
// Find template from document class info, may return NULL.
|
||||
wxDocTemplate* FindTemplate(const wxClassInfo* documentClassInfo);
|
||||
|
||||
wxDocument *GetCurrentDocument() const;
|
||||
|
||||
void SetMaxDocsOpen(int n) { m_maxDocsOpen = n; }
|
||||
|
@ -363,6 +363,27 @@ public:
|
||||
*/
|
||||
void AssociateTemplate(wxDocTemplate* temp);
|
||||
|
||||
/**
|
||||
Search for a particular document template.
|
||||
|
||||
Example:
|
||||
@code
|
||||
// creating a document instance of the specified document type:
|
||||
m_doc = (MyDoc*)docManager->FindTemplate(CLASSINFO(MyDoc))->
|
||||
CreateDocument(wxEmptyString, wxDOC_SILENT);
|
||||
@endcode
|
||||
|
||||
@param classinfo
|
||||
Class info of a document class for which a wxDocTemplate had been
|
||||
previously created.
|
||||
|
||||
@return
|
||||
Pointer to a wxDocTemplate, or @NULL if none found.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
wxDocTemplate* FindTemplate(const wxClassInfo* classinfo);
|
||||
|
||||
/**
|
||||
Closes the specified document.
|
||||
|
||||
|
@ -1894,6 +1894,20 @@ void wxDocManager::DisassociateTemplate(wxDocTemplate *temp)
|
||||
m_templates.DeleteObject(temp);
|
||||
}
|
||||
|
||||
wxDocTemplate* wxDocManager::FindTemplate(const wxClassInfo* classinfo)
|
||||
{
|
||||
for ( wxList::compatibility_iterator node = m_templates.GetFirst();
|
||||
node;
|
||||
node = node->GetNext() )
|
||||
{
|
||||
wxDocTemplate* t = wxStaticCast(node->GetData(), wxDocTemplate);
|
||||
if ( t->GetDocClassInfo() == classinfo )
|
||||
return t;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Add and remove a document from the manager's list
|
||||
void wxDocManager::AddDocument(wxDocument *doc)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user