]> git.saurik.com Git - wxWidgets.git/commitdiff
No changes, just simplify docview sample a bit.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 10 Nov 2010 00:36:39 +0000 (00:36 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 10 Nov 2010 00:36:39 +0000 (00:36 +0000)
Remove some unnecessary function arguments and m_frame member variable.

Closes #12374.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/docview/docview.cpp
samples/docview/docview.h
samples/docview/view.cpp
samples/docview/view.h

index d69c597feb47b7f9bf1ef4d63ce3d90141a1412e..e95442160835af699edf22237e0133c12f627ddf 100644 (file)
@@ -228,8 +228,8 @@ bool MyApp::OnInit()
     CreateMenuBarForFrame(frame, menuFile, m_menuEdit);
 
     frame->SetIcon(wxICON(doc));
-    frame->Centre(wxBOTH);
-    frame->Show(true);
+    frame->Centre();
+    frame->Show();
 
     SetTopWindow(frame);
     return true;
@@ -285,10 +285,11 @@ void MyApp::CreateMenuBarForFrame(wxFrame *frame, wxMenu *file, wxMenu *edit)
     frame->SetMenuBar(menubar);
 }
 
-wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas)
+wxFrame *MyApp::CreateChildFrame(wxView *view, bool isCanvas)
 {
     // create a child frame of appropriate class for the current mode
     wxFrame *subframe;
+    wxDocument *doc = view->GetDocument();
 #if wxUSE_MDI_ARCHITECTURE
     if ( GetMode() == Mode_MDI )
     {
@@ -317,7 +318,7 @@ wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas)
                             wxSize(300, 300)
                        );
 
-        subframe->Centre(wxBOTH);
+        subframe->Centre();
     }
 
     wxMenu *menuFile = new wxMenu;
index ff2139cb8b0aada24c4a8c4d2ab4d71804d05e98..0c7708c24b32a66ef1a1197728cf13083277b016 100644 (file)
@@ -44,7 +44,7 @@ public:
 
     // our specific methods
     Mode GetMode() const { return m_mode; }
-    wxFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas);
+    wxFrame *CreateChildFrame(wxView *view, bool isCanvas);
 
     // these accessors should only be called in single document mode, otherwise
     // the pointers are NULL and an assert is triggered
index 6129bac8a36f69e119042dd474896244886a3e49..bfc5af2e91f7882a4baa5bb3725903baa2bce504 100644 (file)
@@ -41,36 +41,30 @@ END_EVENT_TABLE()
 
 // What to do when a view is created. Creates actual
 // windows for displaying the view.
-bool DrawingView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
+bool DrawingView::OnCreate(wxDocument *doc, long flags)
 {
+    if ( !wxView::OnCreate(doc, flags) )
+        return false;
+
     MyApp& app = wxGetApp();
     if ( app.GetMode() != MyApp::Mode_Single )
     {
         // create a new window and canvas inside it
-        m_frame = app.CreateChildFrame(doc, this, true);
-        m_frame->SetTitle("Drawing View");
-
-        m_canvas = new MyCanvas(this, m_frame);
-        m_frame->Show(true);
+        wxFrame* frame = app.CreateChildFrame(this, true);
+        wxASSERT(frame == GetFrame());
+        m_canvas = new MyCanvas(this);
     }
     else // single document mode
     {
         // reuse the existing window and canvas
-        m_frame = wxStaticCast(app.GetTopWindow(), wxFrame);
         m_canvas = app.GetMainWindowCanvas();
         m_canvas->SetView(this);
 
-        // Associate the appropriate frame with this view.
-        SetFrame(m_frame);
-
-        // Make sure the document manager knows that this is the
-        // current view.
-        Activate(true);
-
         // Initialize the edit menu Undo and Redo items
         doc->GetCommandProcessor()->SetEditMenu(app.GetMainWindowEditMenu());
         doc->GetCommandProcessor()->Initialize();
     }
+    GetFrame()->Show();
 
     return true;
 }
@@ -126,17 +120,17 @@ bool DrawingView::OnClose(bool deleteWindow)
         m_canvas->ResetView();
         m_canvas = NULL;
 
-        if ( m_frame )
-            m_frame->SetTitle(wxTheApp->GetAppDisplayName());
+        if (GetFrame())
+            wxStaticCast(GetFrame(), wxFrame)->SetTitle(wxTheApp->GetAppDisplayName());
     }
     else // not single window mode
     {
         if ( deleteWindow )
-            wxDELETE(m_frame);
+        {
+            GetFrame()->Destroy();
+            SetFrame(NULL);
+        }
     }
-
-    SetFrame(NULL);
-
     return true;
 }
 
@@ -159,17 +153,17 @@ BEGIN_EVENT_TABLE(TextEditView, wxView)
     EVT_MENU(wxID_SELECTALL, TextEditView::OnSelectAll)
 END_EVENT_TABLE()
 
-bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags))
+bool TextEditView::OnCreate(wxDocument *doc, long flags)
 {
-    m_frame = wxGetApp().CreateChildFrame(doc, this, false);
-    m_text = new wxTextCtrl(m_frame, wxID_ANY, "",
-                            wxPoint(0, 0), m_frame->GetClientSize(),
-                            wxTE_MULTILINE);
-
-    m_frame->SetTitle("Text View");
-    m_frame->Show(true);
+    if ( !wxView::OnCreate(doc, flags) )
+        return false;
 
-    Activate(true);
+    wxFrame* frame = wxGetApp().CreateChildFrame(this, false);
+    wxASSERT(frame == GetFrame());
+    m_text = new wxTextCtrl(frame, wxID_ANY, "",
+                            wxDefaultPosition, wxDefaultSize,
+                            wxTE_MULTILINE);
+    frame->Show();
 
     return true;
 }
@@ -193,9 +187,11 @@ bool TextEditView::OnClose(bool deleteWindow)
     else // not single window mode
     {
         if ( deleteWindow )
-            wxDELETE(m_frame);
+        {
+            GetFrame()->Destroy();
+            SetFrame(NULL);
+        }
     }
-
     return true;
 }
 
@@ -209,7 +205,7 @@ END_EVENT_TABLE()
 
 // Define a constructor for my canvas
 MyCanvas::MyCanvas(wxView *view, wxWindow *parent)
-    : wxScrolledWindow(parent, wxID_ANY, wxPoint(0, 0), parent->GetClientSize())
+    : wxScrolledWindow(parent ? parent : view->GetFrame())
 {
     m_view = view;
     m_currentSegment = NULL;
@@ -287,12 +283,11 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event)
 // ----------------------------------------------------------------------------
 
 // Define a constructor for my canvas
-ImageCanvas::ImageCanvas(wxView* view, wxWindow* parent)
-    : wxScrolledWindow(parent, wxID_ANY, wxPoint(0, 0), parent->GetClientSize())
+ImageCanvas::ImageCanvas(wxView* view)
+    : wxScrolledWindow(view->GetFrame())
 {
-    SetScrollRate( 10, 10 );
-
     m_view = view;
+    SetScrollRate( 10, 10 );
 }
 
 // Define the repainting behaviour
@@ -313,13 +308,16 @@ ImageDocument* ImageView::GetDocument()
     return wxStaticCast(wxView::GetDocument(), ImageDocument);
 }
 
-bool ImageView::OnCreate(wxDocument* doc, long WXUNUSED(flags))
+bool ImageView::OnCreate(wxDocument* doc, long flags)
 {
-    m_frame = wxGetApp().CreateChildFrame(doc, this, false);
-    m_frame->SetTitle("Image View");
-    m_canvas = new ImageCanvas(this, m_frame);
-    m_frame->Show(true);
-    Activate(true);
+    if ( !wxView::OnCreate(doc, flags) )
+        return false;
+
+    wxFrame* frame = wxGetApp().CreateChildFrame(this, false);
+    wxASSERT(frame == GetFrame());
+    m_canvas = new ImageCanvas(this);
+    frame->Show();
+
     return true;
 }
 
@@ -356,7 +354,10 @@ bool ImageView::OnClose(bool deleteWindow)
     else // not single window mode
     {
         if ( deleteWindow )
-            wxDELETE(m_frame);
+        {
+            GetFrame()->Destroy();
+            SetFrame(NULL);
+        }
     }
     return true;
 }
index 8018ee429b5ae7f0c7f54c59f56b8af3859b7dbc..8bbc37c2baae52234184688a03b4dfbf56a5b82d 100644 (file)
@@ -25,7 +25,7 @@ class MyCanvas : public wxScrolledWindow
 public:
     // view may be NULL if we're not associated with one yet, but parent must
     // be a valid pointer
-    MyCanvas(wxView *view, wxWindow *parent);
+    MyCanvas(wxView *view, wxWindow *parent = NULL);
     virtual ~MyCanvas();
 
     virtual void OnDraw(wxDC& dc);
@@ -67,7 +67,7 @@ private:
 class DrawingView : public wxView
 {
 public:
-    DrawingView() { m_canvas = NULL; m_frame = NULL; }
+    DrawingView() : wxView(), m_canvas(NULL) {}
 
     virtual bool OnCreate(wxDocument *doc, long flags);
     virtual void OnDraw(wxDC *dc);
@@ -79,7 +79,6 @@ public:
 private:
     void OnCut(wxCommandEvent& event);
 
-    wxFrame *m_frame;
     MyCanvas *m_canvas;
 
     DECLARE_EVENT_TABLE()
@@ -94,7 +93,7 @@ private:
 class TextEditView : public wxView
 {
 public:
-    TextEditView() : wxView() { m_frame = NULL; m_text = NULL; }
+    TextEditView() : wxView(), m_text(NULL) {}
 
     virtual bool OnCreate(wxDocument *doc, long flags);
     virtual void OnDraw(wxDC *dc);
@@ -107,7 +106,6 @@ private:
     void OnPaste(wxCommandEvent& WXUNUSED(event)) { m_text->Paste(); }
     void OnSelectAll(wxCommandEvent& WXUNUSED(event)) { m_text->SelectAll(); }
 
-    wxFrame *m_frame;
     wxTextCtrl *m_text;
 
     DECLARE_EVENT_TABLE()
@@ -121,29 +119,9 @@ private:
 class ImageCanvas : public wxScrolledWindow
 {
 public:
-    ImageCanvas(wxView*, wxWindow* parent);
+    ImageCanvas(wxView*);
 
     virtual void OnDraw(wxDC& dc);
-
-    // in a normal multiple document application a canvas is associated with
-    // one view from the beginning until the end, but to support the single
-    // document mode in which all documents reuse the same MyApp::GetCanvas()
-    // we need to allow switching the canvas from one view to another one
-
-    void SetView(wxView* view)
-    {
-        wxASSERT_MSG( !m_view, "shouldn't be already associated with a view" );
-
-        m_view = view;
-    }
-
-    void ResetView()
-    {
-        wxASSERT_MSG( m_view, "should be associated with a view" );
-
-        m_view = NULL;
-    }
-
 private:
     wxView *m_view;
 };
@@ -155,7 +133,7 @@ private:
 class ImageView : public wxView
 {
 public:
-    ImageView() : wxView(), m_frame(NULL) {}
+    ImageView() : wxView() {}
 
     virtual bool OnCreate(wxDocument*, long flags);
     virtual void OnDraw(wxDC*);
@@ -165,7 +143,6 @@ public:
     ImageDocument* GetDocument();
 
 private:
-    wxFrame* m_frame;
     ImageCanvas* m_canvas;
 
     DECLARE_DYNAMIC_CLASS(ImageView)