1 \section{\class{wxDocument
}}\label{wxdocument
}
3 The
document class can be used to model an application's file-based
4 data. It is part of the
document/view framework supported by wxWidgets,
5 and cooperates with the
\helpref{wxView
}{wxview
},
\helpref{wxDocTemplate
}{wxdoctemplate
}\rtfsp
6 and
\helpref{wxDocManager
}{wxdocmanager
} classes.
8 \wxheading{Derived from
}
10 \helpref{wxEvtHandler
}{wxevthandler
}\\
11 \helpref{wxObject
}{wxobject
}
13 \wxheading{Include files
}
19 \helpref{wxDocument overview
}{wxdocumentoverview
},
\helpref{wxView
}{wxview
},
\rtfsp
20 \helpref{wxDocTemplate
}{wxdoctemplate
},
\helpref{wxDocManager
}{wxdocmanager
}
22 \latexignore{\rtfignore{\wxheading{Members
}}}
24 \membersection{wxDocument::m
\_commandProcessor}\label{wxdocumentmcommandprocessor
}
26 \member{wxCommandProcessor*
}{m
\_commandProcessor}
28 A pointer to the command processor associated with this
document.
30 \membersection{wxDocument::m
\_documentFile}\label{wxdocumentmdocumentfile
}
32 \member{wxString
}{m
\_documentFile}
34 Filename associated with this
document (``" if none).
36 \membersection{wxDocument::m
\_documentModified}\label{wxdocumentmdocumentmodified
}
38 \member{bool
}{m
\_documentModified}
40 true if the
document has been modified, false otherwise.
42 \membersection{wxDocument::m
\_documentTemplate}\label{wxdocumentmdocumenttemplate
}
44 \member{wxDocTemplate *
}{m
\_documentTemplate}
46 A pointer to the template from which this
document was created.
48 \membersection{wxDocument::m
\_documentTitle}\label{wxdocumentmdocumenttitle
}
50 \member{wxString
}{m
\_documentTitle}
52 Document title. The
document title is used for an associated
53 frame (if any), and is usually constructed by the framework from
56 \membersection{wxDocument::m
\_documentTypeName}\label{documenttypename
}
58 \member{wxString
}{m
\_documentTypeName}
60 The
document type name given to the wxDocTemplate constructor, copied to this
61 variable when the
document is created. If several
document templates are
62 created that use the same
document type, this variable is used in wxDocManager::CreateView
63 to collate a list of alternative view types that can be used on this kind of
64 document. Do not change the value of this variable.
66 \membersection{wxDocument::m
\_documentViews}\label{wxdocumentmdocumentviews
}
68 \member{wxList
}{m
\_documentViews}
70 List of wxView instances associated with this
document.
72 \membersection{wxDocument::wxDocument
}\label{wxdocumentctor
}
74 \func{}{wxDocument
}{\void}
76 Constructor. Define your own default constructor to initialize application-specific
79 \membersection{wxDocument::
\destruct{wxDocument
}}\label{wxdocumentdtor
}
81 \func{}{\destruct{wxDocument
}}{\void}
83 Destructor. Removes itself from the
document manager.
85 \membersection{wxDocument::AddView
}\label{wxdocumentaddview
}
87 \func{virtual bool
}{AddView
}{\param{wxView *
}{view
}}
89 If the view is not already in the list of views, adds the view and calls OnChangedViewList.
91 \membersection{wxDocument::Close
}\label{wxdocumentclose
}
93 \func{virtual bool
}{Close
}{\void}
95 Closes the
document, by calling OnSaveModified and then (if this returned true) OnCloseDocument.
96 This does not normally delete the
document object: use DeleteAllViews to do this implicitly.
98 \membersection{wxDocument::DeleteAllViews
}\label{wxdocumentdeleteviews
}
100 \func{virtual bool
}{DeleteAllViews
}{\void}
102 Calls wxView::Close and deletes each view. Deleting the final view will implicitly
103 delete the
document itself, because the wxView destructor calls RemoveView. This
104 in turns calls wxDocument::OnChangedViewList, whose default implemention is to
105 save and delete the
document if no views exist.
107 \membersection{wxDocument::GetCommandProcessor
}\label{wxdocumentgetcommandprocessor
}
109 \constfunc{wxCommandProcessor*
}{GetCommandProcessor
}{\void}
111 Returns a pointer to the command processor associated with this
document.
113 See
\helpref{wxCommandProcessor
}{wxcommandprocessor
}.
115 \membersection{wxDocument::GetDocumentTemplate
}\label{wxdocumentgetdocumenttemplate
}
117 \constfunc{wxDocTemplate*
}{GetDocumentTemplate
}{\void}
119 Gets a pointer to the template that created the
document.
121 \membersection{wxDocument::GetDocumentManager
}\label{wxdocumentgetdocumentmanager
}
123 \constfunc{wxDocManager*
}{GetDocumentManager
}{\void}
125 Gets a pointer to the associated
document manager.
127 \membersection{wxDocument::GetDocumentName
}\label{wxdocumentgetdocumentname
}
129 \constfunc{wxString
}{GetDocumentName
}{\void}
131 Gets the
document type name for this
document. See the comment for
\helpref{documentTypeName
}{documenttypename
}.
133 \membersection{wxDocument::GetDocumentWindow
}\label{wxdocumentgetdocumentwindow
}
135 \constfunc{wxWindow*
}{GetDocumentWindow
}{\void}
137 Intended to return a suitable window for using as a parent for
document-related
138 dialog boxes. By default, uses the frame associated with the first view.
140 \membersection{wxDocument::GetFilename
}\label{wxdocumentgetfilename
}
142 \constfunc{wxString
}{GetFilename
}{\void}
144 Gets the filename associated with this
document, or "" if none is
147 \membersection{wxDocument::GetFirstView
}\label{wxdocumentgetfirstview
}
149 \constfunc{wxView *
}{GetFirstView
}{\void}
151 A convenience function to get the first view for a
document, because
152 in many cases a
document will only have a single view.
154 See also:
\helpref{GetViews
}{wxdocumentgetviews
}
156 \membersection{wxDocument::GetPrintableName
}\label{wxdocumentgetprintablename
}
158 \constfunc{virtual void
}{GetPrintableName
}{\param{wxString\&
}{name
}}
160 Copies a suitable
document name into the supplied
{\it name
} buffer. The default
161 function uses the title, or if there is no title, uses the filename; or if no
162 filename, the string
{\bf unnamed
}.
164 \perlnote{In wxPerl this function must return the modified name rather
165 than just modifying the argument.
}
167 \membersection{wxDocument::GetTitle
}\label{wxdocumentgettitle
}
169 \constfunc{wxString
}{GetTitle
}{\void}
171 Gets the title for this
document. The
document title is used for an associated
172 frame (if any), and is usually constructed by the framework from
175 \membersection{wxDocument::GetViews
}\label{wxdocumentgetviews
}
177 \constfunc{wxList \&
}{GetViews
}{\void}
179 Returns the list whose elements are the views on the
document.
181 See also:
\helpref{GetFirstView
}{wxdocumentgetfirstview
}
183 \membersection{wxDocument::IsModified
}\label{wxdocumentismodified
}
185 \constfunc{virtual bool
}{IsModified
}{\void}
187 Returns true if the
document has been modified since the last save, false otherwise.
188 You may need to override this if your
document view maintains its own
189 record of being modified (for example if using wxTextWindow to view and edit the
document).
191 See also
\helpref{Modify
}{wxdocumentmodify
}.
193 \membersection{wxDocument::LoadObject
}\label{wxdocumentloadobject
}
195 \func{virtual istream\&
}{LoadObject
}{\param{istream\&
}{stream
}}
197 \func{virtual wxInputStream\&
}{LoadObject
}{\param{wxInputStream\&
}{stream
}}
199 Override this function and call it from your own LoadObject before
200 streaming your own data. LoadObject is called by the framework
201 automatically when the
document contents need to be loaded.
203 Note that only one of these forms exists, depending on how wxWidgets
206 \membersection{wxDocument::Modify
}\label{wxdocumentmodify
}
208 \func{virtual void
}{Modify
}{\param{bool
}{ modify
}}
210 Call with true to mark the
document as modified since the last save, false otherwise.
211 You may need to override this if your
document view maintains its own
212 record of being modified (for example if using wxTextWindow to view and edit the
document).
214 See also
\helpref{IsModified
}{wxdocumentismodified
}.
216 \membersection{wxDocument::OnChangedViewList
}\label{wxdocumentonchangedviewlist
}
218 \func{virtual void
}{OnChangedViewList
}{\void}
220 Called when a view is added to or deleted from this
document. The default
221 implementation saves and deletes the
document if no views exist (the last
222 one has just been removed).
224 \membersection{wxDocument::OnCloseDocument
}\label{wxdocumentonclosedocument
}
226 \func{virtual bool
}{OnCloseDocument
}{\void}
228 The default implementation calls DeleteContents (an empty implementation)
229 sets the modified flag to false. Override this to
230 supply additional behaviour when the
document is closed with Close.
232 \membersection{wxDocument::OnCreate
}\label{wxdocumentoncreate
}
234 \func{virtual bool
}{OnCreate
}{\param{const wxString\&
}{path
},
\param{long
}{ flags
}}
236 Called just after the
document object is created to give it a chance
237 to initialize itself. The default implementation uses the
238 template associated with the
document to create an initial view.
239 If this function returns false, the
document is deleted.
241 \membersection{wxDocument::OnCreateCommandProcessor
}\label{wxdocumentoncreatecommandprocessor
}
243 \func{virtual wxCommandProcessor*
}{OnCreateCommandProcessor
}{\void}
245 Override this function if you want a different (or no) command processor
246 to be created when the
document is created. By default, it returns
247 an instance of wxCommandProcessor.
249 See
\helpref{wxCommandProcessor
}{wxcommandprocessor
}.
251 \membersection{wxDocument::OnNewDocument
}\label{wxdocumentonnewdocument
}
253 \func{virtual bool
}{OnNewDocument
}{\void}
255 The default implementation calls OnSaveModified and DeleteContents, makes a default title for the
256 document, and notifies the views that the filename (in fact, the title) has changed.
258 \membersection{wxDocument::OnOpenDocument
}\label{wxdocumentonopendocument
}
260 \func{virtual bool
}{OnOpenDocument
}{\param{const wxString\&
}{filename
}}
262 Constructs an input file stream for the given filename (which must not be empty),
263 and calls LoadObject. If LoadObject returns true, the
document is set to
264 unmodified; otherwise, an error message box is displayed. The
document's
265 views are notified that the filename has changed, to give windows an opportunity
266 to update their titles. All of the
document's views are then updated.
268 \membersection{wxDocument::OnSaveDocument
}\label{wxdocumentonsavedocument
}
270 \func{virtual bool
}{OnSaveDocument
}{\param{const wxString\&
}{filename
}}
272 Constructs an output file stream for the given filename (which must not be empty),
273 and calls SaveObject. If SaveObject returns true, the
document is set to
274 unmodified; otherwise, an error message box is displayed.
276 \membersection{wxDocument::OnSaveModified
}\label{wxdocumentonsavemodified
}
278 \func{virtual bool
}{OnSaveModified
}{\void}
280 If the
document has been modified, prompts the user to ask if the changes should
281 be changed. If the user replies Yes, the Save function is called. If No, the
282 document is marked as unmodified and the function succeeds. If Cancel, the
285 \membersection{wxDocument::RemoveView
}\label{wxdocumentremoveview
}
287 \func{virtual bool
}{RemoveView
}{\param{wxView*
}{view
}}
289 Removes the view from the
document's list of views, and calls OnChangedViewList.
291 \membersection{wxDocument::Save
}\label{wxdocumentsave
}
293 \func{virtual bool
}{Save
}{\void}
295 Saves the
document by calling OnSaveDocument if there is an associated filename,
296 or SaveAs if there is no filename.
298 \membersection{wxDocument::SaveAs
}\label{wxdocumentsaveas
}
300 \func{virtual bool
}{SaveAs
}{\void}
302 Prompts the user for a file to save to, and then calls OnSaveDocument.
304 \membersection{wxDocument::SaveObject
}\label{wxdocumentsaveobject
}
306 \func{virtual ostream\&
}{SaveObject
}{\param{ostream\&
}{stream
}}
308 \func{virtual wxOutputStream\&
}{SaveObject
}{\param{wxOutputStream\&
}{stream
}}
310 Override this function and call it from your own SaveObject before
311 streaming your own data. SaveObject is called by the framework
312 automatically when the
document contents need to be saved.
314 Note that only one of these forms exists, depending on how wxWidgets
317 \membersection{wxDocument::SetCommandProcessor
}\label{wxdocumentsetcommandprocessor
}
319 \func{virtual void
}{SetCommandProcessor
}{\param{wxCommandProcessor *
}{processor
}}
321 Sets the command processor to be used for this
document. The
document will then be responsible
322 for its deletion. Normally you should not call this; override OnCreateCommandProcessor
325 See
\helpref{wxCommandProcessor
}{wxcommandprocessor
}.
327 \membersection{wxDocument::SetDocumentName
}\label{wxdocumentsetdocumentname
}
329 \func{void
}{SetDocumentName
}{\param{const wxString\&
}{name
}}
331 Sets the
document type name for this
document. See the comment for
\helpref{documentTypeName
}{documenttypename
}.
333 \membersection{wxDocument::SetDocumentTemplate
}\label{wxdocumentsetdocumenttemplate
}
335 \func{void
}{SetDocumentTemplate
}{\param{wxDocTemplate*
}{templ
}}
337 Sets the pointer to the template that created the
document. Should only be called by the
340 \membersection{wxDocument::SetFilename
}\label{wxdocumentsetfilename
}
342 \func{void
}{SetFilename
}{\param{const wxString\&
}{filename
},
\param{bool
}{ notifyViews = false
}}
344 Sets the filename for this
document. Usually called by the framework.
346 If
{\it notifyViews
} is true, wxView::OnChangeFilename is called for all views.
348 \membersection{wxDocument::SetTitle
}\label{wxdocumentsettitle
}
350 \func{void
}{SetTitle
}{\param{const wxString\&
}{title
}}
352 Sets the title for this
document. The
document title is used for an associated
353 frame (if any), and is usually constructed by the framework from
356 \membersection{wxDocument::UpdateAllViews
}\label{wxdocumentupdateallviews
}
358 \func{void
}{UpdateAllViews
}{\param{wxView*
}{sender = NULL
},
\param{wxObject*
}{ hint = NULL
}}
360 Updates all views. If
{\it sender
} is non-NULL, does not update this view.
362 {\it hint
} represents optional information to allow a view to optimize its update.