]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/tdocview.tex
added format parameter to File/DirName()
[wxWidgets.git] / docs / latex / wx / tdocview.tex
index 08d9cd7bf6811665f7bbc27017dedf51be1e5da7..0cf6922896967f5a6b3dd4a707d807b34cd4f883 100644 (file)
@@ -2,6 +2,7 @@
 
 Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp
 \helpref{wxDocManager}{wxdocmanager}, \helpref{wxDocParentFrame}{wxdocparentframe}, \helpref{wxDocChildFrame}{wxdocchildframe},
+\rtfsp\helpref{wxDocMDIParentFrame}{wxdocmdiparentframe}, \helpref{wxDocMDIChildFrame}{wxdocmdichildframe},
 \rtfsp\helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor}
 
 The document/view framework is found in most application frameworks, because it
@@ -27,7 +28,7 @@ These are the overall steps involved in creating an application based on the doc
 \item Define your own document and view classes, overriding a minimal set of
 member functions e.g. for input/output, drawing and initialization.
 \item Define any subwindows
-(such as a canvas) that are needed for the view(s). You may need to route some events
+(such as a scrolled window) that are needed for the view(s). You may need to route some events
 to views or documents, for example OnPaint needs to be routed to wxView::OnDraw.
 \item Decide what style of interface you will use: Microsoft's MDI (multiple
 document child frames surrounded by an overall frame), SDI (a separate, unconstrained frame
@@ -61,6 +62,15 @@ class, to provide multi-page document facilities.
 Note that to activate framework functionality, you need to use some or all of
 the wxWindows \helpref{predefined command identifiers}{predefinedids} in your menus.
 
+\perlnote{The document/view framework is available in wxPerl. To use it,
+you will need the following statements in your application code:\par
+{\small
+\begin{verbatim}
+use Wx::DocView;
+use Wx ':docview';   # import constants (optional)
+\end{verbatim}
+}}
+
 \subsection{wxDocument overview}\label{wxdocumentoverview}
 
 \overview{Document/view framework overview}{docviewoverview}
@@ -115,7 +125,7 @@ and \helpref{wxDocManager}{wxdocmanager} classes.
 See the example application in {\tt samples/docview}.
 
 To use the abstract wxView class, you need to derive a new class and override
-at least the member functions OnCreate, OnDraw, OnUpdate and OnClose. You'll probably
+at least the member functions OnCreate, OnDraw, OnUpdate and OnClose. You will probably
 want to override OnMenuCommand to respond to menu commands from the frame containing the
 view.
 
@@ -163,7 +173,7 @@ a single document template is constructed, and dialogs will be appropriately
 simplified.
 
 wxDocTemplate is part of the document/view framework supported by wxWindows,
-and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}
+and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument} 
 and \helpref{wxDocManager}{wxdocmanager} classes.
 
 See the example application in {\tt samples/docview}.
@@ -188,7 +198,7 @@ The wxDocManager class is part of the document/view framework supported by wxWin
 and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp
 and \helpref{wxDocTemplate}{wxdoctemplate} classes.
 
-A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document and
+A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document 
 and template instances, and much functionality is routed through this object, such
 as providing selection and file dialogs. The application can use this class `as is' or
 derive a class and override some members to extend or change the functionality.
@@ -254,42 +264,28 @@ the file history, that will be used for appending the filenames. They are
 appended using menu identifiers in the range wxID\_FILE1 to wxID\_FILE9.
 
 In order to respond to a file load command from one of these identifiers,
-you need to handle them in your wxFrame::OnMenuCommand. Below is the
-code used by the default document/view parent frame.
+you need to handle them using an event handler, for example:
 
+{\small
 \begin{verbatim}
-void wxDocParentFrame::OnMenuCommand(int id)
+BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame)
+    EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit)
+    EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile)
+END_EVENT_TABLE()
+
+void wxDocParentFrame::OnExit(wxCommandEvent& WXUNUSED(event))
 {
-  switch (id)
-  {
-    case wxID_EXIT:
-    {
-      if (GetEventHandler()->OnClose())
-        delete this;
-      break;
-    }
-    case wxID_FILE1:
-    case wxID_FILE2:
-    case wxID_FILE3:
-    case wxID_FILE4:
-    case wxID_FILE5:
-    case wxID_FILE6:
-    case wxID_FILE7:
-    case wxID_FILE8:
-    case wxID_FILE9:
-    {
-      char *f = docManager->GetHistoryFile(id-wxID_FILE1);
-      if (f)
-        (void)docManager->CreateDocument(f, wxDOC_SILENT);
-      break;
-    }
-    default:
-    {
-      docManager->OnMenuCommand(id);
-    }
-  }
+    Close();
+}
+
+void wxDocParentFrame::OnMRUFile(wxCommandEvent& event)
+{
+      wxString f(m_docManager->GetHistoryFile(event.GetId() - wxID_FILE1));
+      if (f != "")
+        (void)m_docManager->CreateDocument(f, wxDOC_SILENT);
 }
 \end{verbatim}
+}
 
 \subsection{wxWindows predefined command identifiers}\label{predefinedids}