16#include <owl/docview.rh>
22#if defined(__BORLANDC__)
31#define IDC_FILENAMETXT stc3
32#define IDC_FILENAME edt1
33#define IDC_FILELIST lst1
34#define IDC_CURDIR stc1
35#define IDC_DIRLIST lst2
36#define IDC_FILETYPEEXT stc2
37#define IDC_FILETYPES cmb1
38#define IDC_DRIVESTEXT stc4
39#define IDC_DRIVES cmb2
40#define IDC_HELPF pshHelp
41#define IDC_READONLY chx1
65 initialDir, defExt, 0, filterIndex),
88handleTemplateChanged(
TDialog& dialog,
99 CHECK(ofn.lpstrDefExt);
113 LPCTSTR title,
TModule* module)
128 HIWORD(p1) == CBN_SELCHANGE) {
129 handleTemplateChanged(*
this, *
this,
GetOFN());
144 LPCTSTR title,
TModule* module)
159 HIWORD(p1) == CBN_SELCHANGE) {
160 handleTemplateChanged(*
this, *
this,
GetOFN());
199 Init(mode, app, templateHead);
212 TemplateList = templateHead;
213 TemplateHead = &templateHead;
215 AdditionalFileDialogFlags = 0;
222 tpl->DocManager =
this;
238 while ((doc = DocList.Next(
nullptr)) !=
nullptr) {
255 while (TemplateList) {
277 TRACEX(OwlDocView, 0,
_T(
"GetTemplateCount(): No registered templates!"));
313 TRACEX(OwlDocView, 0,
_T(
"GetNewTemplates(): No registered templates!"));
326 CHECK(tplCount < size);
327 tplList[tplCount] = tpl;
353 TRACEX(OwlDocView, 0,
_T(
"GetSaveTemplates(): No registered templates!"));
365 CHECK(tplCount < size);
366 tplList[tplCount] = tpl;
394 TRACEX(OwlDocView, 0,
_T(
"GetViewTemplates(): No registered templates!"));
408 for (index = 0; index < tplCount; index++) {
409 if (tplList[index]->GetViewName() == viewName)
418 while ((pview = doc.
NextView(pview)) !=
nullptr)
425 if (index == tplCount) {
428 CHECK(tplCount < size);
430 tplList[tplCount++] = tpl;
453 LPTSTR buffer,
int size)
463 for (
int count=0; count < tplcount; count++) {
468 int descLen = (p && *p) ?
static_cast<int>(
::_tcslen(p)) : 0;
471 int fltrLen = (p && *p) ?
static_cast<int>(
::_tcslen(p)) : 0;
475 len += (descLen + 2 + fltrLen + 2 + fltrLen + 1);
487 for (
int count = 0; count < tplcount; count++ ) {
504 len =
static_cast<int>(
::_tcslen(buffer));
525 bool newDoc = (flags &
dtNewDoc) ?
true :
false;
534 TRACEX(OwlDocView, 0,
_T(
"No usable templates found in CreateAnyDoc()"));
573 WARNX(OwlDocView, index > tplcount, 0,
574 _T(
"Invalid template index from SelectDocPath"));
586 if (doc !=
nullptr) {
594 return CreateDoc(tpllist[index-1], filepath,
nullptr, flags);
607 TRACEX(OwlDocView, 0,
_T(
"CreateDoc(): NULL template specified!"));
615 TRACEX(OwlDocView, 1,
_T(
"CreateDoc(): Creation vetoed."));
623 auto constructDoc = [&]
633 auto d = std::unique_ptr<TDocument>{constructDoc()};
635 TRACEX(OwlDocView, 0,
_T(
"CreateDoc(): ConstructDoc call failed"));
642 if (!
InitDoc(d.get(), path, flags)) {
643 TRACEX(OwlDocView, 0,
_T(
"CreateDoc: InitDoc failed"));
670 CHECKX(tpl,
_T(
"TDocManager::InitDoc: No template"));
684 TRACEX(OwlDocView, 0,
_T(
"TDocManager::InitDoc: Initialization failed"));
703 TRACEX(OwlDocView, 0,
_T(
"TDocManager::InitDoc: User cancellation"));
718 TRACEX(OwlDocView, 0,
_T(
"TDocManager::InitDoc: Initialization failed"));
730 TRACEX(OwlDocView, 0,
_T(
"TDocManager::InitDoc: Cannot open the document"));
743 TRACEX(OwlDocView, 0,
_T(
"TDocManager::InitDoc: Cannot create a view"));
778 WARNX(OwlDocView, !tplCount, 0,
_T(
"CreateAnyView(): no usable template"));
795 WARNX(OwlDocView, !tplCount, 0,
_T(
"CreateAnyView(): no usable template"));
796 WARNX(OwlDocView, tplCount, 0,
_T(
"CreateAnyView(): invalid template index"));
802 CHECK(index <= tplCount);
825 WARNX(OwlDocView, !view, 0,
_T(
"CreateView(): ConstructView call failed"));
828 WARNX(OwlDocView, !view, 0,
_T(
"CreateView(): InitView call failed"));
854 return index ? doc.
SetDocPath(filepath) :
false;
869 WARNX(OwlDocView, !tplcount, 0,
_T(
"SelectAnySave(): no usable templates"));
895 CHECK(index <= tplcount);
903 return tpllist[index-1];
939#if defined(OLD_DOCVIEW)
963 if (tpl != doc.Template)
1032 LPTSTR fltr = fltrCopy;
1049 fltr = (nxtFltr && *nxtFltr) ? nxtFltr :
nullptr;
1060nameMatch(LPCTSTR name, LPCTSTR wc)
1065 if ((*wc ==
_T(
'*') && (wc[1] ==
_T(
'\0'))) || (!*wc && !*name))
1067 if (*wc ==
_T(
'*')) {
1071 size_t namelen =
_tcslen(name);
1073 if (namelen > wclen)
1074 name += namelen - wclen;
1076#if defined(BI_DBCS_SUPPORT)
1078 if (*wc ==
_T(
'?') && *name) {
1117 TRACEX(OwlDocView, 0,
_T(
"IsAMatch: Invoked with invalid path"));
1128 LPCTSTR ppn = name.c_str();
1130 if (*ppe ==
_T(
'.'))
1136 tchar* pfn = filter;
1143 const tchar*
const cpfe = pfe ? pfe :
_T(
"");
1147 return nameMatch(ppn, pfn) && nameMatch(ppe, cpfe);
1164#if defined(OLD_DOCVIEW)
1176 if (hWnd && ::IsWindow(hWnd)) {
1177 while ((doc = DocList.Next(doc)) != 0 && !doc->
HasFocus(hWnd))
1182 if (hWnd && ::IsWindow(hWnd)) {
1183 while ((doc = DocList.Next(doc)) !=
nullptr ) {
1203 while ((doc = DocList.Next(doc)) !=
nullptr)
1237 TRACEX(OwlDocView, 0,
_T(
"TDocManager::DeleteTemplate() invoked for static"));
1244 TRACEX(OwlDocView, 0,
_T(
"TDocManager::DeleteTemplate(), templ. has no owner"));
1256 TRACEX(OwlDocView, 0,
_T(
"TDocManager::DeleteTemplate(), not in app list"));
1279 _stprintf(buf,
_T(
"Error: Message [string ID %u] not found"), sid);
1280 if (choice != MB_OK)
1281 choice |= MB_ICONQUESTION;
1326 while (tplcount--) {
1328 pickl.
AddString((*tpllist++)->GetDescription());
1330 int index = pickl.
Execute() + 1;
1348 LPTSTR path,
int buflen,
long flags,
1364 CHECK(!save || curDoc);
1366 for (index = count = 0; count < tplcount; count++) {
1374 for (index = count = 0; count < tplcount; count++) {
1384 flags = (tpllist[index]->
GetFlags() | flags);
1385 flags &= 0x000FFFFF;
1386 flags |= AdditionalFileDialogFlags;
1390 CONST_CAST(LPTSTR, tpllist[index]->GetDirectory()),
1391 CONST_CAST(LPTSTR, tpllist[index]->GetDefaultExt()),
1392 index ? index+1 : 0,
1398 LPCTSTR fName = path && *path ? path : (doc ? doc->
GetTitle() :
nullptr);
1399 if (fName && *fName)
1412 WARNX(OwlDocView, data.
Error != 0, 0,
_T(
"Common dialog error: ") << data.
Error <<
_T(
" in SelectDocPath()"));
1413 if (result != IDOK || data.
Error != 0)
return 0;
1424 for (count = 0; count < tplcount; count++) {
1425 if (count == index-1)
1441 _T(
"SelectDocPath: Specified buffer is too small"));
1463 while (tplcount--) {
1465 pickl.
AddString((*tpllist++)->GetViewName());
1483 if (!doc->
Close()) {
1507 tchar menuTitle[40];
1510 TMenu filePopup(hMenu);
1512 filePopup.
DeleteMenu(CM_FILEREVERT, MF_BYCOMMAND);
1517 menubar.
InsertMenu(0, MF_BYPOSITION|MF_POPUP,
reinterpret_cast<TMenuItem>(hMenu), menuTitle);
1519 WARNX(OwlDocView, !hMenu, 0,
_T(
"Cannot load DocManager's File Menu"));
1531 while ((doc = DocList.Next(doc)) !=
nullptr)
1534 answer = answer && r;
1555 while ((doc = DocList.Next(doc)) !=
nullptr) {
1574 TMenu menu(hMenuBar);
1587 while ((doc = DocList.Next(doc)) !=
nullptr)
1588 doc->ReindexFrames();
1601 ce.
Enable(TemplateList !=
nullptr);
1619 ce.
Enable(TemplateList !=
nullptr);
1653 WARNX(OwlDocView, !doc, 0,
_T(
"FileClose invoked with no current doc"));
1663 ce.
Enable(doc !=
nullptr);
1677 if (tpl != doc->Template)
1748 hndlr.
Enable(doc !=
nullptr);
1765#if OWL_PERSISTENT_STREAMS
1789 char tbuf[
sizeof(TDocTemplate)];
1790 memset(tbuf, 0,
sizeof tbuf);
1791 is >> *(TDocTemplate*)tbuf;
1808 doc->SetDocManager(*o);
1816 if (win && win->GetHandle())
1826TDocManager::Streamer::Write(
opstream& os)
const
1831 while ((tpl = o->GetNextTemplate(tpl)) != 0) {
1832 int flag = tpl->IsStatic();
1838 os << tpl->GetModule();
1846 for (count = 0; (doc = o->DocList.Next(doc))!=0; count++) ;
1853 for (doc = 0; i--; doc = o->DocList.Next(doc)) ;
Definition of class TAppDictionary.
#define WARNX(group, condition, level, message)
#define PRECONDITION(condition)
#define CHECKX(condition, message)
#define TRACEX(group, level, message)
Pointer to an array of type T.
TApplication * GetApplication(uint pid=0)
Looks up and returns the application associated with a given process ID.
Derived from TModule and TMsgThread and virtually derived from TEventHandler, TApplication acts as an...
TFrameWindow * GetMainWindow()
Return the current main window.
Base class for an extensible interface for auto enabling/disabling of commands (menu items,...
virtual void Enable(bool enable=true)
Enables or disables the command sender.
Typically used to obtain information from a user, a dialog box is a window inside of which other cont...
virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2)
Override this to process messages within the dialog function.
TDocManager creates a document manager object that manages the list of current documents and register...
virtual void ViewCreate()
Calls CreateAnyView(*doc) where doc is the current document.
void CmFileSaveAs()
Public to allow direct invocation from app; for backward compatibility.
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,...
bool EvCanClose()
Checks to see if all child documents can be closed before closing the current document.
virtual void PostEvent(int id, TDocument &doc)
changed doc status
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.
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...
virtual bool FlushDoc(TDocument &doc)
Method invoked when specified document is about to be closed.
bool IsFlagSet(int flag) const
Returns true if the specified flag is currently enabled by the DocManager or false otherwise.
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.
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.
virtual ~TDocManager()
Destruct this DocManager.
friend class TDocTemplate
virtual TView * CreateAnyView(TDocument &doc, long flags=0)
Creates a document view based on the directory path and specified template.
int UntitledIndex
Index of last untitled document.
TApplication * GetApplication() const
Returns the TApplication* object associated with this DocManager.
TDocument * InitDoc(TDocument *doc, LPCTSTR path, long flags)
Initializes the document, using the given path for the document and the given document flags.
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.
TDocManager(int mode, TApplication *app, TDocTemplate *&templateHead=DocTemplateStaticHead)
The constructor performs the same operations as the first constructor.
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...
TDocument * FindDocument(LPCTSTR path)
0 if not found
void UnRefTemplate(TDocTemplate &)
drop template ref
virtual bool CreatingDoc(TDocTemplate *tpl)
Overrideable method invoked just before the DocumentManager creates a new document.
virtual int GetSaveTemplates(TDocTemplate **tplList, int size, TDocument &doc, bool sameDoc)
Build a list of templates for saving documents.
void Init(int mode, TApplication *app, TDocTemplate *&templateHead)
Helper routine used by constructor(s).
virtual TDocument * CreateAnyDoc(LPCTSTR path, long flags=0)
Creates a document based on the directory path and the specified template.
static bool IsAMatch(LPCTSTR path, LPCTSTR fltr)
Helper function used by 'MatchTemplate'.
bool SelectSave(TDocument &doc)
Displays FileSave dialog prompting the user to select a file name for savinng the document.
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.
virtual void FileRevert()
virtual TDocTemplate * MatchTemplate(LPCTSTR path)
Returns the first registered template whose pattern matches the given file name.
virtual TDocTemplate * SelectAnySave(TDocument &doc, bool samedoc=true)
Select a new docpath for a document from the registered templates supporting the doc.
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...
virtual int GetViewTemplates(TDocTemplate **tplList, int size, TDocument &doc)
Build a list of templates for creating views.
void AttachTemplate(TDocTemplate &)
append to list
TDocTemplate is an abstract base class that contains document template functionality.
void SetDocManager(TDocManager *dm)
Sets the current document manager to the argument dm.
void SetFlag(long flag)
Sets the document template constants, which indicate how the document is created and opened.
virtual LPCTSTR GetViewName()=0
A pure virtual function that must be defined in a derived class, GetViewName gets the name of the vie...
LPCTSTR GetDescription() const
Gets the template description to put in the file-selection list box or the File|New menu-selection li...
virtual TDocument * ConstructDoc(TDocument *parent=nullptr)=0
A pure virtual function that must be defined in a derived class, ConstructDoc creates a document spec...
bool IsFlagSet(long flag) const
Returns nonzero if the document template flag is set.
virtual TView * ConstructView(TDocument &doc)=0
A pure virtual function that must be defined in a derived class, ConstructView creates the view speci...
bool IsVisible()
displayable in file select dialogs
virtual TDocument * IsMyKindOfDoc(TDocument &doc)=0
A pure virtual function that must be defined in a derived class, IsMyKindOfDoc tests if the template ...
bool IsStatic() const
Returns true if the template is statically constructed.
LPCTSTR GetDefaultExt() const
Gets the default extension to use if the user has entered the name of a file without any extension.
virtual TView * IsMyKindOfView(TView &view)=0
A pure virtual function that must be defined in a derived class, IsMyKindofView tests if the template...
TDocTemplate * GetNextTemplate() const
Gets the next template in the list of templates.
LPCTSTR GetFileFilter() const
Gets any valid document matching pattern to use when searching for files.
void ClearFlag(long flag)
Clears a document template constant.
void SetModule(TModule *module)
Sets a module pointer.
TDocManager * GetDocManager() const
Points to the document manager.
long GetFlags() const
Gets the document template constants, which indicate how the document is created and opened.
An abstract base class, TDocument is the base class for all document objects and serves as an interfa...
TDocTemplate * GetTemplate()
Gets the template used for document creation.
TView * NextView(const TView *view)
Gets the next view in the list of views. Holds 0 if none exists.
virtual bool InitDoc()
A virtual method that is overridden by TOleDocument::InitDoc.
bool NotifyViews(int eventId, TParam2=0, TView *exclude=nullptr)
Notifies the views of this document, and the views of any child documents, of a change.
LPCTSTR GetDocPath() const
Returns the directory path for the document.
virtual bool HasFocus(HWND hwnd)
Document (or child doc) has Focus.
virtual bool CanClose()
Returns false if unable to close.
bool SetTemplate(TDocTemplate *tpl)
Sets the document template.
virtual bool Close()
close document, does not delete or detach
TView * InitView(TView *view)
called from template InitView
LPCTSTR GetTitle() const
Returns the title of the document.
virtual TDocument * DocWithFocus(HWND hwnd)
Return pointer to this document or one of its child documents if the spcecified window parameter is a...
virtual bool SetDocPath(LPCTSTR path)
Sets the document path for Open and Save operations.
bool IsEmbedded() const
Returns true if the document is embedded in an OLE 2 container.
virtual bool IsDirty()
Also queries doc and view hierarchy.
virtual bool Open(int mode, LPCTSTR path=nullptr)
Opens the document using the path specified by DocPath.
virtual bool IsOpen()
Checks to see if the document has any streams in its stream list.
virtual bool Commit(bool force=false)
save current data, force write
virtual bool Revert(bool clear=false)
abort changes, no reload if true
TDvFileOpenDialog(TWindow *parent, TDvOpenSaveData &data, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructor of object encapsulating the Open File dialog used by the DocManager.
virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2)
Overriden virtual function of TFileOpenDialog to allow us to detect when the user switches between fi...
TDvFileSaveDialog(TWindow *parent, TDvOpenSaveData &data, LPCTSTR title=nullptr, TModule *module=nullptr)
Constructor of object encapsulating the FileSave dialog used by the DocManager.
virtual INT_PTR DialogFunction(TMsgId, TParam1, TParam2)
Overriden virtual function of TFileOpenDialog to allow us to detect when the user switches between fi...
TDvOpenSaveData encapsulates the information used to initialized the Open or Save As dialog box by Ob...
int TmplCount
Number of Doc/View templates in 'TmplList'.
TDocTemplate ** TmplList
List of Doc/View templates displayed in Common Dialog during a File|Open or File|SaveAs operation.
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...
TDvOpenSaveDataOwner is a mixin class used by the DocView encapsulation of the FileOpen and FileSave ...
TDvOpenSaveDataOwner(TDvOpenSaveData &data)
Constructor of mixin.
int GetTmplCount() const
Returns the number of DocView templates currently displayed in the Open or Save dialogs used by the D...
TDocTemplate ** GetTmplList() const
Returns the list of templates displayed in the Open or Save dialogs used by the DocManager.
The TFileName class constructs filenames.
@ File
Filename part without the extension.
const tchar * GetParts(uint p) const
Reassembles any logical subset of filename parts.
bool HasParts(uint p) const
Returns true if any of the parts specified by p are used.
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...
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,...
virtual HWND GetCommandTarget()
Locates and returns the child window that is the target of the command and command enable messages.
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
bool PumpWaitingMessages()
The inner message loop.
TCHAR * FileName
Holds the name of the file to be saved or opened.
TData(uint32 flags=0, LPCTSTR filter=nullptr, TCHAR *customFilter=nullptr, LPCTSTR initialDir=nullptr, LPCTSTR defExt=nullptr, int maxPath=0, int filterIndex=0, uint32 flagsEx=0)
Constructs a TOpenSaveDialog::TData structure.
int FilterIndex
FilterIndex indicates which filter to use initially when displaying file names.
uint32 Error
This is the return value from calling CommDlgExtendedError after executing the dialog in the implemen...
TOpenSaveDialog is the base class for modal dialogs that let you open and save a file under a specifi...
OPENFILENAME & GetOFN()
Returns the OPENFILENAME structure.
A linked structure in which each node points to a list of TRegList objects (or TRegList-derived objec...
static void AddLink(TRegLink **head, TRegLink *newLink)
Adds a new link to the end of the link list.
static bool RemoveLink(TRegLink **head, TRegLink *remLink)
Removes a link from the link list. Returns true if the link is found and removed.
Abstract base class for view access from document.
TWindow, derived from TEventHandler and TStreamableBase, provides window-specific behavior and encaps...
int MessageBox(LPCTSTR text, LPCTSTR caption=0, uint flags=MB_OK) const
Displays a message in a modal pop-up dialog box.
virtual int Execute()
Creates the underlying HWND and makes it modal with the help of TApplication's BeginModal support.
TResult SendDlgItemMessage(int childId, TMsgId, TParam1=0, TParam2=0)
Sends a message (msg) to the control specified in childId.
bool PostMessage(TMsgId, TParam1=0, TParam2=0)
Posts a message (msg) to the window in the application's message queue.
TResult SendMessage(TMsgId, TParam1=0, TParam2=0) const
Sends a message (msg) to a specified window or windows.
HWND GetHandle() const
Returns the handle of the window.
ipstream, a specialized input stream derivative of pstream, is the base class for reading (extracting...
Base class for writing streamable objects.
Definition of class TDocManager.
#define DEFINE_RESPONSE_TABLE(cls)
Macro to define a response table for a class with no base response tables.
const uint dtNewDoc
create new document, no path used
const uint dtProhibited
Flags which are stripped off when invoking Open/Save dialogs [See SelectDocPath() method for more inf...
const uint dtNoAutoView
no automatic create of default view
const uint dtAutoOpen
open document upon creation
const uint dtForbidNew
forbids creating new document
const uint dmNoRevert
Disable FileRevert menu item.
const uint dmSDI
Does not support multiple open documents.
const uint dmMenu
Set IDs for file menu.
const uint dtHidden
hide template from user selection
const uint dmSaveEnable
Enable FileSave even if doc is unmodified.
const uint dtSelected
indicates template last selected
const uint dtSingleView
only a single view per document
@ ofRead
ios::in, open for reading
@ dnRename
Document has been renamed.
@ dnCreate
New document or view has been created.
int LoadString(uint id, TCHAR *buf, int maxChars) const
Loads a string resource identified by id into the buffer pointed to by buff.
HMENU LoadMenu(TResId id) const
Wrapper for the Windows API.
UINT CharSize(const TCHAR *s)
Return the number of bytes of the first character of the passed string.
Object Windows Library (OWLNext Core).
UINT TMsgId
Message ID type.
TDocTemplate * TDocTemplatePtr
LPARAM TParam2
Second parameter type.
WPARAM TParam1
First parameter type.
TAppDictionary & OWLGetAppDictionary()
Global exported TAppDictionary in Owl.
IMPLEMENT_STREAMABLE(TDocManager)
EV_COMMAND_ENABLE(CM_FILENEW, CeFileNew)
TModule & GetGlobalModule()
DIAG_DEFINE_GROUP_INIT(OWL_INI, OwlApp, 1, 0)
EV_COMMAND(IDOK, CmOkCancel)
Definition of TOpenSave abstract, TFileOpen, TFileSave common Dialog classes.
#define CONST_CAST(targetType, object)
#define COUNTOF(s)
Array element count Important: Only use this with an argument of array type.
Definition of classes TPickListPopup & TPickListDialog.
Definition of class TString, a flexible universal string envelope class.
Definition of TSystem, a system information provider class.