OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
docmanag.h
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// ObjectWindows
3// Copyright (c) 1992, 1996 by Borland International, All Rights Reserved
4//
5/// \file
6/// Definition of class TDocManager
7//------------------------------------------------------------------------------
8
9#if !defined(OWL_DOCMANAG_H)
10#define OWL_DOCMANAG_H
11
12#include <owl/private/defs.h>
13#if defined(BI_HAS_PRAGMA_ONCE)
14# pragma once
15#endif
16
17#include <owl/docview.h>
18#include <owl/applicat.h>
19#include <owl/doctpl.h>
20#include <owl/opensave.h>
21
22
23namespace owl {
24
25/// \addtogroup docview
26/// @{
27
28
29//
30/// \name Definitions of dmXxx document manager operational mode flags
31/// @{
32const uint dmSDI = 0x0001; ///< Does not support multiple open documents
33const uint dmMDI = 0x0002; ///< Supports multiple open documents
34const uint dmMenu = 0x0004; ///< Set IDs for file menu
35const uint dmSaveEnable = 0x0010; ///< Enable FileSave even if doc is unmodified
36const uint dmNoRevert = 0x0020; ///< Disable FileRevert menu item
37/// @}
38
39//
40/// Flags which are stripped off when invoking Open/Save dialogs [See
41/// SelectDocPath() method for more information ]
42//
43const uint dtProhibited = OFN_ENABLEHOOK |
44 OFN_ENABLETEMPLATE |
45 OFN_ALLOWMULTISELECT |
46 OFN_ENABLETEMPLATEHANDLE;
47
48//
49/// Definitions of dnXxx document/view message notifications
50//
51enum {
52 dnCreate, ///< New document or view has been created
53 dnClose, ///< Document or view has been closed
54 dnRename ///< Document has been renamed
55};
56
57#include <owl/preclass.h>
58
59//
60/// \class TDocManager
61// ~~~~~ ~~~~~~~~~~~
62/// TDocManager creates a document manager object that manages the list of current
63/// documents and registered templates, handles standard file menu commands, and
64/// displays the user-interface for file and view selection boxes. To provide
65/// support for documents and views, an instance of TDocManager must be created by
66/// the application and attached to the application.
67///
68/// The document manager normally handles events on behalf of the documents by using
69/// a response table to process the standard CM_FILENEW, CM_FILEOPEN, CM_FILECLOSE,
70/// CM_FILESAVE, CM_FILESAVEAS, CM_FILEREVERT, CM_FILEPRINT, CM_FILEPRINTERSETUP,
71/// and CM_VIEWCREATE File menu commands. In response to a CM_FILENEW or a
72/// CM_FILEOPEN command, the document manager creates the appropriate document based
73/// on the user's selections. In response to the other commands, the document
74/// manager determines which of the open documents contains the view associated with
75/// the window that has focus. The menu commands are first sent to the window that
76/// is in focus and then through the parent window chain to the main window and
77/// finally to the application, which forwards the commands to the document manager.
78///
79/// When you create a TDocManager or a derived class, you must specify that it has
80/// either a multi-document (dmMDI) or single-document (dmSDI) interface. In
81/// addition, if you want the document manager to handle the standard file commands,
82/// you must OR dmMDI or dmSDI with dmMenu.
83///
84/// You can also enable or disable the document manager menu options by passing
85/// dmSaveEnable or dmNoRevert in the constructor. If you want to enable the
86/// File|Save menu option if the document is unmodified, pass the dmSaveEnable flag
87/// in the constructor. To disable the "Revert to Saved" menu option, pass
88/// dmNoRevert in the constructor.
89///
90/// When the application directly creates a new document and view, it can attach the
91/// view to its frame window, create MDI children, float the window, or create a
92/// splitter. However, when the document manager creates a new document and view
93/// from the File|Open or File|New menu selection, the application doesn't control
94/// the process. To give the application control, the document manager sends
95/// messages after the new document and view are successfully created. Then, the
96/// application can use the information contained in the template to determine how
97/// to install the new document or view object.
98//
99class _OWLCLASS TDocManager : virtual public TEventHandler,
100 virtual public TStreamableBase {
101 public:
102 TDocManager(int mode, TApplication* app,
103 TDocTemplate*& templateHead = DocTemplateStaticHead);
104 virtual ~TDocManager();
105
106 // Retrieve template info: count, list or descriptions
107 //
108 int GetTemplateCount(TDocument* ofDocType = nullptr,
109 TView* ofViewType = nullptr);
110 virtual int GetNewTemplates(TDocTemplate** tplList, int size,
111 bool newDoc);
112 virtual int GetSaveTemplates(TDocTemplate** tplList, int size,
113 TDocument& doc, bool sameDoc);
114 virtual int GetViewTemplates(TDocTemplate** tplList, int size,
115 TDocument& doc);
116 virtual int GetTemplateDescription(TDocTemplate** tpllist,
117 int tplcount, tchar* buff = nullptr,
118 int size = 0);
119
120 // Create (construct & initialize) document and views
121 //
122 virtual TDocument* CreateAnyDoc(LPCTSTR path, long flags = 0);
123 //Sirma (Krasi)
124 virtual TDocument* CreateDoc(TDocTemplate* tpl, LPCTSTR path,
125 TDocument* parent=nullptr, long flags=0);
126 TDocument* InitDoc(TDocument* doc, LPCTSTR path,
127 long flags);
128 // Sirma (Kalin)
130
131 virtual TView* CreateAnyView(TDocument& doc,long flags = 0);
132 TView* CreateView(TDocument& doc, TDocTemplate* tpl=nullptr);
133
134 // Save document
135 //
136 bool SelectSave(TDocument& doc);
137 virtual TDocTemplate* SelectAnySave(TDocument& doc, bool samedoc = true);
138 virtual bool FlushDoc(TDocument& doc); // Attempt to update changes
139
140 // Find related template or document
141 //
142 virtual TDocTemplate* MatchTemplate(LPCTSTR path);
143 virtual TDocument* GetCurrentDoc(); ///< Return doc with focus, else 0
144 TDocument* FindDocument(LPCTSTR path); ///< 0 if not found
145 static bool IsAMatch(LPCTSTR path, LPCTSTR fltr);
146 static bool MatchFilter(LPCTSTR path, LPCTSTR filters);
147
148 // Accessors
149 //
151 int& GetUntitledIndex();
154
155 // Check Document Manager's state
156 //
157 bool IsFlagSet(int flag) const;
158 int GetModeFlags() const;
159
160 // Get or set additional OPENFILENAME flags used for Open and Save dialogs.
161 // See SelectDocPath for details.
162 //
163 long GetAdditionalFileDialogFlags() const;
165
166 // Manipulate template List [add, remove, etc]
167 //
169 void RefTemplate(TDocTemplate&); ///< add template ref
170 void UnRefTemplate(TDocTemplate&); ///< drop template ref
171 void DeleteTemplate(TDocTemplate&); ///< remove from list
172 void AttachTemplate(TDocTemplate&); ///< append to list
173
174 // Primary event handlers, public to allow direct invocation from app
175 // For backward compatibility call virtual member instead
176 void CmFileOpen();
177 void CmFileNew();
178 void CmFileClose();
179 void CmFileSave();
180 void CmFileSaveAs();
181 void CmFileRevert();
182 void CmViewCreate();
183
184 // Overridable handlers
185 virtual void FileOpen();
186 virtual void FileNew();
187 virtual void FileClose();
188 virtual void FileSave();
189 virtual void FileSaveAs();
190 virtual void FileRevert();
191 virtual void ViewCreate();
192
193 // Overrideable document manager UI functions
194 //
195 virtual uint PostDocError(TDocument& doc, uint sid,
196 uint choice = MB_OK);
197 virtual void PostEvent(int id, TDocument& doc); ///< changed doc status
198 virtual void PostEvent(int id, TView& view); ///< changed view status
199 virtual void UpdateFileMenu(TMenu& menubar);
200
201 bool NotifyAllDocs(int event, long item, TView* exclude);
202 // Delegated methods from TApplication
203 //
204 void EvPreProcessMenu(HMENU hMenu);
205 bool EvCanClose();
206 void EvWakeUp();
207
208 protected:
209
210 /// Index of last untitled document
211 //
213
214 /// Next ID to be assigned to a view
215 //
217
218 /// Helper routine used by constructor(s)
219 //
220 void Init(int mode, TApplication* app,
221 TDocTemplate*& templateHead);
222
223 // Overrideable document manager UI functions
224 //
225 virtual int SelectDocType(TDocTemplate** tpllist,
226 int tplcount);
227 virtual int SelectDocPath(TDocTemplate** tpllist, int tplcount,
228 tchar * path, int buflen,
229 long flags, bool save=false, TDocument* doc = nullptr);
230 virtual int SelectViewType(TDocTemplate** tpllist,
231 int tplcount);
232
233 // Overrideable method invoked just before DocManager creates a document
234 //
235 virtual bool CreatingDoc(TDocTemplate* tpl);
236
238
239/// Holds the list of attached documents, or 0 if no documents exist.
240 TDocument::List DocList;
241
242 private:
243 int Mode; ///< Mode flags: dmxxx
244 TDocTemplate* TemplateList; ///< Chained list of doc templates
245 TApplication* Application; ///< Current application
246 TDocTemplate** TemplateHead; ///< Saved pointer Template Head
247 long AdditionalFileDialogFlags; ///< OPENFILENAME flags
248
249 // Command enabler handlers
250 //
251 void CeFileNew(TCommandEnabler& ce);
252 void CeFileOpen(TCommandEnabler& ce);
253 void CeFileSave(TCommandEnabler& ce);
254 void CeFileSaveAs(TCommandEnabler& ce);
255 void CeFileRevert(TCommandEnabler& ce);
256 void CeFileClose(TCommandEnabler& ce);
257 void CeViewCreate(TCommandEnabler& ce);
258
259 DECLARE_RESPONSE_TABLE(TDocManager);
260
261 friend class TDocTemplate; // access to template list, PostEvent()
262 friend class TDocument; // access to Application
263
265};
266
268
269//
270/// \class TDvOpenSaveData
271// ~~~~~ ~~~~~~~~~~~~~~~
272/// TDvOpenSaveData encapsulates the information used to initialized
273/// the Open or Save As dialog box by ObjectWindows' DocView manager.
274/// Besides the typically 'OPENFILENAME' related information, it also
275/// provides methods to retrieve the template list and template count
276/// of the current Document Manager.
277//
279 public:
280 TDvOpenSaveData(uint32 flags, tchar* filter,
281 tchar* initialDir, tchar* defExt,
282 int filterIndex, TDocTemplate **tmplList, int tmplCount);
283
284 TDocTemplate** GetTmplList() const;
285 int GetTmplCount() const;
286
287 protected:
288 int TmplCount; ///< Number of Doc/View templates in 'TmplList'
289 int TmplIndex; ///< Index of the default template.
290 TDocTemplate** TmplList; ///< List of Doc/View templates displayed in
291 ///< Common Dialog during a File|Open or
292 ///< File|SaveAs operation.
293};
294
295//
296/// \class TDvOpenSaveDataOwner
297// ~~~~~ ~~~~~~~~~~~~~~~~~~~~
298/// TDvOpenSaveDataOwner is a mixin class used by the DocView encapsulation
299/// of the FileOpen and FileSave dialogs. It provides accessors to the
300/// template list and template count used by these dialogs. It purpose is to
301/// provide an encapsulation of code shared by the TDvFileOpenDialog an
302/// TDvFileSaveDialog class.
303//
305 public:
306 TDocTemplate** GetTmplList() const;
307 int GetTmplCount() const;
308
309 protected:
312};
313
314
315//
316/// \class TDvFileOpenDialog
317// ~~~~~ ~~~~~~~~~~~~~~~~~
318/// TDvFileOpenDialog encapsulates the FileOpen dialog used by the
319/// DocView manager. It enhances the standard ObjectWindows TFileOpenDialog
320/// by providing logic to update the dialog as the user switches amoung
321/// file types.
322//
324 public:
326 LPCTSTR title = nullptr, TModule* module = nullptr);
327 protected:
328 virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2);
329};
330
331//
332/// \class TDvFileSaveDialog
333// ~~~~~ ~~~~~~~~~~~~~~~~~
334/// TDvFileSaveDialog encapsulates the FileSave dialog used by the
335/// DocView manager. It enhances the standard ObjectWindows TFileSaveDialog
336/// by providing logic to update the dialog as the user switches amoung
337/// file types.
338//
340 public:
342 LPCTSTR title = nullptr, TModule* module = nullptr);
343 protected:
344 virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2);
345};
346
347/// \name Custom OWL Window Messages
348/// These macros handle OWL-defined window messages used internally by the
349/// framework:
350/// @{
351
352#define EV_WM_PREPROCMENU OWL_EV_(WM_OWLPREPROCMENU, EvPreProcessMenu)
353#define EV_WM_CANCLOSE OWL_EV_(WM_OWLCANCLOSE, EvCanClose)
354#define EV_WM_WAKEUP OWL_EV_(WM_OWLWAKEUP, EvWakeUp)
355
356/// @}
357
358/// @}
359
360
361#include <owl/posclass.h>
362
363
364//----------------------------------------------------------------------------
365// Inline implementations
366//
367
368//
369/// Increment the reference count of a DocView template to indicate that it's
370/// currently in use by the DocManager.
371//
373{
374 ::InterlockedIncrement(&tpl.RefCnt); //Staso: ++ is very vulnerable under multi-threading
375}
376
377//
378/// Decrement the reference count of a DocView template.
379/// \note The template is deleted when the reference count reaches zero.
380//
382{
383 if (::InterlockedDecrement(&tpl.RefCnt) == 0)//Staso: -- is very vulnerable under multi-threading
384 delete &tpl;
385}
386
387//
388/// Returns the TApplication* object associated with this DocManager.
389//
391{
392 return Application;
393}
394
395//
396/// Returns true if the specified flag is currently enabled by the
397/// DocManager or false otherwise.
398//
399inline bool TDocManager::IsFlagSet(int flag) const
400{
401 return (Mode & flag) != 0;
402}
403
404//
405/// Returns variable representing the dtXXXX flags [see DOCTPL.H for list]
406/// of the DocManager.
407//
409{
410 return Mode;
411}
412
413//
414/// Returns template following specified template - Pass in '0' as
415/// parameter to get pointer to the template list.
416//
418{
419 return tpl ? static_cast<TDocTemplate*>(tpl->GetNextTemplate()) : TemplateList;
420}
421
422//
423/// Returns the index to be used by an untitled document.
424/// \note Untitled indices start at '0' and are incremented
425/// after a new document is created.
426//
428{
429 return UntitledIndex;
430}
431
432//
433/// Returns a pointer to the list of DocView templates currently
434/// registered with the DocManager.
435//
437{
438 return TemplateList;
439}
440
441//
442/// Returns a List of document currently managed by the DocManager.
443//
445{
446 return DocList;
447}
448
449//
450/// See SelectDocPath for details.
451//
453{
454 return AdditionalFileDialogFlags;
455}
456
457//
458/// See SelectDocPath for details.
459//
461{
462 AdditionalFileDialogFlags = flags;
463}
464
465//
466/// Creates dummy document
467//
468inline
470{
471 return new TDocument(this);
472}
473
474//
475/// Public to allow direct invocation from app; for backward compatibility. Call
476/// virtual member FileOpen() instead.
477//
479{
480 FileOpen();
481}
482//
483/// Public to allow direct invocation from app; for backward compatibility. Call
484/// virtual member FileNew() instead.
485//
487{
488 FileNew();
489}
490//
491/// Public to allow direct invocation from app; for backward compatibility. Call
492/// virtual member FileClose() instead.
493//
495{
496 FileClose();
497}
498//
499/// Public to allow direct invocation from app; for backward compatibility. Call
500/// virtual member FileSave() instead.
501//
503{
504 FileSave();
505}
506//
507/// Public to allow direct invocation from app; for backward compatibility. Call
508/// virtual member FileSaveAs() instead.
509//
511{
512 FileSaveAs();
513}
514//
515/// Public to allow direct invocation from app; for backward compatibility. Call
516/// virtual member FileRevert() instead.
517//
519{
520 FileRevert();
521}
522
523//
524/// Public to allow direct invocation from app; for backward compatibility. Call
525/// virtual member ViewCreate() instead.
526//
528{
529 ViewCreate();
530}
531
532//
533/// Returns the list of templates displayed in the Open or Save
534/// dialogs used by the DocManager.
535//
537{
538 return TmplList;
539}
540
541//
542/// Returns the number of DocView templates currently displayed in the
543/// Open or Save dialogs used by the DocManager.
544//
546{
547 return TmplCount;
548}
549
550//
551/// Returns the list of templates displayed in the Open or Save
552/// dialogs used by the DocManager.
553//
555{
556 return DvData.GetTmplList();
557}
558
559//
560/// Returns the number of DocView templates currently displayed in the
561/// Open or Save dialogs used by the DocManager.
562//
564{
565 return DvData.GetTmplCount();
566}
567
568
569} // OWL namespace
570
571
572#endif // OWL_DOCMANAG_H
Definition of class TApplication.
Derived from TModule and TMsgThread and virtually derived from TEventHandler, TApplication acts as an...
Definition applicat.h:141
Base class for an extensible interface for auto enabling/disabling of commands (menu items,...
Definition window.h:209
TDocManager creates a document manager object that manages the list of current documents and register...
Definition docmanag.h:100
virtual void ViewCreate()
Calls CreateAnyView(*doc) where doc is the current document.
void CmFileSaveAs()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:510
TView * CreateView(TDocument &doc, TDocTemplate *tpl=nullptr)
Create a view on a given document using the given tempalte, or document's template if none given,...
Definition docmanag.cpp:816
bool EvCanClose()
Checks to see if all child documents can be closed before closing the current document.
TDocument * CreateDummyDoc()
Creates dummy document.
Definition docmanag.h:469
virtual void PostEvent(int id, TDocument &doc)
changed doc status
virtual void FileSave()
virtual uint PostDocError(TDocument &doc, uint sid, uint choice=MB_OK)
Displays a message box with the error message passed as a string resource ID in sid.
int GetTemplateCount(TDocument *ofDocType=nullptr, TView *ofViewType=nullptr)
Count the number of templates, filtering by document type and/or view type as indicated.
Definition docmanag.cpp:272
virtual int SelectViewType(TDocTemplate **tpllist, int tplcount)
Given a list of templates, lets the user select a view name for a new view from a list of view names.
static bool MatchFilter(LPCTSTR path, LPCTSTR filters)
Helper function used by 'MatchTemplate'.
void EvWakeUp()
Used only after streaming in the doc manager, EvWakeUp allows for the windows to be created after the...
int GetModeFlags() const
Returns variable representing the dtXXXX flags [see DOCTPL.H for list] of the DocManager.
Definition docmanag.h:408
virtual bool FlushDoc(TDocument &doc)
Method invoked when specified document is about to be closed.
Definition docmanag.cpp:914
uint NextViewId
Next ID to be assigned to a view.
Definition docmanag.h:216
bool IsFlagSet(int flag) const
Returns true if the specified flag is currently enabled by the DocManager or false otherwise.
Definition docmanag.h:399
bool NotifyAllDocs(int event, long item, TView *exclude)
Notifies the views of all documents and the views of any child documents of a change.
virtual int GetNewTemplates(TDocTemplate **tplList, int size, bool newDoc)
Build a list of templates for creating new documents or opening existing documents.
Definition docmanag.cpp:304
virtual void UpdateFileMenu(TMenu &menubar)
Update the specified menu bar by removing the current '&File' popup menu [assumed to be the first pop...
virtual void FileSaveAs()
SelectAnySave() is called to get a template.
friend class TDocument
Definition docmanag.h:262
friend class TDocTemplate
Definition docmanag.h:261
virtual void FileOpen()
virtual TView * CreateAnyView(TDocument &doc, long flags=0)
Creates a document view based on the directory path and specified template.
Definition docmanag.cpp:771
int UntitledIndex
Index of last untitled document.
Definition docmanag.h:212
TApplication * GetApplication() const
Returns the TApplication* object associated with this DocManager.
Definition docmanag.h:390
void CmFileOpen()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:478
TDocument * InitDoc(TDocument *doc, LPCTSTR path, long flags)
Initializes the document, using the given path for the document and the given document flags.
Definition docmanag.cpp:665
virtual TDocument * CreateDoc(TDocTemplate *tpl, LPCTSTR path, TDocument *parent=nullptr, long flags=0)
CreateDoc creates a document based on the directory path and the specified template.
Definition docmanag.cpp:603
long GetAdditionalFileDialogFlags() const
See SelectDocPath for details.
Definition docmanag.h:452
TDocManager(int mode, TApplication *app, TDocTemplate *&templateHead=DocTemplateStaticHead)
The constructor performs the same operations as the first constructor.
Definition docmanag.cpp:197
void CmFileSave()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:502
virtual int GetTemplateDescription(TDocTemplate **tpllist, int tplcount, tchar *buff=nullptr, int size=0)
Build up a long string containing the template descriptions and file filters for every template in th...
Definition docmanag.cpp:448
void CmViewCreate()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:527
TDocument * FindDocument(LPCTSTR path)
0 if not found
TDocument::List & GetDocList()
Returns a List of document currently managed by the DocManager.
Definition docmanag.h:444
void UnRefTemplate(TDocTemplate &)
drop template ref
Definition docmanag.h:381
virtual bool CreatingDoc(TDocTemplate *tpl)
Overrideable method invoked just before the DocumentManager creates a new document.
void SetAdditionalFileDialogFlags(long)
See SelectDocPath for details.
Definition docmanag.h:460
virtual int GetSaveTemplates(TDocTemplate **tplList, int size, TDocument &doc, bool sameDoc)
Build a list of templates for saving documents.
Definition docmanag.cpp:342
void Init(int mode, TApplication *app, TDocTemplate *&templateHead)
Helper routine used by constructor(s).
Definition docmanag.cpp:209
virtual TDocument * CreateAnyDoc(LPCTSTR path, long flags=0)
Creates a document based on the directory path and the specified template.
Definition docmanag.cpp:521
static bool IsAMatch(LPCTSTR path, LPCTSTR fltr)
Helper function used by 'MatchTemplate'.
virtual void FileNew()
bool SelectSave(TDocument &doc)
Displays FileSave dialog prompting the user to select a file name for savinng the document.
Definition docmanag.cpp:840
void EvPreProcessMenu(HMENU hMenu)
Preprocess the app frame's menu to replace the file menu with one managed by this docmanager.
virtual TDocument * GetCurrentDoc()
Return doc with focus, else 0.
void DeleteTemplate(TDocTemplate &)
remove from list
virtual void FileClose()
If the document can be closed it is closed.
int & GetUntitledIndex()
Returns the index to be used by an untitled document.
Definition docmanag.h:427
virtual void FileRevert()
void CmFileRevert()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:518
void CmFileNew()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:486
virtual TDocTemplate * MatchTemplate(LPCTSTR path)
Returns the first registered template whose pattern matches the given file name.
void RefTemplate(TDocTemplate &)
add template ref
Definition docmanag.h:372
virtual TDocTemplate * SelectAnySave(TDocument &doc, bool samedoc=true)
Select a new docpath for a document from the registered templates supporting the doc.
Definition docmanag.cpp:862
void CmFileClose()
Public to allow direct invocation from app; for backward compatibility.
Definition docmanag.h:494
virtual int SelectDocPath(TDocTemplate **tpllist, int tplcount, tchar *path, int buflen, long flags, bool save=false, TDocument *doc=nullptr)
Given a list of templates, prompts the user to select one of the templates to use for the file to be ...
virtual int SelectDocType(TDocTemplate **tpllist, int tplcount)
Given a list of templates, lets the user select a document type from a list of document templates.
TDocTemplate * GetNextTemplate(TDocTemplate *tpl) const
Returns template following specified template - Pass in '0' as parameter to get pointer to the templa...
Definition docmanag.h:417
virtual int GetViewTemplates(TDocTemplate **tplList, int size, TDocument &doc)
Build a list of templates for creating views.
Definition docmanag.cpp:383
void AttachTemplate(TDocTemplate &)
append to list
TDocTemplate * GetTemplateList() const
Returns a pointer to the list of DocView templates currently registered with the DocManager.
Definition docmanag.h:436
TDocTemplate is an abstract base class that contains document template functionality.
Definition doctpl.h:54
TDocTemplate * GetNextTemplate() const
Gets the next template in the list of templates.
Definition doctpl.h:270
TDocument(TDocument *parent=nullptr)
Although you do not create a TDocument object directly, you must call the constructor when you create...
Definition document.cpp:34
TDvFileOpenDialog(TWindow *parent, TDvOpenSaveData &data, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructor of object encapsulating the Open File dialog used by the DocManager.
Definition docmanag.cpp:112
virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2)
Overriden virtual function of TFileOpenDialog to allow us to detect when the user switches between fi...
Definition docmanag.cpp:125
TDvFileSaveDialog(TWindow *parent, TDvOpenSaveData &data, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructor of object encapsulating the FileSave dialog used by the DocManager.
Definition docmanag.cpp:143
virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2)
Overriden virtual function of TFileOpenDialog to allow us to detect when the user switches between fi...
Definition docmanag.cpp:156
TDvOpenSaveData encapsulates the information used to initialized the Open or Save As dialog box by Ob...
Definition docmanag.h:278
int TmplIndex
Index of the default template.
Definition docmanag.h:289
int TmplCount
Number of Doc/View templates in 'TmplList'.
Definition docmanag.h:288
TDocTemplate ** TmplList
List of Doc/View templates displayed in Common Dialog during a File|Open or File|SaveAs operation.
Definition docmanag.h:290
TDvOpenSaveData(uint32 flags, tchar *filter, tchar *initialDir, tchar *defExt, int filterIndex, TDocTemplate **tmplList, int tmplCount)
Constructor of class representing the data to be displayed in the Open/Save dialogs used by the DocMa...
Definition docmanag.cpp:58
TDocTemplate ** GetTmplList() const
Returns the list of templates displayed in the Open or Save dialogs used by the DocManager.
Definition docmanag.h:536
int GetTmplCount() const
Returns the number of DocView templates currently displayed in the Open or Save dialogs used by the D...
Definition docmanag.h:545
TDvOpenSaveDataOwner(TDvOpenSaveData &data)
Constructor of mixin.
Definition docmanag.cpp:75
int GetTmplCount() const
Returns the number of DocView templates currently displayed in the Open or Save dialogs used by the D...
Definition docmanag.h:563
TDocTemplate ** GetTmplList() const
Returns the list of templates displayed in the Open or Save dialogs used by the DocManager.
Definition docmanag.h:554
TDvOpenSaveData & DvData
Definition docmanag.h:311
TEventHandler is a base class from which you can derive classes that handle messages.
Definition eventhan.h:162
TFileOpenDialog(TWindow *parent, TData &data, TResId templateId=0, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructs and initializes the TFileOpen object based on information in the TOpenSaveDialog::TData da...
Definition opensave.cpp:404
TFileSaveDialog(TWindow *parent, TData &data, TResId templateId=0, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructs and initializes the TFileOpen object based on the TOpenSaveDialog::TData structure,...
Definition opensave.cpp:438
The TMenu class encapsulates window menus.
Definition menu.h:77
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
Definition module.h:78
TOpenSaveDialog structure contains information about the user's file open or save selection.
Definition opensave.h:44
Classes that inherit from TStreamableBase are known as streamable classes (their objects can be writt...
Definition objstrm.h:108
Abstract base class for view access from document.
Definition docview.h:397
TWindow, derived from TEventHandler and TStreamableBase, provides window-specific behavior and encaps...
Definition window.h:414
Definition of class TDocTemplate, and class template TDocTemplateT<D,V>.
owl::TDocTemplate * DocTemplateStaticHead
Templates constructed before app get linked onto this head pointer.
Definition global.cpp:66
Definition of classes TDocument, TView, TWindowView, TStream, TInStream, TOutStream.
#define DECLARE_STREAMABLE_OWL(cls, ver)
Definition objstrm.h:1529
#define DECLARE_STREAMABLE_INLINES(cls)
Definition objstrm.h:1538
const uint dtProhibited
Flags which are stripped off when invoking Open/Save dialogs [See SelectDocPath() method for more inf...
Definition docmanag.h:43
const uint dmNoRevert
Disable FileRevert menu item.
Definition docmanag.h:36
const uint dmSDI
Does not support multiple open documents.
Definition docmanag.h:32
const uint dmMenu
Set IDs for file menu.
Definition docmanag.h:34
const uint dmSaveEnable
Enable FileSave even if doc is unmodified.
Definition docmanag.h:35
const uint dmMDI
Supports multiple open documents.
Definition docmanag.h:33
@ dnRename
Document has been renamed.
Definition docmanag.h:54
@ dnCreate
New document or view has been created.
Definition docmanag.h:52
@ dnClose
Document or view has been closed.
Definition docmanag.h:53
Object Windows Library (OWLNext Core).
Definition animctrl.h:22
UINT TMsgId
Message ID type.
Definition dispatch.h:53
unsigned long uint32
Definition number.h:34
char tchar
Definition defs.h:77
LPARAM TParam2
Second parameter type.
Definition dispatch.h:55
WPARAM TParam1
First parameter type.
Definition dispatch.h:54
unsigned int uint
Definition number.h:25
Definition of TOpenSave abstract, TFileOpen, TFileSave common Dialog classes.
#define public_data
Definition defs.h:207
#define _OWLCLASS
Definition defs.h:338