Make it explicit that they all return true if the view or document was effectively closed or false if closing it was vetoed.
		
			
				
	
	
		
			1747 lines
		
	
	
		
			56 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			1747 lines
		
	
	
		
			56 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        docview.h
 | 
						|
// Purpose:     interface of various doc/view framework classes
 | 
						|
// Author:      wxWidgets team
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    A vector of wxDocument pointers.
 | 
						|
 | 
						|
    @since 2.9.5
 | 
						|
*/
 | 
						|
typedef wxVector<wxDocument*> wxDocVector;
 | 
						|
 | 
						|
/**
 | 
						|
    A vector of wxView pointers.
 | 
						|
 | 
						|
    @since 2.9.5
 | 
						|
*/
 | 
						|
typedef wxVector<wxView*> wxViewVector;
 | 
						|
 | 
						|
/**
 | 
						|
    A vector of wxDocTemplate pointers.
 | 
						|
 | 
						|
    @since 2.9.5
 | 
						|
*/
 | 
						|
typedef wxVector<wxDocTemplate*> wxDocTemplateVector;
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxDocTemplate
 | 
						|
 | 
						|
    The wxDocTemplate class is used to model the relationship between a
 | 
						|
    document class and a view class.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview_wxdoctemplate, wxDocument, wxView
 | 
						|
*/
 | 
						|
class wxDocTemplate : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor. Create instances dynamically near the start of your
 | 
						|
        application after creating a wxDocManager instance, and before doing
 | 
						|
        any document or view operations.
 | 
						|
 | 
						|
        @param manager
 | 
						|
            The document manager object which manages this template.
 | 
						|
        @param descr
 | 
						|
            A short description of what the template is for. This string will
 | 
						|
            be displayed in the file filter list of Windows file selectors.
 | 
						|
        @param filter
 | 
						|
            An appropriate file filter such as "*.txt".
 | 
						|
        @param dir
 | 
						|
            The default directory to use for file selectors.
 | 
						|
        @param ext
 | 
						|
            The default file extension (such as "txt").
 | 
						|
        @param docTypeName
 | 
						|
            A name that should be unique for a given type of document, used for
 | 
						|
            gathering a list of views relevant to a particular document.
 | 
						|
        @param viewTypeName
 | 
						|
            A name that should be unique for a given view.
 | 
						|
        @param docClassInfo
 | 
						|
            A pointer to the run-time document class information as returned by
 | 
						|
            the wxCLASSINFO() macro, e.g. wxCLASSINFO(MyDocumentClass). If this is
 | 
						|
            not supplied, you will need to derive a new wxDocTemplate class and
 | 
						|
            override the CreateDocument() member to return a new document
 | 
						|
            instance on demand.
 | 
						|
        @param viewClassInfo
 | 
						|
            A pointer to the run-time view class information as returned by the
 | 
						|
            wxCLASSINFO() macro, e.g. wxCLASSINFO(MyViewClass). If this is not
 | 
						|
            supplied, you will need to derive a new wxDocTemplate class and
 | 
						|
            override the CreateView() member to return a new view instance on
 | 
						|
            demand.
 | 
						|
        @param flags
 | 
						|
            A bit list of the following:
 | 
						|
            - wxTEMPLATE_VISIBLE       - The template may be displayed to the
 | 
						|
                                         user in dialogs.
 | 
						|
            - wxTEMPLATE_INVISIBLE     - The template may not be displayed to
 | 
						|
                                         the user in dialogs.
 | 
						|
            - wxDEFAULT_TEMPLATE_FLAGS - Defined as wxTEMPLATE_VISIBLE.
 | 
						|
 | 
						|
        @beginWxPerlOnly
 | 
						|
 | 
						|
        In wxPerl @a docClassInfo and @a viewClassInfo can be either
 | 
						|
        @c Wx::ClassInfo objects or strings containing the name of the
 | 
						|
        perl packages which are to be used as @c Wx::Document and
 | 
						|
        @c Wx::View classes (they must have a constructor named new);
 | 
						|
        as an example:
 | 
						|
 | 
						|
        - Wx::DocTemplate->new(docmgr, descr, filter, dir, ext,
 | 
						|
          docTypeName, viewTypeName, docClassInfo, viewClassInfo,
 | 
						|
          flags): will construct document and view objects from the
 | 
						|
          class information.
 | 
						|
        - Wx::DocTemplate->new(docmgr, descr, filter, dir, ext,
 | 
						|
          docTypeName, viewTypeName, docClassName, viewClassName,
 | 
						|
          flags): will construct document and view objects from perl
 | 
						|
          packages.
 | 
						|
        - Wx::DocTemplate->new(docmgr, descr, filter, dir, ext,
 | 
						|
          docTypeName, viewTypeName):
 | 
						|
          in this case @c Wx::DocTemplate::CreateDocument() and
 | 
						|
          @c Wx::DocTemplate::CreateView() must be overridden
 | 
						|
        @endWxPerlOnly
 | 
						|
    */
 | 
						|
    wxDocTemplate(wxDocManager* manager, const wxString& descr,
 | 
						|
                  const wxString& filter, const wxString& dir,
 | 
						|
                  const wxString& ext, const wxString& docTypeName,
 | 
						|
                  const wxString& viewTypeName, wxClassInfo* docClassInfo = 0,
 | 
						|
                  wxClassInfo* viewClassInfo = 0,
 | 
						|
                  long flags = wxTEMPLATE_VISIBLE);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor.
 | 
						|
    */
 | 
						|
    virtual ~wxDocTemplate();
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new instance of the associated document class. If you have
 | 
						|
        not supplied a wxClassInfo parameter to the template constructor, you
 | 
						|
        will need to override this function to return an appropriate document
 | 
						|
        instance.
 | 
						|
 | 
						|
        This function calls InitDocument() which in turns calls
 | 
						|
        wxDocument::OnCreate().
 | 
						|
    */
 | 
						|
    virtual wxDocument* CreateDocument(const wxString& path, long flags = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new instance of the associated view class.
 | 
						|
 | 
						|
        If you have not supplied a wxClassInfo parameter to the template
 | 
						|
        constructor, you will need to override this function to return an
 | 
						|
        appropriate view instance.
 | 
						|
 | 
						|
        If the new view initialization fails, it must call
 | 
						|
        wxDocument::RemoveView() for consistency with the default behaviour of
 | 
						|
        this function.
 | 
						|
    */
 | 
						|
    virtual wxView* CreateView(wxDocument* doc, long flags = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        This function implements the default (very primitive) format detection
 | 
						|
        which checks if the extension is that of the template.
 | 
						|
 | 
						|
        @param path
 | 
						|
            The path to be checked against the template.
 | 
						|
    */
 | 
						|
    virtual bool FileMatchesTemplate(const wxString& path);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the default file extension for the document data, as passed to
 | 
						|
        the document template constructor.
 | 
						|
    */
 | 
						|
    wxString GetDefaultExtension() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the text description of this template, as passed to the
 | 
						|
        document template constructor.
 | 
						|
    */
 | 
						|
    wxString GetDescription() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the default directory, as passed to the document template
 | 
						|
        constructor.
 | 
						|
    */
 | 
						|
    wxString GetDirectory() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the run-time class information that allows document
 | 
						|
        instances to be constructed dynamically, as passed to the document
 | 
						|
        template constructor.
 | 
						|
    */
 | 
						|
    wxClassInfo* GetDocClassInfo() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a pointer to the document manager instance for which this
 | 
						|
        template was created.
 | 
						|
    */
 | 
						|
    wxDocManager* GetDocumentManager() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the document type name, as passed to the document template
 | 
						|
        constructor.
 | 
						|
    */
 | 
						|
    virtual wxString GetDocumentName() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the file filter, as passed to the document template
 | 
						|
        constructor.
 | 
						|
    */
 | 
						|
    wxString GetFileFilter() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the flags, as passed to the document template constructor.
 | 
						|
    */
 | 
						|
    long GetFlags() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a reference to the wxPageSetupDialogData associated with the
 | 
						|
        printing operations of this document manager.
 | 
						|
    */
 | 
						|
    //@{
 | 
						|
    wxPageSetupDialogData& GetPageSetupDialogData();
 | 
						|
    const wxPageSetupDialogData& GetPageSetupDialogData() const;
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the run-time class information that allows view instances
 | 
						|
        to be constructed dynamically, as passed to the document template
 | 
						|
        constructor.
 | 
						|
    */
 | 
						|
    wxClassInfo* GetViewClassInfo() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the view type name, as passed to the document template
 | 
						|
        constructor.
 | 
						|
    */
 | 
						|
    virtual wxString GetViewName() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Initialises the document, calling wxDocument::OnCreate().
 | 
						|
 | 
						|
        This is called from CreateDocument().
 | 
						|
 | 
						|
        If you override this method, notice that you must @em delete the @a doc
 | 
						|
        if its initialization fails for consistency with the default behaviour.
 | 
						|
 | 
						|
        @param doc
 | 
						|
            The document to initialize.
 | 
						|
        @param path
 | 
						|
            The associated file path.
 | 
						|
        @param flags
 | 
						|
            Flags passed to CreateDocument().
 | 
						|
        @return
 | 
						|
            @true if the initialization was successful or @false if it failed
 | 
						|
            in which case @a doc should be deleted by this function.
 | 
						|
    */
 | 
						|
    virtual bool InitDocument(wxDocument* doc,
 | 
						|
                              const wxString& path,
 | 
						|
                              long flags = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns @true if the document template can be shown in user dialogs,
 | 
						|
        @false otherwise.
 | 
						|
    */
 | 
						|
    bool IsVisible() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the default file extension.
 | 
						|
    */
 | 
						|
    void SetDefaultExtension(const wxString& ext);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the template description.
 | 
						|
    */
 | 
						|
    void SetDescription(const wxString& descr);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the default directory.
 | 
						|
    */
 | 
						|
    void SetDirectory(const wxString& dir);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the pointer to the document manager instance for which this
 | 
						|
        template was created. Should not be called by the application.
 | 
						|
    */
 | 
						|
    void SetDocumentManager(wxDocManager* manager);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the file filter.
 | 
						|
    */
 | 
						|
    void SetFileFilter(const wxString& filter);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the internal document template flags (see the constructor
 | 
						|
        description for more details).
 | 
						|
    */
 | 
						|
    void SetFlags(long flags);
 | 
						|
 | 
						|
    /**
 | 
						|
        The default extension for files of this type.
 | 
						|
    */
 | 
						|
    wxString m_defaultExt;
 | 
						|
 | 
						|
    /**
 | 
						|
        A short description of this template.
 | 
						|
    */
 | 
						|
    wxString m_description;
 | 
						|
 | 
						|
    /**
 | 
						|
        The default directory for files of this type.
 | 
						|
    */
 | 
						|
    wxString m_directory;
 | 
						|
 | 
						|
    /**
 | 
						|
        Run-time class information that allows document instances to be
 | 
						|
        constructed dynamically.
 | 
						|
    */
 | 
						|
    wxClassInfo* m_docClassInfo;
 | 
						|
 | 
						|
    /**
 | 
						|
        The named type of the document associated with this template.
 | 
						|
    */
 | 
						|
    wxString m_docTypeName;
 | 
						|
 | 
						|
    /**
 | 
						|
        A pointer to the document manager for which this template was created.
 | 
						|
    */
 | 
						|
    wxDocTemplate* m_documentManager;
 | 
						|
 | 
						|
    /**
 | 
						|
        The file filter (such as "*.txt") to be used in file selector dialogs.
 | 
						|
    */
 | 
						|
    wxString m_fileFilter;
 | 
						|
 | 
						|
    /**
 | 
						|
        The flags passed to the constructor.
 | 
						|
    */
 | 
						|
    long m_flags;
 | 
						|
 | 
						|
    /**
 | 
						|
        Run-time class information that allows view instances to be constructed
 | 
						|
        dynamically.
 | 
						|
    */
 | 
						|
    wxClassInfo* m_viewClassInfo;
 | 
						|
 | 
						|
    /**
 | 
						|
        The named type of the view associated with this template.
 | 
						|
    */
 | 
						|
    wxString m_viewTypeName;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxDocManager
 | 
						|
 | 
						|
    The wxDocManager class is part of the document/view framework supported by
 | 
						|
    wxWidgets, and cooperates with the wxView, wxDocument and wxDocTemplate
 | 
						|
    classes.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview_wxdocmanager, wxDocument, wxView, wxDocTemplate,
 | 
						|
         wxFileHistory
 | 
						|
*/
 | 
						|
class wxDocManager : public wxEvtHandler
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor. Create a document manager instance dynamically near the
 | 
						|
        start of your application before doing any document or view operations.
 | 
						|
 | 
						|
        If @a initialize is @true, the Initialize() function will be called to
 | 
						|
        create a default history list object. If you derive from wxDocManager,
 | 
						|
        you may wish to call the base constructor with @false, and then call
 | 
						|
        Initialize() in your own constructor, to allow your own Initialize() or
 | 
						|
        OnCreateFileHistory functions to be called.
 | 
						|
 | 
						|
        @param flags
 | 
						|
            Currently unused.
 | 
						|
        @param initialize
 | 
						|
            Indicates whether Initialize() should be called by this ctor.
 | 
						|
    */
 | 
						|
    wxDocManager(long flags = 0, bool initialize = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor.
 | 
						|
    */
 | 
						|
    virtual ~wxDocManager();
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the current view.
 | 
						|
    */
 | 
						|
    virtual void ActivateView(wxView* doc, bool activate = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Adds the document to the list of documents.
 | 
						|
    */
 | 
						|
    void AddDocument(wxDocument* doc);
 | 
						|
 | 
						|
    /**
 | 
						|
        Adds a file to the file history list, if we have a pointer to an
 | 
						|
        appropriate file menu.
 | 
						|
    */
 | 
						|
    virtual void AddFileToHistory(const wxString& filename);
 | 
						|
 | 
						|
    /**
 | 
						|
        Adds the template to the document manager's template list.
 | 
						|
    */
 | 
						|
    void AssociateTemplate(wxDocTemplate* temp);
 | 
						|
 | 
						|
    /**
 | 
						|
        Search for a particular document template.
 | 
						|
 | 
						|
        Example:
 | 
						|
        @code
 | 
						|
           // creating a document instance of the specified document type:
 | 
						|
           m_doc = (MyDoc*)docManager->FindTemplate(CLASSINFO(MyDoc))->
 | 
						|
                        CreateDocument(wxEmptyString, wxDOC_SILENT);
 | 
						|
        @endcode
 | 
						|
 | 
						|
        @param classinfo
 | 
						|
            Class info of a document class for which a wxDocTemplate had been
 | 
						|
            previously created.
 | 
						|
 | 
						|
        @return
 | 
						|
            Pointer to a wxDocTemplate, or @NULL if none found.
 | 
						|
 | 
						|
        @since 2.9.2
 | 
						|
     */
 | 
						|
    wxDocTemplate* FindTemplate(const wxClassInfo* classinfo);
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
        Search for the document corresponding to the given file.
 | 
						|
 | 
						|
        @param path
 | 
						|
            Document file path.
 | 
						|
        @return
 | 
						|
            Pointer to a wxDocument, or @NULL if none found.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
     */
 | 
						|
    wxDocument* FindDocumentByPath(const wxString& path) const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes the specified document.
 | 
						|
 | 
						|
        If @a force is @true, the document is closed even if it has unsaved
 | 
						|
        changes.
 | 
						|
 | 
						|
        @param doc
 | 
						|
            The document to close, must be non-@NULL.
 | 
						|
        @param force
 | 
						|
            If @true, close the document even if wxDocument::Close() returns
 | 
						|
            @false.
 | 
						|
        @return
 | 
						|
            @true if the document was closed or @false if closing it was
 | 
						|
            cancelled by user (only in @a force = @false case).
 | 
						|
     */
 | 
						|
    bool CloseDocument(wxDocument *doc, bool force = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes all currently opened documents.
 | 
						|
 | 
						|
        @see CloseDocument()
 | 
						|
    */
 | 
						|
    bool CloseDocuments(bool force = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new document.
 | 
						|
 | 
						|
        This function can either create a document corresponding to a new
 | 
						|
        file or to an already existing one depending on whether @c wxDOC_NEW is
 | 
						|
        specified in the @a flags.
 | 
						|
 | 
						|
        By default, this function asks the user for the type of document to
 | 
						|
        open and the path to its file if it's not specified, i.e. if @a path is
 | 
						|
        empty. Specifying @c wxDOC_SILENT flag suppresses any prompts and means
 | 
						|
        that the @a path must be non-empty and there must be a registered
 | 
						|
        document template handling the extension of this file, otherwise a
 | 
						|
        warning message is logged and the function returns @NULL. Notice that
 | 
						|
        @c wxDOC_SILENT can be combined with @c wxDOC_NEW, however in this case
 | 
						|
        the @a path must still be specified, even if the file with this path
 | 
						|
        typically won't exist.
 | 
						|
 | 
						|
        Finally notice that if this document manager was configured to allow
 | 
						|
        only a limited number of simultaneously opened documents using
 | 
						|
        SetMaxDocsOpen(), this function will try to close the oldest existing
 | 
						|
        document if this number was reached before creating a new document.
 | 
						|
        And if closing the old document fails (e.g. because it was vetoed by
 | 
						|
        user), this function fails as well.
 | 
						|
 | 
						|
        @param path
 | 
						|
            Path to a file or an empty string. If the path is empty, the user
 | 
						|
            will be asked to select it (thus, this is incompatible with the use
 | 
						|
            of @c wxDOC_SILENT). The file should exist unless @a flags includes
 | 
						|
            @c wxDOC_NEW.
 | 
						|
        @param flags
 | 
						|
            By default, none. May include @c wxDOC_NEW to indicate that the new
 | 
						|
            document corresponds to a new file and not an existing one and
 | 
						|
            @c wxDOC_SILENT to suppress any dialogs asking the user about the
 | 
						|
            file path and type.
 | 
						|
        @return a new document object or @NULL on failure.
 | 
						|
    */
 | 
						|
    virtual wxDocument* CreateDocument(const wxString& path, long flags = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates an empty new document.
 | 
						|
 | 
						|
        This is equivalent to calling CreateDocument() with @c wxDOC_NEW flags
 | 
						|
        and without the file name.
 | 
						|
     */
 | 
						|
    wxDocument *CreateNewDocument();
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new view for the given document. If more than one view is
 | 
						|
        allowed for the document (by virtue of multiple templates mentioning
 | 
						|
        the same document type), a choice of view is presented to the user.
 | 
						|
    */
 | 
						|
    virtual wxView* CreateView(wxDocument* doc, long flags = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Removes the template from the list of templates.
 | 
						|
    */
 | 
						|
    void DisassociateTemplate(wxDocTemplate* temp);
 | 
						|
 | 
						|
    /**
 | 
						|
        Appends the files in the history list to all menus managed by the file
 | 
						|
        history object.
 | 
						|
    */
 | 
						|
    virtual void FileHistoryAddFilesToMenu();
 | 
						|
    /**
 | 
						|
        Appends the files in the history list to the given @a menu only.
 | 
						|
    */
 | 
						|
    virtual void FileHistoryAddFilesToMenu(wxMenu* menu);
 | 
						|
 | 
						|
    /**
 | 
						|
        Loads the file history from a config object.
 | 
						|
 | 
						|
        @see wxConfigBase
 | 
						|
    */
 | 
						|
    virtual void FileHistoryLoad(const wxConfigBase& config);
 | 
						|
 | 
						|
    /**
 | 
						|
        Removes the given menu from the list of menus managed by the file
 | 
						|
        history object.
 | 
						|
    */
 | 
						|
    virtual void FileHistoryRemoveMenu(wxMenu* menu);
 | 
						|
 | 
						|
    /**
 | 
						|
        Saves the file history into a config object. This must be called
 | 
						|
        explicitly by the application.
 | 
						|
 | 
						|
        @see wxConfigBase
 | 
						|
    */
 | 
						|
    virtual void FileHistorySave(wxConfigBase& resourceFile);
 | 
						|
 | 
						|
    /**
 | 
						|
        Use this menu for appending recently-visited document filenames, for
 | 
						|
        convenient access. Calling this function with a valid menu pointer
 | 
						|
        enables the history list functionality.
 | 
						|
 | 
						|
        @note You can add multiple menus using this function, to be managed by
 | 
						|
              the file history object.
 | 
						|
    */
 | 
						|
    virtual void FileHistoryUseMenu(wxMenu* menu);
 | 
						|
 | 
						|
    /**
 | 
						|
        Given a path, try to find template that matches the extension. This is
 | 
						|
        only an approximate method of finding a template for creating a
 | 
						|
        document.
 | 
						|
    */
 | 
						|
    virtual wxDocTemplate* FindTemplateForPath(const wxString& path);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the view to apply a user command to.
 | 
						|
 | 
						|
        This method tries to find the view that the user wants to interact
 | 
						|
        with. It returns the same view as GetCurrentDocument() if there is any
 | 
						|
        currently active view but falls back to the first view of the first
 | 
						|
        document if there is no active view.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
     */
 | 
						|
    wxView* GetAnyUsableView() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the document associated with the currently active view (if
 | 
						|
        any).
 | 
						|
    */
 | 
						|
    wxDocument* GetCurrentDocument() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the currently active view.
 | 
						|
 | 
						|
        This method can return @NULL if no view is currently active.
 | 
						|
 | 
						|
        @see GetAnyUsableView()
 | 
						|
    */
 | 
						|
    virtual wxView* GetCurrentView() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a vector of wxDocument pointers.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
    */
 | 
						|
    wxDocVector GetDocumentsVector() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a vector of wxDocTemplate pointers.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
    */
 | 
						|
    wxDocTemplateVector GetTemplatesVector() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a reference to the list of documents.
 | 
						|
    */
 | 
						|
    wxList& GetDocuments();
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a pointer to file history.
 | 
						|
    */
 | 
						|
    virtual wxFileHistory* GetFileHistory() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the number of files currently stored in the file history.
 | 
						|
    */
 | 
						|
    virtual size_t GetHistoryFilesCount() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the directory last selected by the user when opening a file.
 | 
						|
        Initially empty.
 | 
						|
    */
 | 
						|
    wxString GetLastDirectory() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the number of documents that can be open simultaneously.
 | 
						|
    */
 | 
						|
    int GetMaxDocsOpen() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a reference to the list of associated templates.
 | 
						|
    */
 | 
						|
    wxList& GetTemplates();
 | 
						|
 | 
						|
    /**
 | 
						|
        Initializes data; currently just calls OnCreateFileHistory().
 | 
						|
 | 
						|
        Some data cannot always be initialized in the constructor because the
 | 
						|
        programmer must be given the opportunity to override functionality. If
 | 
						|
        OnCreateFileHistory() was called from the constructor, an overridden
 | 
						|
        virtual OnCreateFileHistory() would not be called due to C++'s
 | 
						|
        'interesting' constructor semantics. In fact Initialize() @e is called
 | 
						|
        from the wxDocManager constructor, but this can be vetoed by passing
 | 
						|
        @false to the second argument, allowing the derived class's constructor
 | 
						|
        to call Initialize(), possibly calling a different
 | 
						|
        OnCreateFileHistory() from the default.
 | 
						|
 | 
						|
        The bottom line: if you're not deriving from Initialize(), forget it
 | 
						|
        and construct wxDocManager with no arguments.
 | 
						|
    */
 | 
						|
    virtual bool Initialize();
 | 
						|
 | 
						|
    /**
 | 
						|
        Return a string containing a suitable default name for a new document.
 | 
						|
        By default this is implemented by appending an integer counter to the
 | 
						|
        string @b unnamed but can be overridden in the derived classes to do
 | 
						|
        something more appropriate.
 | 
						|
    */
 | 
						|
    virtual wxString MakeNewDocumentName();
 | 
						|
 | 
						|
    /**
 | 
						|
        A hook to allow a derived class to create a different type of file
 | 
						|
        history. Called from Initialize().
 | 
						|
    */
 | 
						|
    virtual wxFileHistory* OnCreateFileHistory();
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes and deletes the currently active document.
 | 
						|
    */
 | 
						|
    void OnFileClose(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes and deletes all the currently opened documents.
 | 
						|
    */
 | 
						|
    void OnFileCloseAll(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a document from a list of templates (if more than one
 | 
						|
        template).
 | 
						|
    */
 | 
						|
    void OnFileNew(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new document and reads in the selected file.
 | 
						|
    */
 | 
						|
    void OnFileOpen(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Reverts the current document by calling wxDocument::Revert() for the
 | 
						|
        current document.
 | 
						|
    */
 | 
						|
    void OnFileRevert(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Saves the current document by calling wxDocument::Save() for the
 | 
						|
        current document.
 | 
						|
    */
 | 
						|
    void OnFileSave(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Calls wxDocument::SaveAs() for the current document.
 | 
						|
    */
 | 
						|
    void OnFileSaveAs(wxCommandEvent& event);
 | 
						|
 | 
						|
    /**
 | 
						|
        Removes the document from the list of documents.
 | 
						|
    */
 | 
						|
    void RemoveDocument(wxDocument* doc);
 | 
						|
 | 
						|
    /**
 | 
						|
        Under Windows, pops up a file selector with a list of filters
 | 
						|
        corresponding to document templates. The wxDocTemplate corresponding to
 | 
						|
        the selected file's extension is returned.
 | 
						|
 | 
						|
        On other platforms, if there is more than one document template a
 | 
						|
        choice list is popped up, followed by a file selector.
 | 
						|
 | 
						|
        This function is used in CreateDocument().
 | 
						|
 | 
						|
        @beginWxPerlOnly
 | 
						|
        In wxPerl @a templates is a reference to a list of templates.
 | 
						|
        If you override this method in your document manager it must
 | 
						|
        return two values, e.g.:
 | 
						|
 | 
						|
        @code
 | 
						|
        (doctemplate, path) = My::DocManager->SelectDocumentPath(...);
 | 
						|
        @endcode
 | 
						|
        @endWxPerlOnly
 | 
						|
    */
 | 
						|
    virtual wxDocTemplate* SelectDocumentPath(wxDocTemplate** templates,
 | 
						|
                                              int noTemplates, wxString& path,
 | 
						|
                                              long flags, bool save = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a document template by asking the user (if there is more than
 | 
						|
        one template). This function is used in CreateDocument().
 | 
						|
 | 
						|
        @param templates
 | 
						|
            Pointer to an array of templates from which to choose a desired
 | 
						|
            template.
 | 
						|
        @param noTemplates
 | 
						|
            Number of templates being pointed to by the templates pointer.
 | 
						|
        @param sort
 | 
						|
            If more than one template is passed into templates, then this
 | 
						|
            parameter indicates whether the list of templates that the user
 | 
						|
            will have to choose from is sorted or not when shown the choice box
 | 
						|
            dialog. Default is @false.
 | 
						|
 | 
						|
        @beginWxPerlOnly
 | 
						|
        In wxPerl @a templates is a reference to a list of templates.
 | 
						|
        @endWxPerlOnly
 | 
						|
    */
 | 
						|
    virtual wxDocTemplate* SelectDocumentType(wxDocTemplate** templates,
 | 
						|
                                              int noTemplates,
 | 
						|
                                              bool sort = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a document template by asking the user (if there is more than
 | 
						|
        one template), displaying a list of valid views. This function is used
 | 
						|
        in CreateView(). The dialog normally will not appear because the array
 | 
						|
        of templates only contains those relevant to the document in question,
 | 
						|
        and often there will only be one such.
 | 
						|
 | 
						|
        @param templates
 | 
						|
            Pointer to an array of templates from which to choose a desired
 | 
						|
            template.
 | 
						|
        @param noTemplates
 | 
						|
            Number of templates being pointed to by the templates pointer.
 | 
						|
        @param sort
 | 
						|
            If more than one template is passed into templates, then this
 | 
						|
            parameter indicates whether the list of templates that the user
 | 
						|
            will have to choose from is sorted or not when shown the choice box
 | 
						|
            dialog. Default is @false.
 | 
						|
 | 
						|
        @beginWxPerlOnly
 | 
						|
        In wxPerl @a templates is a reference to a list of templates.
 | 
						|
        @endWxPerlOnly
 | 
						|
    */
 | 
						|
    virtual wxDocTemplate* SelectViewType(wxDocTemplate** templates,
 | 
						|
                                          int noTemplates, bool sort = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the directory to be displayed to the user when opening a file.
 | 
						|
        Initially this is empty.
 | 
						|
    */
 | 
						|
    void SetLastDirectory(const wxString& dir);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the maximum number of documents that can be open at a time. By
 | 
						|
        default, this is @c INT_MAX, i.e. the number of documents is unlimited.
 | 
						|
        If you set it to 1, existing documents will be saved and deleted when
 | 
						|
        the user tries to open or create a new one (similar to the behaviour of
 | 
						|
        Windows Write, for example). Allowing multiple documents gives
 | 
						|
        behaviour more akin to MS Word and other Multiple Document Interface
 | 
						|
        applications.
 | 
						|
    */
 | 
						|
    void SetMaxDocsOpen(int n);
 | 
						|
 | 
						|
 | 
						|
protected:
 | 
						|
    /**
 | 
						|
        Called when a file selected from the MRU list doesn't exist any more.
 | 
						|
 | 
						|
        The default behaviour is to remove the file from the MRU (most recently
 | 
						|
        used) files list and the corresponding menu and notify the user about
 | 
						|
        it but this method can be overridden to customize it.
 | 
						|
 | 
						|
        For example, an application may want to just give an error about the
 | 
						|
        missing file @a filename but not remove it from the file history. Or it
 | 
						|
        could ask the user whether the file should be kept or removed.
 | 
						|
 | 
						|
        Notice that this method is called only if the file selected by user
 | 
						|
        from the MRU files in the menu doesn't exist, but not if opening it
 | 
						|
        failed for any other reason because in the latter case the default
 | 
						|
        behaviour of removing the file from the MRU list is inappropriate.
 | 
						|
        If you still want to do it, you would need to do it by calling
 | 
						|
        RemoveFileFromHistory() explicitly in the part of the file opening code
 | 
						|
        that may fail.
 | 
						|
 | 
						|
        @since 2.9.3
 | 
						|
 | 
						|
        @param n
 | 
						|
            The index of the file in the MRU list, it can be passed to
 | 
						|
            RemoveFileFromHistory() to remove this file from the list.
 | 
						|
        @param filename
 | 
						|
            The full name of the file.
 | 
						|
     */
 | 
						|
    virtual void OnMRUFileNotExist(unsigned n, const wxString& filename);
 | 
						|
 | 
						|
    /**
 | 
						|
        Create the frame used for print preview.
 | 
						|
 | 
						|
        This method can be overridden if you need to change the behaviour or
 | 
						|
        appearance of the preview window. By default, a standard wxPreviewFrame
 | 
						|
        is created.
 | 
						|
 | 
						|
        @since 2.9.1
 | 
						|
 | 
						|
        @param preview The associated preview object.
 | 
						|
        @param parent The parent window for the frame.
 | 
						|
        @param title The suggested title for the print preview frame.
 | 
						|
        @return A new print preview frame, must not return @NULL.
 | 
						|
    */
 | 
						|
    virtual wxPreviewFrame* CreatePreviewFrame(wxPrintPreviewBase* preview,
 | 
						|
                                               wxWindow* parent,
 | 
						|
                                               const wxString& title);
 | 
						|
 | 
						|
    /**
 | 
						|
        The currently active view.
 | 
						|
    */
 | 
						|
    wxView* m_currentView;
 | 
						|
 | 
						|
    /**
 | 
						|
        Stores the integer to be used for the next default document name.
 | 
						|
    */
 | 
						|
    int m_defaultDocumentNameCounter;
 | 
						|
 | 
						|
    /**
 | 
						|
        A list of all documents.
 | 
						|
    */
 | 
						|
    wxList m_docs;
 | 
						|
 | 
						|
    /**
 | 
						|
        A pointer to an instance of wxFileHistory, which manages the history of
 | 
						|
        recently-visited files on the File menu.
 | 
						|
    */
 | 
						|
    wxFileHistory* m_fileHistory;
 | 
						|
 | 
						|
    /**
 | 
						|
        The directory last selected by the user when opening a file.
 | 
						|
    */
 | 
						|
    wxString m_lastDirectory;
 | 
						|
 | 
						|
    /**
 | 
						|
        Stores the maximum number of documents that can be opened before
 | 
						|
        existing documents are closed.
 | 
						|
 | 
						|
        By default, this is @c INT_MAX i.e. practically unlimited.
 | 
						|
    */
 | 
						|
    int m_maxDocsOpen;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxView
 | 
						|
 | 
						|
    The view class can be used to model the viewing and editing component of
 | 
						|
    an application's file-based data. It is part of the document/view framework
 | 
						|
    supported by wxWidgets, and cooperates with the wxDocument, wxDocTemplate
 | 
						|
    and wxDocManager classes.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview_wxview, wxDocument, wxDocTemplate, wxDocManager
 | 
						|
*/
 | 
						|
class wxView : public wxEvtHandler
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor. Define your own default constructor to initialize
 | 
						|
        application-specific data.
 | 
						|
    */
 | 
						|
    wxView();
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor. Removes itself from the document's list of views.
 | 
						|
    */
 | 
						|
    virtual ~wxView();
 | 
						|
 | 
						|
    /**
 | 
						|
        Call this from your view frame's wxDocChildFrame::OnActivate() member
 | 
						|
        to tell the framework which view is currently active. If your windowing
 | 
						|
        system doesn't call wxDocChildFrame::OnActivate(), you may need to call
 | 
						|
        this function from any place where you know the view must be active,
 | 
						|
        and the framework will need to get the current view.
 | 
						|
 | 
						|
        The prepackaged view frame wxDocChildFrame calls Activate() from its
 | 
						|
        wxDocChildFrame::OnActivate() member.
 | 
						|
 | 
						|
        This function calls OnActivateView().
 | 
						|
    */
 | 
						|
    virtual void Activate(bool activate);
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes the view by calling OnClose(). If @a deleteWindow is @true, this
 | 
						|
        function should delete the window associated with the view.
 | 
						|
 | 
						|
        @return @true if the view was closed
 | 
						|
    */
 | 
						|
    virtual bool Close(bool deleteWindow = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets a pointer to the document associated with the view.
 | 
						|
    */
 | 
						|
    wxDocument* GetDocument() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a pointer to the document manager instance associated with this
 | 
						|
        view.
 | 
						|
    */
 | 
						|
    wxDocManager* GetDocumentManager() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the frame associated with the view (if any). Note that this
 | 
						|
        "frame" is not a wxFrame at all in the generic MDI implementation which
 | 
						|
        uses notebook pages instead of frames and this is why this method
 | 
						|
        returns a wxWindow and not a wxFrame.
 | 
						|
    */
 | 
						|
    wxWindow* GetFrame() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the name associated with the view (passed to the wxDocTemplate
 | 
						|
        constructor). Not currently used by the framework.
 | 
						|
    */
 | 
						|
    wxString GetViewName() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Called when a view is activated by means of Activate(). The default
 | 
						|
        implementation does nothing.
 | 
						|
    */
 | 
						|
    virtual void OnActivateView(bool activate, wxView* activeView,
 | 
						|
                                wxView* deactiveView);
 | 
						|
 | 
						|
    /**
 | 
						|
        Called when the filename has changed. The default implementation
 | 
						|
        constructs a suitable title and sets the title of the view frame (if any).
 | 
						|
    */
 | 
						|
    virtual void OnChangeFilename();
 | 
						|
 | 
						|
    /**
 | 
						|
        Implements closing behaviour. The default implementation calls
 | 
						|
        wxDocument::Close() to close the associated document. Does not delete
 | 
						|
        the view. The application may wish to do some cleaning up operations in
 | 
						|
        this function, @e if a call to wxDocument::Close() succeeded. For
 | 
						|
        example, if your views all share the same window, you need to
 | 
						|
        disassociate the window from the view and perhaps clear the window. If
 | 
						|
        @a deleteWindow is @true, delete the frame associated with the view.
 | 
						|
 | 
						|
        Returning @false from this function prevents the view, and possibly the
 | 
						|
        document, from being closed.
 | 
						|
    */
 | 
						|
    virtual bool OnClose(bool deleteWindow);
 | 
						|
 | 
						|
    /**
 | 
						|
        Override this to clean up the view when the document is being closed.
 | 
						|
    */
 | 
						|
    virtual void OnClosingDocument();
 | 
						|
 | 
						|
    /**
 | 
						|
        wxDocManager or wxDocument creates a wxView via a wxDocTemplate. Just
 | 
						|
        after the wxDocTemplate creates the wxView, it calls OnCreate(). The
 | 
						|
        wxView can create a wxDocChildFrame (or derived class) in its
 | 
						|
        wxView::OnCreate() member function. This wxDocChildFrame provides user
 | 
						|
        interface elements to view and/or edit the contents of the wxDocument.
 | 
						|
 | 
						|
        By default, simply returns @true. If the function returns @false, the
 | 
						|
        view will be deleted.
 | 
						|
    */
 | 
						|
    virtual bool OnCreate(wxDocument* doc, long flags);
 | 
						|
 | 
						|
    /**
 | 
						|
        If the printing framework is enabled in the library, this function
 | 
						|
        returns a wxPrintout object for the purposes of printing. It should
 | 
						|
        create a new object every time it is called; the framework will delete
 | 
						|
        objects it creates.
 | 
						|
 | 
						|
        By default, this function returns an instance of wxDocPrintout, which
 | 
						|
        prints and previews one page by calling OnDraw().
 | 
						|
 | 
						|
        Override to return an instance of a class other than wxDocPrintout.
 | 
						|
    */
 | 
						|
    virtual wxPrintout* OnCreatePrintout();
 | 
						|
 | 
						|
    /**
 | 
						|
        Override this function to render the view on the given device context.
 | 
						|
    */
 | 
						|
    virtual void OnDraw(wxDC* dc) = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
        Called when the view should be updated.
 | 
						|
 | 
						|
        @param sender
 | 
						|
            A pointer to the wxView that sent the update request, or @NULL if
 | 
						|
            no single view requested the update (for instance, when the
 | 
						|
            document is opened).
 | 
						|
        @param hint
 | 
						|
            This is unused currently, but may in future contain
 | 
						|
            application-specific information for making updating more
 | 
						|
            efficient.
 | 
						|
    */
 | 
						|
    virtual void OnUpdate(wxView* sender, wxObject* hint = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Associates the given document with the view. Normally called by the
 | 
						|
        framework.
 | 
						|
    */
 | 
						|
    virtual void SetDocument(wxDocument* doc);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the frame associated with this view. The application should call
 | 
						|
        this if possible, to tell the view about the frame.
 | 
						|
 | 
						|
        See GetFrame() for the explanation about the mismatch between the
 | 
						|
        "Frame" in the method name and the type of its parameter.
 | 
						|
    */
 | 
						|
    void SetFrame(wxWindow* frame);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the view type name. Should only be called by the framework.
 | 
						|
    */
 | 
						|
    void SetViewName(const wxString& name);
 | 
						|
 | 
						|
    /**
 | 
						|
        The document associated with this view. There may be more than one view
 | 
						|
        per document, but there can never be more than one document for one
 | 
						|
        view.
 | 
						|
    */
 | 
						|
    wxDocument* m_viewDocument;
 | 
						|
 | 
						|
    /**
 | 
						|
        Frame associated with the view, if any.
 | 
						|
    */
 | 
						|
    wxFrame* m_viewFrame;
 | 
						|
 | 
						|
    /**
 | 
						|
        The view type name given to the wxDocTemplate constructor, copied to
 | 
						|
        this variable when the view is created. Not currently used by the
 | 
						|
        framework.
 | 
						|
    */
 | 
						|
    wxString m_viewTypeName;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxDocChildFrame
 | 
						|
 | 
						|
    The wxDocChildFrame class provides a default frame for displaying documents
 | 
						|
    on separate windows. This class can only be used for SDI (not MDI) child
 | 
						|
    frames.
 | 
						|
 | 
						|
    The class is part of the document/view framework supported by wxWidgets,
 | 
						|
    and cooperates with the wxView, wxDocument, wxDocManager and wxDocTemplate
 | 
						|
    classes.
 | 
						|
 | 
						|
    Notice that this class handles ::wxEVT_ACTIVATE event and activates the
 | 
						|
    child view on receiving it. Don't intercept this event unless you want to
 | 
						|
    prevent from this happening.
 | 
						|
 | 
						|
    The same remark applies to ::wxEVT_CLOSE_WINDOW, as wxDocParentFrame the
 | 
						|
    frame handles this event by trying to close the associated view.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview, @ref page_samples_docview, wxFrame
 | 
						|
*/
 | 
						|
class wxDocChildFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor.
 | 
						|
    */
 | 
						|
    wxDocChildFrame(wxDocument* doc, wxView* view, wxFrame* parent,
 | 
						|
                    wxWindowID id, const wxString& title,
 | 
						|
                    const wxPoint& pos = wxDefaultPosition,
 | 
						|
                    const wxSize& size = wxDefaultSize,
 | 
						|
                    long style = wxDEFAULT_FRAME_STYLE,
 | 
						|
                    const wxString& name = wxFrameNameStr);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor.
 | 
						|
    */
 | 
						|
    virtual ~wxDocChildFrame();
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the document associated with this frame.
 | 
						|
    */
 | 
						|
    wxDocument* GetDocument() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the view associated with this frame.
 | 
						|
    */
 | 
						|
    wxView* GetView() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the document for this frame.
 | 
						|
    */
 | 
						|
    void SetDocument(wxDocument* doc);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the view for this frame.
 | 
						|
    */
 | 
						|
    void SetView(wxView* view);
 | 
						|
 | 
						|
    /**
 | 
						|
        The document associated with the frame.
 | 
						|
    */
 | 
						|
    wxDocument* m_childDocument;
 | 
						|
 | 
						|
    /**
 | 
						|
        The view associated with the frame.
 | 
						|
    */
 | 
						|
    wxView* m_childView;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxDocParentFrame
 | 
						|
 | 
						|
    The wxDocParentFrame class provides a default top-level frame for
 | 
						|
    applications using the document/view framework. This class can only be used
 | 
						|
    for SDI (not MDI) parent frames.
 | 
						|
 | 
						|
    It cooperates with the wxView, wxDocument, wxDocManager and wxDocTemplate
 | 
						|
    classes.
 | 
						|
 | 
						|
    Notice that this class processes ::wxEVT_CLOSE_WINDOW event and tries to
 | 
						|
    close all open views from its handler. If all the views can be closed, i.e.
 | 
						|
    if none of them contains unsaved changes or the user decides to not save
 | 
						|
    them, the window is destroyed. Don't intercept this event in your code
 | 
						|
    unless you want to replace this logic.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview, @ref page_samples_docview, wxFrame
 | 
						|
*/
 | 
						|
class wxDocParentFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Default constructor.
 | 
						|
    */
 | 
						|
    wxDocParentFrame();
 | 
						|
    /**
 | 
						|
        Constructor.
 | 
						|
    */
 | 
						|
    wxDocParentFrame(wxDocManager* manager, wxFrame* parent,
 | 
						|
                     wxWindowID id, const wxString& title,
 | 
						|
                     const wxPoint& pos = wxDefaultPosition,
 | 
						|
                     const wxSize& size = wxDefaultSize,
 | 
						|
                     long style = wxDEFAULT_FRAME_STYLE,
 | 
						|
                     const wxString& name = wxFrameNameStr);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor.
 | 
						|
    */
 | 
						|
    virtual ~wxDocParentFrame();
 | 
						|
 | 
						|
    /**
 | 
						|
        Used in two-step construction.
 | 
						|
    */
 | 
						|
    bool Create(wxDocManager* manager, wxFrame* parent, wxWindowID id,
 | 
						|
                const wxString& title, const wxPoint& pos = wxDefaultPosition,
 | 
						|
                const wxSize& size = wxDefaultSize, long style = 541072960,
 | 
						|
                const wxString& name = wxFrameNameStr);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the associated document manager object.
 | 
						|
    */
 | 
						|
    wxDocManager* GetDocumentManager() const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxDocument
 | 
						|
 | 
						|
    The document class can be used to model an application's file-based data.
 | 
						|
 | 
						|
    It is part of the document/view framework supported by wxWidgets, and
 | 
						|
    cooperates with the wxView, wxDocTemplate and wxDocManager classes.
 | 
						|
 | 
						|
    A normal document is the one created without parent document and is
 | 
						|
    associated with a disk file. Since version 2.9.2 wxWidgets also supports a
 | 
						|
    special kind of documents called <em>child documents</em> which are virtual
 | 
						|
    in the sense that they do not correspond to a file but rather to a part of
 | 
						|
    their parent document. Because of this, the child documents can't be
 | 
						|
    created directly by user but can only be created by the parent document
 | 
						|
    (usually when it's being created itself). They also can't be independently
 | 
						|
    saved. A child document has its own view with the corresponding window.
 | 
						|
    This view can be closed by user but, importantly, is also automatically
 | 
						|
    closed when its parent document is closed. Thus, child documents may be
 | 
						|
    convenient for creating additional windows which need to be closed when the
 | 
						|
    main document is. The docview sample demonstrates this use of child
 | 
						|
    documents by creating a child document containing the information about the
 | 
						|
    parameters of the image opened in the main document.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{docview}
 | 
						|
 | 
						|
    @see @ref overview_docview, wxView, wxDocTemplate, wxDocManager
 | 
						|
*/
 | 
						|
class wxDocument : public wxEvtHandler
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor. Define your own default constructor to initialize
 | 
						|
        application-specific data.
 | 
						|
 | 
						|
        @param parent
 | 
						|
            Specifying a non-@c NULL parent document here makes this document a
 | 
						|
            special <em>child document</em>, see their description in the class
 | 
						|
            documentation. Notice that this parameter exists but is ignored in
 | 
						|
            wxWidgets versions prior to 2.9.1.
 | 
						|
    */
 | 
						|
    wxDocument(wxDocument* parent = NULL);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor. Removes itself from the document manager.
 | 
						|
    */
 | 
						|
    virtual ~wxDocument();
 | 
						|
 | 
						|
    /**
 | 
						|
        If the view is not already in the list of views, adds the view and
 | 
						|
        calls OnChangedViewList().
 | 
						|
    */
 | 
						|
    virtual bool AddView(wxView* view);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns true if the document hasn't been modified since the last time
 | 
						|
        it had been saved.
 | 
						|
 | 
						|
        Notice that this function returns @false if the document had been never
 | 
						|
        saved at all, so it may be also used to test whether it makes sense to
 | 
						|
        save the document: if it returns @true, there is nothing to save but if
 | 
						|
        @false is returned, it can be saved, even if it might be not modified
 | 
						|
        (this can be used to create an empty document file by the user).
 | 
						|
 | 
						|
        @see IsModified(), GetDocumentSaved()
 | 
						|
 | 
						|
        @since 2.9.0
 | 
						|
     */
 | 
						|
    bool AlreadySaved() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Activate the first view of the document if any.
 | 
						|
 | 
						|
        This function simply calls the Raise() method of the frame of the first
 | 
						|
        view. You may need to override the Raise() method to get the desired
 | 
						|
        effect if you are not using a standard wxFrame for your view. For
 | 
						|
        instance, if your document is inside its own notebook tab you could
 | 
						|
        implement Raise() like this:
 | 
						|
 | 
						|
        @code
 | 
						|
        void MyNotebookPage::Raise()
 | 
						|
        {
 | 
						|
            wxNotebook* notebook = wxStaticCast(GetParent(), wxNotebook);
 | 
						|
            notebook->SetSelection(notebook->FindPage(this));
 | 
						|
        }
 | 
						|
        @endcode
 | 
						|
 | 
						|
        @see GetFirstView()
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
     */
 | 
						|
    void Activate() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Closes the document, by calling OnSaveModified() and then (if this
 | 
						|
        returned @true) OnCloseDocument(). This does not normally delete the
 | 
						|
        document object, use DeleteAllViews() to do this implicitly.
 | 
						|
 | 
						|
        @return @true if the document was closed
 | 
						|
    */
 | 
						|
    virtual bool Close();
 | 
						|
 | 
						|
    /**
 | 
						|
        Calls wxView::Close() and deletes each view. Deleting the final view
 | 
						|
        will implicitly delete the document itself, because the wxView
 | 
						|
        destructor calls RemoveView(). This in turns calls OnChangedViewList(),
 | 
						|
        whose default implementation is to save and delete the document if no
 | 
						|
        views exist.
 | 
						|
    */
 | 
						|
    virtual bool DeleteAllViews();
 | 
						|
 | 
						|
    /**
 | 
						|
        Virtual method called from OnCloseDocument().
 | 
						|
 | 
						|
        This method may be overridden to perform any additional cleanup which
 | 
						|
        might be needed when the document is closed.
 | 
						|
 | 
						|
        The return value of this method is currently ignored.
 | 
						|
 | 
						|
        The default version does nothing and simply returns @true.
 | 
						|
     */
 | 
						|
    virtual bool DeleteContents();
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a pointer to the command processor associated with this
 | 
						|
        document.
 | 
						|
 | 
						|
        @see wxCommandProcessor
 | 
						|
    */
 | 
						|
    virtual wxCommandProcessor* GetCommandProcessor() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets a pointer to the associated document manager.
 | 
						|
    */
 | 
						|
    virtual wxDocManager* GetDocumentManager() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the document type name for this document. See the comment for
 | 
						|
        @ref m_documentTypeName.
 | 
						|
    */
 | 
						|
    wxString GetDocumentName() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Return true if this document had been already saved.
 | 
						|
 | 
						|
        @see IsModified()
 | 
						|
     */
 | 
						|
    bool GetDocumentSaved() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets a pointer to the template that created the document.
 | 
						|
    */
 | 
						|
    virtual wxDocTemplate* GetDocumentTemplate() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Intended to return a suitable window for using as a parent for
 | 
						|
        document-related dialog boxes. By default, uses the frame associated
 | 
						|
        with the first view.
 | 
						|
    */
 | 
						|
    virtual wxWindow* GetDocumentWindow() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the filename associated with this document, or "" if none is
 | 
						|
        associated.
 | 
						|
    */
 | 
						|
    wxString GetFilename() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        A convenience function to get the first view for a document, because in
 | 
						|
        many cases a document will only have a single view.
 | 
						|
 | 
						|
        @see GetViews()
 | 
						|
    */
 | 
						|
    wxView* GetFirstView() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the title for this document. The document title is used for an
 | 
						|
        associated frame (if any), and is usually constructed by the framework
 | 
						|
        from the filename.
 | 
						|
    */
 | 
						|
    wxString GetTitle() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Return the document name suitable to be shown to the user. The default
 | 
						|
        implementation uses the document title, if any, of the name part of the
 | 
						|
        document filename if it was set or, otherwise, the string @b unnamed.
 | 
						|
    */
 | 
						|
    virtual wxString GetUserReadableName() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a vector of wxView pointers.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
    */
 | 
						|
    wxViewVector GetViewsVector() const;
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Returns the list whose elements are the views on the document.
 | 
						|
 | 
						|
        @see GetFirstView()
 | 
						|
    */
 | 
						|
    wxList& GetViews();
 | 
						|
    const wxList& GetViews() const;
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns true if this document is a child document corresponding to a
 | 
						|
        part of the parent document and not a disk file as usual.
 | 
						|
 | 
						|
        This method can be used to check whether file-related operations make
 | 
						|
        sense for this document as they only apply to top-level documents and
 | 
						|
        not child ones.
 | 
						|
 | 
						|
        @since 2.9.2
 | 
						|
     */
 | 
						|
    bool IsChildDocument() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns @true if the document has been modified since the last save,
 | 
						|
        @false otherwise. You may need to override this if your document view
 | 
						|
        maintains its own record of being modified.
 | 
						|
 | 
						|
        @see Modify()
 | 
						|
    */
 | 
						|
    virtual bool IsModified() const;
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Override this function and call it from your own LoadObject() before
 | 
						|
        streaming your own data. LoadObject() is called by the framework
 | 
						|
        automatically when the document contents need to be loaded.
 | 
						|
 | 
						|
        @note This version of LoadObject() may not exist depending on how
 | 
						|
              wxWidgets was configured.
 | 
						|
    */
 | 
						|
    virtual istream& LoadObject(istream& stream);
 | 
						|
    virtual wxInputStream& LoadObject(wxInputStream& stream);
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Call with @true to mark the document as modified since the last save,
 | 
						|
        @false otherwise. You may need to override this if your document view
 | 
						|
        maintains its own record of being modified.
 | 
						|
 | 
						|
        @see IsModified()
 | 
						|
    */
 | 
						|
    virtual void Modify(bool modify);
 | 
						|
 | 
						|
    /**
 | 
						|
        Called when a view is added to or deleted from this document. The
 | 
						|
        default implementation saves and deletes the document if no views exist
 | 
						|
        (the last one has just been removed).
 | 
						|
    */
 | 
						|
    virtual void OnChangedViewList();
 | 
						|
 | 
						|
    /**
 | 
						|
        This virtual function is called when the document is being closed.
 | 
						|
 | 
						|
        The default implementation calls DeleteContents() (which may be
 | 
						|
        overridden to perform additional cleanup) and sets the modified flag to
 | 
						|
        @false. You can override it to supply additional behaviour when the
 | 
						|
        document is closed with Close().
 | 
						|
 | 
						|
        Notice that previous wxWidgets versions used to call this function also
 | 
						|
        from OnNewDocument(), rather counter-intuitively. This is no longer the
 | 
						|
        case since wxWidgets 2.9.0.
 | 
						|
 | 
						|
        Returning @false from this function prevents the document from closing.
 | 
						|
        The default implementation does this if the document is modified and
 | 
						|
        the user didn't confirm discarding the modifications to it.
 | 
						|
 | 
						|
        Return @true to allow the document to be closed.
 | 
						|
    */
 | 
						|
    virtual bool OnCloseDocument();
 | 
						|
 | 
						|
    /**
 | 
						|
        Called just after the document object is created to give it a chance to
 | 
						|
        initialize itself.
 | 
						|
 | 
						|
        The default implementation uses the template associated with the
 | 
						|
        document to create an initial view.
 | 
						|
 | 
						|
        For compatibility reasons, this method may either delete the document
 | 
						|
        itself if its initialization fails or not do it in which case it is
 | 
						|
        deleted by caller. It is recommended to delete the document explicitly
 | 
						|
        in this function if it can't be initialized.
 | 
						|
 | 
						|
        @param path
 | 
						|
            The associated file path.
 | 
						|
        @param flags
 | 
						|
            Flags passed to CreateDocument().
 | 
						|
        @return
 | 
						|
            @true if the initialization was successful or @false if it failed.
 | 
						|
    */
 | 
						|
    virtual bool OnCreate(const wxString& path, long flags);
 | 
						|
 | 
						|
    /**
 | 
						|
        Override this function if you want a different (or no) command
 | 
						|
        processor to be created when the document is created. By default, it
 | 
						|
        returns an instance of wxCommandProcessor.
 | 
						|
 | 
						|
        @see wxCommandProcessor
 | 
						|
    */
 | 
						|
    virtual wxCommandProcessor* OnCreateCommandProcessor();
 | 
						|
 | 
						|
    /**
 | 
						|
        The default implementation calls OnSaveModified() and DeleteContents(),
 | 
						|
        makes a default title for the document, and notifies the views that the
 | 
						|
        filename (in fact, the title) has changed.
 | 
						|
    */
 | 
						|
    virtual bool OnNewDocument();
 | 
						|
 | 
						|
    /**
 | 
						|
        Constructs an input file stream for the given filename (which must not
 | 
						|
        be empty), and calls LoadObject(). If LoadObject() returns @true, the
 | 
						|
        document is set to unmodified; otherwise, an error message box is
 | 
						|
        displayed. The document's views are notified that the filename has
 | 
						|
        changed, to give windows an opportunity to update their titles. All of
 | 
						|
        the document's views are then updated.
 | 
						|
    */
 | 
						|
    virtual bool OnOpenDocument(const wxString& filename);
 | 
						|
 | 
						|
    /**
 | 
						|
        Constructs an output file stream for the given filename (which must not
 | 
						|
        be empty), and calls SaveObject(). If SaveObject() returns @true, the
 | 
						|
        document is set to unmodified; otherwise, an error message box is
 | 
						|
        displayed.
 | 
						|
    */
 | 
						|
    virtual bool OnSaveDocument(const wxString& filename);
 | 
						|
 | 
						|
    /**
 | 
						|
        If the document has been modified, prompts the user to ask if the
 | 
						|
        changes should be saved. If the user replies Yes, the Save() function
 | 
						|
        is called. If No, the document is marked as unmodified and the function
 | 
						|
        succeeds. If Cancel, the function fails.
 | 
						|
    */
 | 
						|
    virtual bool OnSaveModified();
 | 
						|
 | 
						|
    /**
 | 
						|
        Removes the view from the document's list of views.
 | 
						|
 | 
						|
        If the view was really removed, also calls OnChangedViewList().
 | 
						|
 | 
						|
        @return @true if the view was removed or @false if the document didn't
 | 
						|
            have this view in the first place.
 | 
						|
    */
 | 
						|
    virtual bool RemoveView(wxView* view);
 | 
						|
 | 
						|
    /**
 | 
						|
        Saves the document by calling OnSaveDocument() if there is an
 | 
						|
        associated filename, or SaveAs() if there is no filename.
 | 
						|
    */
 | 
						|
    virtual bool Save();
 | 
						|
 | 
						|
    /**
 | 
						|
        Prompts the user for a file to save to, and then calls
 | 
						|
        OnSaveDocument().
 | 
						|
    */
 | 
						|
    virtual bool SaveAs();
 | 
						|
 | 
						|
    /**
 | 
						|
        Discard changes and load last saved version.
 | 
						|
 | 
						|
        Prompts the user first, and then calls DoOpenDocument() to reload the
 | 
						|
        current file.
 | 
						|
    */
 | 
						|
    virtual bool Revert();
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Override this function and call it from your own SaveObject() before
 | 
						|
        streaming your own data. SaveObject() is called by the framework
 | 
						|
        automatically when the document contents need to be saved.
 | 
						|
 | 
						|
        @note This version of SaveObject() may not exist depending on how
 | 
						|
              wxWidgets was configured.
 | 
						|
    */
 | 
						|
    virtual ostream& SaveObject(ostream& stream);
 | 
						|
    virtual wxOutputStream& SaveObject(wxOutputStream& stream);
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the command processor to be used for this document. The document
 | 
						|
        will then be responsible for its deletion. Normally you should not call
 | 
						|
        this; override OnCreateCommandProcessor() instead.
 | 
						|
 | 
						|
        @see wxCommandProcessor
 | 
						|
    */
 | 
						|
    virtual void SetCommandProcessor(wxCommandProcessor* processor);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the document type name for this document. See the comment for
 | 
						|
        @ref m_documentTypeName.
 | 
						|
    */
 | 
						|
    void SetDocumentName(const wxString& name);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the pointer to the template that created the document. Should only
 | 
						|
        be called by the framework.
 | 
						|
    */
 | 
						|
    virtual void SetDocumentTemplate(wxDocTemplate* templ);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets if this document has been already saved or not.
 | 
						|
 | 
						|
        Normally there is no need to call this function as the document-view
 | 
						|
        framework does it itself as the documents are loaded from and saved to
 | 
						|
        the files. However it may be useful in some particular cases, for
 | 
						|
        example it may be called with @false argument to prevent the user
 | 
						|
        from saving the just opened document into the same file if this
 | 
						|
        shouldn't be done for some reason (e.g. file format version changes and
 | 
						|
        a new extension should be used for saving).
 | 
						|
 | 
						|
        @see GetDocumentSaved(), AlreadySaved()
 | 
						|
     */
 | 
						|
    void SetDocumentSaved(bool saved = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the filename for this document. Usually called by the framework.
 | 
						|
 | 
						|
        Calls OnChangeFilename() which in turn calls wxView::OnChangeFilename() for
 | 
						|
        all views if @a notifyViews is @true.
 | 
						|
    */
 | 
						|
    void SetFilename(const wxString& filename, bool notifyViews = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        If @a notifyViews is @true, wxView::OnChangeFilename() is called for
 | 
						|
        all views.
 | 
						|
 | 
						|
        @since 2.9.0
 | 
						|
    */
 | 
						|
    virtual void OnChangeFilename(bool notifyViews);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the title for this document. The document title is used for an
 | 
						|
        associated frame (if any), and is usually constructed by the framework
 | 
						|
        from the filename.
 | 
						|
    */
 | 
						|
    void SetTitle(const wxString& title);
 | 
						|
 | 
						|
    /**
 | 
						|
        Updates all views. If @a sender is non-@NULL, does not update this
 | 
						|
        view. @a hint represents optional information to allow a view to
 | 
						|
        optimize its update.
 | 
						|
    */
 | 
						|
    virtual void UpdateAllViews(wxView* sender = NULL, wxObject* hint = NULL);
 | 
						|
 | 
						|
protected:
 | 
						|
    /**
 | 
						|
        This method is called by OnSaveDocument() to really save the document
 | 
						|
        contents to the specified file.
 | 
						|
 | 
						|
        Base class version creates a file-based stream and calls SaveObject().
 | 
						|
        Override this if you need to do something else or prefer not to use
 | 
						|
        SaveObject() at all.
 | 
						|
     */
 | 
						|
    virtual bool DoSaveDocument(const wxString& file);
 | 
						|
 | 
						|
    /**
 | 
						|
        This method is called by OnOpenDocument() to really load the document
 | 
						|
        contents from the specified file.
 | 
						|
 | 
						|
        Base class version creates a file-based stream and calls LoadObject().
 | 
						|
        Override this if you need to do something else or prefer not to use
 | 
						|
        LoadObject() at all.
 | 
						|
     */
 | 
						|
    virtual bool DoOpenDocument(const wxString& file);
 | 
						|
 | 
						|
    /**
 | 
						|
        A pointer to the command processor associated with this document.
 | 
						|
    */
 | 
						|
    wxCommandProcessor* m_commandProcessor;
 | 
						|
 | 
						|
    /**
 | 
						|
        Filename associated with this document ("" if none).
 | 
						|
    */
 | 
						|
    wxString m_documentFile;
 | 
						|
 | 
						|
    /**
 | 
						|
        @true if the document has been modified, @false otherwise.
 | 
						|
    */
 | 
						|
    bool m_documentModified;
 | 
						|
 | 
						|
    /**
 | 
						|
        A pointer to the template from which this document was created.
 | 
						|
    */
 | 
						|
    wxDocTemplate* m_documentTemplate;
 | 
						|
 | 
						|
    /**
 | 
						|
        Document title. The document title is used for an associated frame (if
 | 
						|
        any), and is usually constructed by the framework from the filename.
 | 
						|
    */
 | 
						|
    wxString m_documentTitle;
 | 
						|
 | 
						|
    /**
 | 
						|
        The document type name given to the wxDocTemplate constructor, copied
 | 
						|
        to this variable when the document is created. If several document
 | 
						|
        templates are created that use the same document type, this variable is
 | 
						|
        used in wxDocManager::CreateView() to collate a list of alternative
 | 
						|
        view types that can be used on this kind of document. Do not change the
 | 
						|
        value of this variable.
 | 
						|
    */
 | 
						|
    wxString m_documentTypeName;
 | 
						|
 | 
						|
    /**
 | 
						|
        List of wxView instances associated with this document.
 | 
						|
    */
 | 
						|
    wxList m_documentViews;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// ============================================================================
 | 
						|
// Global functions/macros
 | 
						|
// ============================================================================
 | 
						|
 | 
						|
/** @addtogroup group_funcmacro_file */
 | 
						|
//@{
 | 
						|
 | 
						|
/**
 | 
						|
    Copies the given file to @a stream. Useful when converting an old
 | 
						|
    application to use streams (within the document/view framework, for
 | 
						|
    example).
 | 
						|
 | 
						|
    @header{wx/docview.h}
 | 
						|
*/
 | 
						|
bool wxTransferFileToStream(const wxString& filename,
 | 
						|
                            ostream& stream);
 | 
						|
 | 
						|
/**
 | 
						|
    Copies the given stream to the file @a filename. Useful when converting an
 | 
						|
    old application to use streams (within the document/view framework, for
 | 
						|
    example).
 | 
						|
 | 
						|
    @header{wx/docview.h}
 | 
						|
*/
 | 
						|
bool wxTransferStreamToFile(istream& stream,
 | 
						|
                             const wxString& filename);
 | 
						|
 | 
						|
//@}
 | 
						|
 |