X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca3e85cfa8bec43f148eb1db520ab125947bf1e7..d05b30e40030a14423780d6723feee75b90eaf60:/include/wx/docview.h diff --git a/include/wx/docview.h b/include/wx/docview.h index 36a9bd114e..5bab609af6 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -17,7 +17,6 @@ #if wxUSE_DOC_VIEW_ARCHITECTURE #include "wx/list.h" -#include "wx/cmndata.h" #include "wx/string.h" #include "wx/frame.h" @@ -25,15 +24,15 @@ #include "wx/print.h" #endif -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxDocument; -class WXDLLEXPORT wxView; -class WXDLLEXPORT wxDocTemplate; -class WXDLLEXPORT wxDocManager; -class WXDLLEXPORT wxPrintInfo; -class WXDLLEXPORT wxCommandProcessor; -class WXDLLEXPORT wxFileHistory; -class WXDLLEXPORT wxConfigBase; +class WXDLLIMPEXP_FWD_CORE wxWindow; +class WXDLLIMPEXP_FWD_CORE wxDocument; +class WXDLLIMPEXP_FWD_CORE wxView; +class WXDLLIMPEXP_FWD_CORE wxDocTemplate; +class WXDLLIMPEXP_FWD_CORE wxDocManager; +class WXDLLIMPEXP_FWD_CORE wxPrintInfo; +class WXDLLIMPEXP_FWD_CORE wxCommandProcessor; +class WXDLLIMPEXP_FWD_CORE wxFileHistory; +class WXDLLIMPEXP_FWD_BASE wxConfigBase; #if wxUSE_STD_IOSTREAM #include "wx/iosfwrap.h" @@ -65,16 +64,16 @@ class WXDLLEXPORT wxDocument : public wxEvtHandler { public: wxDocument(wxDocument *parent = (wxDocument *) NULL); - ~wxDocument(); + virtual ~wxDocument(); // accessors void SetFilename(const wxString& filename, bool notifyViews = false); wxString GetFilename() const { return m_documentFile; } - void SetTitle(const wxString& title) { m_documentTitle = title; }; + void SetTitle(const wxString& title) { m_documentTitle = title; } wxString GetTitle() const { return m_documentTitle; } - void SetDocumentName(const wxString& name) { m_documentTypeName = name; }; + void SetDocumentName(const wxString& name) { m_documentTypeName = name; } wxString GetDocumentName() const { return m_documentTypeName; } bool GetDocumentSaved() const { return m_savedYet; } @@ -141,8 +140,17 @@ public: virtual wxDocTemplate *GetDocumentTemplate() const { return m_documentTemplate; } virtual void SetDocumentTemplate(wxDocTemplate *temp) { m_documentTemplate = temp; } - // Get title, or filename if no title, else [unnamed] - virtual bool GetPrintableName(wxString& buf) const; + // Get the document name to be shown to the user: the title if there is + // any, otherwise the filename if the document was saved and, finally, + // "unnamed" otherwise + virtual wxString GetUserReadableName() const; + +#if WXWIN_COMPATIBILITY_2_8 + // use GetUserReadableName() instead + wxDEPRECATED_BUT_USED_INTERNALLY( + virtual bool GetPrintableName(wxString& buf) const + ); +#endif // WXWIN_COMPATIBILITY_2_8 // Returns a window that can be used as a parent for document-related // dialogs. Override if necessary. @@ -165,6 +173,9 @@ protected: virtual bool DoSaveDocument(const wxString& file); virtual bool DoOpenDocument(const wxString& file); + // the default implementation of GetUserReadableName() + wxString DoGetUserReadableName() const; + private: DECLARE_ABSTRACT_CLASS(wxDocument) DECLARE_NO_COPY_CLASS(wxDocument) @@ -175,13 +186,13 @@ class WXDLLEXPORT wxView: public wxEvtHandler public: // wxView(wxDocument *doc = (wxDocument *) NULL); wxView(); - ~wxView(); + virtual ~wxView(); wxDocument *GetDocument() const { return m_viewDocument; } virtual void SetDocument(wxDocument *doc); wxString GetViewName() const { return m_viewTypeName; } - void SetViewName(const wxString& name) { m_viewTypeName = name; }; + void SetViewName(const wxString& name) { m_viewTypeName = name; } wxWindow *GetFrame() const { return m_viewFrame ; } void SetFrame(wxWindow *frame) { m_viewFrame = frame; } @@ -195,7 +206,7 @@ public: // Called by framework if created automatically by the default document // manager class: gives view a chance to initialise - virtual bool OnCreate(wxDocument *WXUNUSED(doc), long WXUNUSED(flags)) { return true; }; + virtual bool OnCreate(wxDocument *WXUNUSED(doc), long WXUNUSED(flags)) { return true; } // Checks if the view is the last one for the document; if so, asks user // to confirm save data (if modified). If ok, deletes itself and returns @@ -233,7 +244,7 @@ private: class WXDLLEXPORT wxDocTemplate: public wxObject { -friend class WXDLLEXPORT wxDocManager; +friend class WXDLLIMPEXP_FWD_CORE wxDocManager; public: // Associate document and view types. They're for identifying what view is @@ -249,7 +260,7 @@ public: wxClassInfo *viewClassInfo = (wxClassInfo *)NULL, long flags = wxDEFAULT_TEMPLATE_FLAGS); - ~wxDocTemplate(); + virtual ~wxDocTemplate(); // By default, these two member functions dynamically creates document and // view using dynamic instance construction. Override these if you need a @@ -261,21 +272,21 @@ public: // creation virtual bool InitDocument(wxDocument* doc, const wxString& path, long flags = 0); - wxString GetDefaultExtension() const { return m_defaultExt; }; + wxString GetDefaultExtension() const { return m_defaultExt; } wxString GetDescription() const { return m_description; } - wxString GetDirectory() const { return m_directory; }; + wxString GetDirectory() const { return m_directory; } wxDocManager *GetDocumentManager() const { return m_documentManager; } void SetDocumentManager(wxDocManager *manager) { m_documentManager = manager; } - wxString GetFileFilter() const { return m_fileFilter; }; - long GetFlags() const { return m_flags; }; + wxString GetFileFilter() const { return m_fileFilter; } + long GetFlags() const { return m_flags; } virtual wxString GetViewName() const { return m_viewTypeName; } virtual wxString GetDocumentName() const { return m_docTypeName; } - void SetFileFilter(const wxString& filter) { m_fileFilter = filter; }; - void SetDirectory(const wxString& dir) { m_directory = dir; }; - void SetDescription(const wxString& descr) { m_description = descr; }; - void SetDefaultExtension(const wxString& ext) { m_defaultExt = ext; }; - void SetFlags(long flags) { m_flags = flags; }; + void SetFileFilter(const wxString& filter) { m_fileFilter = filter; } + void SetDirectory(const wxString& dir) { m_directory = dir; } + void SetDescription(const wxString& descr) { m_description = descr; } + void SetDefaultExtension(const wxString& ext) { m_defaultExt = ext; } + void SetFlags(long flags) { m_flags = flags; } bool IsVisible() const { return ((m_flags & wxTEMPLATE_VISIBLE) == wxTEMPLATE_VISIBLE); } @@ -315,7 +326,7 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler { public: wxDocManager(long flags = wxDEFAULT_DOCMAN_FLAGS, bool initialize = true); - ~wxDocManager(); + virtual ~wxDocManager(); virtual bool Initialize(); @@ -394,8 +405,9 @@ public: wxList& GetDocuments() { return m_docs; } wxList& GetTemplates() { return m_templates; } - // Make a default document name - virtual bool MakeDefaultName(wxString& buf); + // Return the default name for a new document (by default returns strings + // in the form "unnamed " but can be overridden) + virtual wxString MakeNewDocumentName(); // Make a frame title (override this to do something different) virtual wxString MakeFrameTitle(wxDocument* doc); @@ -424,6 +436,13 @@ public: // Get the current document manager static wxDocManager* GetDocumentManager() { return sm_docManager; } +#if WXWIN_COMPATIBILITY_2_8 + // deprecated, override GetDefaultName() instead + wxDEPRECATED_BUT_USED_INTERNALLY( + virtual bool MakeDefaultName(wxString& buf) + ); +#endif + #if WXWIN_COMPATIBILITY_2_6 // deprecated, use GetHistoryFilesCount() instead wxDEPRECATED( size_t GetNoHistoryFiles() const ); @@ -468,7 +487,7 @@ public: const wxSize& size = wxDefaultSize, long type = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame")); - ~wxDocChildFrame(){} + virtual ~wxDocChildFrame(){} // Extend event processing to search the view's event table virtual bool ProcessEvent(wxEvent& event); @@ -499,14 +518,24 @@ private: class WXDLLEXPORT wxDocParentFrame : public wxFrame { public: + wxDocParentFrame(); wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long type = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxT("frame")); + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); + + bool Create(wxDocManager *manager, + wxFrame *frame, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); // Extend event processing to search the document manager's event table virtual bool ProcessEvent(wxEvent& event); @@ -521,6 +550,7 @@ protected: wxDocManager *m_docManager; private: + typedef wxFrame base_type; DECLARE_CLASS(wxDocParentFrame) DECLARE_EVENT_TABLE() DECLARE_NO_COPY_CLASS(wxDocParentFrame) @@ -559,7 +589,7 @@ class WXDLLEXPORT wxFileHistory : public wxObject { public: wxFileHistory(size_t maxFiles = 9, wxWindowID idBase = wxID_FILE1); - ~wxFileHistory(); + virtual ~wxFileHistory(); // Operations virtual void AddFileToHistory(const wxString& file); @@ -579,11 +609,15 @@ public: virtual void AddFilesToMenu(wxMenu* menu); // Single menu // Accessors - virtual wxString GetHistoryFile(size_t i) const; - virtual size_t GetCount() const { return m_fileHistoryN; } + virtual wxString GetHistoryFile(size_t i) const { return m_fileHistory[i]; } + virtual size_t GetCount() const { return m_fileHistory.GetCount(); } const wxList& GetMenus() const { return m_fileMenus; } + // Set/get base id + void SetBaseId(wxWindowID baseId) { m_idBase = baseId; } + wxWindowID GetBaseId() const { return m_idBase; } + #if WXWIN_COMPATIBILITY_2_6 // deprecated, use GetCount() instead wxDEPRECATED( size_t GetNoHistoryFiles() const ); @@ -591,11 +625,11 @@ public: protected: // Last n files - wxChar** m_fileHistory; - // Number of files saved - size_t m_fileHistoryN; + wxArrayString m_fileHistory; + // Menus to maintain (may need several for an MDI app) wxList m_fileMenus; + // Max files to maintain size_t m_fileMaxFiles; @@ -610,7 +644,7 @@ private: #if WXWIN_COMPATIBILITY_2_6 inline size_t wxFileHistory::GetNoHistoryFiles() const { - return m_fileHistoryN; + return m_fileHistory.GetCount(); } #endif // WXWIN_COMPATIBILITY_2_6