]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/document.tex
1. added code to dyntbar to allow bitmap loading from windows resources
[wxWidgets.git] / docs / latex / wx / document.tex
CommitLineData
a660d684
KB
1\section{\class{wxDocument}}\label{wxdocument}
2
3The document class can be used to model an application's file-based
4data. It is part of the document/view framework supported by wxWindows,
5and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}\rtfsp
6and \helpref{wxDocManager}{wxdocmanager} classes.
7
8\wxheading{Derived from}
9
10\helpref{wxEvtHandler}{wxevthandler}\\
11\helpref{wxObject}{wxobject}
12
954b8ae6
JS
13\wxheading{Include files}
14
15<wx/docview.h>
16
a660d684
KB
17\wxheading{See also}
18
19\helpref{wxDocument overview}{wxdocumentoverview}, \helpref{wxView}{wxview},\rtfsp
20\helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxDocManager}{wxdocmanager}
21
22\latexignore{\rtfignore{\wxheading{Members}}}
23
24\membersection{wxDocument::m\_commandProcessor}
25
26\member{wxCommandProcessor*}{m\_commandProcessor}
27
28A pointer to the command processor associated with this document.
29
30\membersection{wxDocument::m\_documentFile}
31
32\member{wxString}{m\_documentFile}
33
34Filename associated with this document (``" if none).
35
36\membersection{wxDocument::m\_documentModified}
37
38\member{bool}{m\_documentModified}
39
40TRUE if the document has been modified, FALSE otherwise.
41
42\membersection{wxDocument::m\_documentTemplate}
43
44\member{wxDocTemplate *}{m\_documentTemplate}
45
46A pointer to the template from which this document was created.
47
48\membersection{wxDocument::m\_documentTitle}
49
50\member{wxString}{m\_documentTitle}
51
52Document title. The document title is used for an associated
53frame (if any), and is usually constructed by the framework from
54the filename.
55
56\membersection{wxDocument::m\_documentTypeName}\label{documenttypename}
57
58\member{wxString}{m\_documentTypeName}
59
60The document type name given to the wxDocTemplate constructor, copied to this
61variable when the document is created. If several document templates are
62created that use the same document type, this variable is used in wxDocManager::CreateView
63to collate a list of alternative view types that can be used on this kind of
64document. Do not change the value of this variable.
65
66\membersection{wxDocument::m\_documentViews}
67
68\member{wxList}{m\_documentViews}
69
70List of wxView instances associated with this document.
71
72\membersection{wxDocument::wxDocument}
73
74\func{}{wxDocument}{\void}
75
76Constructor. Define your own default constructor to initialize application-specific
77data.
78
79\membersection{wxDocument::\destruct{wxDocument}}
80
81\func{}{\destruct{wxDocument}}{\void}
82
83Destructor. Removes itself from the document manager.
84
85\membersection{wxDocument::AddView}
86
87\func{virtual bool}{AddView}{\param{wxView *}{view}}
88
89If the view is not already in the list of views, adds the view and calls OnChangedViewList.
90
91\membersection{wxDocument::Close}
92
93\func{virtual bool}{Close}{\void}
94
95Closes the document, by calling OnSaveModified and then (if this returned TRUE) OnCloseDocument.
96This does not normally delete the document object: use DeleteAllViews to do this implicitly.
97
98\membersection{wxDocument::DeleteAllViews}
99
100\func{virtual bool}{DeleteAllViews}{\void}
101
102Calls wxView::Close and deletes each view. Deleting the final view will implicitly
103delete the document itself, because the wxView destructor calls RemoveView. This
104in turns calls wxDocument::OnChangedViewList, whose default implemention is to
105save and delete the document if no views exist.
106
107\membersection{wxDocument::GetCommandProcessor}
108
109\constfunc{wxCommandProcessor*}{GetCommandProcessor}{\void}
110
111Returns a pointer to the command processor associated with this document.
112
113See \helpref{wxCommandProcessor}{wxcommandprocessor}.
114
115\membersection{wxDocument::GetDocumentTemplate}
116
117\constfunc{wxDocTemplate*}{GetDocumentTemplate}{\void}
118
119Gets a pointer to the template that created the document.
120
121\membersection{wxDocument::GetDocumentManager}
122
123\constfunc{wxDocManager*}{GetDocumentManager}{\void}
124
125Gets a pointer to the associated document manager.
126
127\membersection{wxDocument::GetDocumentName}
128
129\constfunc{wxString}{GetDocumentName}{\void}
130
131Gets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}.
132
133\membersection{wxDocument::GetDocumentWindow}
134
135\constfunc{wxWindow*}{GetDocumentWindow}{\void}
136
137Intended to return a suitable window for using as a parent for document-related
138dialog boxes. By default, uses the frame associated with the first view.
139
140\membersection{wxDocument::GetFilename}
141
142\constfunc{wxString}{GetFilename}{\void}
143
ad813b00 144Gets the filename associated with this document, or "" if none is
a660d684
KB
145associated.
146
147\membersection{wxDocument::GetFirstView}
148
149\constfunc{wxView*}{GetFirstView}{\void}
150
151A convenience function to get the first view for a document, because
152in many cases a document will only have a single view.
153
154\membersection{wxDocument::GetPrintableName}
155
156\constfunc{virtual void}{GetPrintableName}{\param{wxString\& }{name}}
157
158Copies a suitable document name into the supplied {\it name} buffer. The default
159function uses the title, or if there is no title, uses the filename; or if no
160filename, the string {\bf unnamed}.
161
162\membersection{wxDocument::GetTitle}
163
164\constfunc{wxString}{GetTitle}{\void}
165
166Gets the title for this document. The document title is used for an associated
167frame (if any), and is usually constructed by the framework from
168the filename.
169
170\membersection{wxDocument::IsModified}\label{wxdocumentismodified}
171
172\constfunc{virtual bool}{IsModified}{\void}
173
174Returns TRUE if the document has been modified since the last save, FALSE otherwise.
175You may need to override this if your document view maintains its own
176record of being modified (for example if using wxTextWindow to view and edit the document).
177
178See also \helpref{Modify}{wxdocumentmodify}.
179
180\membersection{wxDocument::LoadObject}
181
182\func{virtual istream\&}{LoadObject}{\param{istream\& }{stream}}
183
184Override this function and call it from your own LoadObject before
185streaming your own data. LoadObject is called by the framework
186automatically when the document contents need to be loaded.
187
188\membersection{wxDocument::Modify}\label{wxdocumentmodify}
189
190\func{virtual void}{Modify}{\param{bool}{ modify}}
191
192Call with TRUE to mark the document as modified since the last save, FALSE otherwise.
193You may need to override this if your document view maintains its own
194record of being modified (for example if using wxTextWindow to view and edit the document).
195
196See also \helpref{IsModified}{wxdocumentismodified}.
197
198\membersection{wxDocument::OnChangedViewList}
199
200\func{virtual void}{OnChangedViewList}{\void}
201
202Called when a view is added to or deleted from this document. The default
203implementation saves and deletes the document if no views exist (the last
204one has just been removed).
205
206\membersection{wxDocument::OnCloseDocument}
207
208\func{virtual bool}{OnCloseDocument}{\void}
209
210The default implementation calls DeleteContents (an empty implementation)
211sets the modified flag to FALSE. Override this to
212supply additional behaviour when the document is closed with Close.
213
214\membersection{wxDocument::OnCreate}
215
216\func{virtual bool}{OnCreate}{\param{const wxString\& }{path}, \param{long}{ flags}}
217
218Called just after the document object is created to give it a chance
219to initialize itself. The default implementation uses the
220template associated with the document to create an initial view.
221If this function returns FALSE, the document is deleted.
222
223\membersection{wxDocument::OnCreateCommandProcessor}
224
225\func{virtual wxCommandProcessor*}{OnCreateCommandProcessor}{\void}
226
227Override this function if you want a different (or no) command processor
228to be created when the document is created. By default, it returns
229an instance of wxCommandProcessor.
230
231See \helpref{wxCommandProcessor}{wxcommandprocessor}.
232
233\membersection{wxDocument::OnNewDocument}
234
235\func{virtual bool}{OnNewDocument}{\void}
236
237The default implementation calls OnSaveModified and DeleteContents, makes a default title for the
238document, and notifies the views that the filename (in fact, the title) has changed.
239
240\membersection{wxDocument::OnOpenDocument}
241
242\func{virtual bool}{OnOpenDocument}{\param{const wxString\& }{filename}}
243
ad813b00 244Constructs an input file stream for the given filename (which must not be empty),
a660d684
KB
245and calls LoadObject. If LoadObject returns TRUE, the document is set to
246unmodified; otherwise, an error message box is displayed. The document's
247views are notified that the filename has changed, to give windows an opportunity
248to update their titles. All of the document's views are then updated.
249
250\membersection{wxDocument::OnSaveDocument}
251
252\func{virtual bool}{OnSaveDocument}{\param{const wxString\& }{filename}}
253
ad813b00 254Constructs an output file stream for the given filename (which must not be empty),
a660d684
KB
255and calls SaveObject. If SaveObject returns TRUE, the document is set to
256unmodified; otherwise, an error message box is displayed.
257
258\membersection{wxDocument::OnSaveModified}
259
260\func{virtual bool}{OnSaveModified}{\void}
261
262If the document has been modified, prompts the user to ask if the changes should
263be changed. If the user replies Yes, the Save function is called. If No, the
264document is marked as unmodified and the function succeeds. If Cancel, the
265function fails.
266
267\membersection{wxDocument::RemoveView}
268
269\func{virtual bool}{RemoveView}{\param{wxView* }{view}}
270
271Removes the view from the document's list of views, and calls OnChangedViewList.
272
273\membersection{wxDocument::Save}
274
275\func{virtual bool}{Save}{\void}
276
277Saves the document by calling OnSaveDocument if there is an associated filename,
278or SaveAs if there is no filename.
279
280\membersection{wxDocument::SaveAs}
281
282\func{virtual bool}{SaveAs}{\void}
283
284Prompts the user for a file to save to, and then calls OnSaveDocument.
285
286\membersection{wxDocument::SaveObject}
287
288\func{virtual ostream\&}{SaveObject}{\param{ostream\& }{stream}}
289
290Override this function and call it from your own SaveObject before
291streaming your own data. SaveObject is called by the framework
292automatically when the document contents need to be saved.
293
294\membersection{wxDocument::SetCommandProcessor}
295
296\func{virtual void}{SetCommandProcessor}{\param{wxCommandProcessor *}{processor}}
297
298Sets the command processor to be used for this document. The document will then be responsible
299for its deletion. Normally you should not call this; override OnCreateCommandProcessor
300instead.
301
302See \helpref{wxCommandProcessor}{wxcommandprocessor}.
303
304\membersection{wxDocument::SetDocumentName}
305
306\func{void}{SetDocumentName}{\param{const wxString\& }{name}}
307
308Sets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}.
309
310\membersection{wxDocument::SetDocumentTemplate}
311
312\func{void}{SetDocumentTemplate}{\param{wxDocTemplate* }{templ}}
313
314Sets the pointer to the template that created the document. Should only be called by the
315framework.
316
317\membersection{wxDocument::SetFilename}
318
319\func{void}{SetFilename}{\param{const wxString\& }{filename}}
320
321Sets the filename for this document. Usually called by the framework.
322
323\membersection{wxDocument::SetTitle}
324
325\func{void}{SetTitle}{\param{const wxString\& }{title}}
326
327Sets the title for this document. The document title is used for an associated
328frame (if any), and is usually constructed by the framework from
329the filename.
330
7f555861 331\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews}
a660d684 332
7f555861
JS
333\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}}
334
335Updates all views. If {\it sender} is non-NULL, does not update this view.
62448488 336