]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/mdi/mdi.h
For wxGTK2, link with X11 explicitly, since we use many X11 functions directly.
[wxWidgets.git] / samples / mdi / mdi.h
index cea871baf832bb8aeb40e15abd417076136ec828..4d84f6cf494290eaed91465ae161b6778fc0f731 100644 (file)
@@ -5,17 +5,17 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
-#include <wx/toolbar.h>
+#include "wx/toolbar.h"
 
 // Define a new application
 class MyApp : public wxApp
 {
 public:
 
 // Define a new application
 class MyApp : public wxApp
 {
 public:
-    bool OnInit();
+    virtual bool OnInit();
 };
 
 class MyCanvas : public wxScrolledWindow
 };
 
 class MyCanvas : public wxScrolledWindow
@@ -26,9 +26,13 @@ public:
 
     bool IsDirty() const { return m_dirty; }
 
 
     bool IsDirty() const { return m_dirty; }
 
-    void OnEvent(wxMouseEvent& event);
+    void SetText(const wxString& text) { m_text = text; Refresh(); }
 
 private:
 
 private:
+    void OnEvent(wxMouseEvent& event);
+
+    wxString m_text;
+
     bool m_dirty;
 
     DECLARE_EVENT_TABLE()
     bool m_dirty;
 
     DECLARE_EVENT_TABLE()
@@ -38,37 +42,77 @@ private:
 class MyFrame : public wxMDIParentFrame
 {
 public:
 class MyFrame : public wxMDIParentFrame
 {
 public:
-    wxTextCtrl *textWindow;
+    MyFrame();
+    virtual ~MyFrame();
 
 
-    MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
-            const wxPoint& pos, const wxSize& size, const long style);
+    static wxMenuBar *CreateMainMenubar();
 
 
+private:
     void InitToolBar(wxToolBar* toolBar);
 
     void OnSize(wxSizeEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnNewWindow(wxCommandEvent& event);
     void InitToolBar(wxToolBar* toolBar);
 
     void OnSize(wxSizeEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnNewWindow(wxCommandEvent& event);
+    void OnFullScreen(wxCommandEvent& event);
     void OnQuit(wxCommandEvent& event);
     void OnQuit(wxCommandEvent& event);
+    void OnCloseAll(wxCommandEvent& event);
+
     void OnClose(wxCloseEvent& event);
 
     void OnClose(wxCloseEvent& event);
 
+    wxTextCtrl *m_textWindow;
+
     DECLARE_EVENT_TABLE()
 };
 
     DECLARE_EVENT_TABLE()
 };
 
-class MyChild: public wxMDIChildFrame
+class MyChild : public wxMDIChildFrame
 {
 public:
 {
 public:
-    MyCanvas *canvas;
-    MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
-    ~MyChild();
+    MyChild(wxMDIParentFrame *parent);
+    virtual ~MyChild();
+
+    static unsigned GetChildrenCount() { return ms_numChildren; }
 
 
+private:
     void OnActivate(wxActivateEvent& event);
 
     void OnRefresh(wxCommandEvent& event);
     void OnActivate(wxActivateEvent& event);
 
     void OnRefresh(wxCommandEvent& event);
+    void OnUpdateRefresh(wxUpdateUIEvent& event);
     void OnChangeTitle(wxCommandEvent& event);
     void OnChangeTitle(wxCommandEvent& event);
-    void OnQuit(wxCommandEvent& event);
-    void OnClose(wxCloseEvent& event);
+    void OnChangePosition(wxCommandEvent& event);
+    void OnChangeSize(wxCommandEvent& event);
+    void OnClose(wxCommandEvent& event);
+    void OnSize(wxSizeEvent& event);
+    void OnMove(wxMoveEvent& event);
+    void OnCloseWindow(wxCloseEvent& event);
 
 
-    void OnUpdateRefresh(wxUpdateUIEvent& event);
+#if wxUSE_CLIPBOARD
+    void OnPaste(wxCommandEvent& event);
+    void OnUpdatePaste(wxUpdateUIEvent& event);
+#endif // wxUSE_CLIPBOARD
+
+    static unsigned ms_numChildren;
+
+    MyCanvas *m_canvas;
+
+    // simple test event handler class
+    class EventHandler : public wxEvtHandler
+    {
+    public:
+        EventHandler(unsigned numChild) : m_numChild(numChild) { }
+
+    private:
+        void OnRefresh(wxCommandEvent& event)
+        {
+            wxLogMessage("Child #%u refreshed.", m_numChild);
+            event.Skip();
+        }
+
+        const unsigned m_numChild;
+
+        DECLARE_EVENT_TABLE()
+
+        wxDECLARE_NO_COPY_CLASS(EventHandler);
+    };
 
     DECLARE_EVENT_TABLE()
 };
 
     DECLARE_EVENT_TABLE()
 };
@@ -76,10 +120,9 @@ public:
 // menu items ids
 enum
 {
 // menu items ids
 enum
 {
-    MDI_QUIT = 100,
-    MDI_NEW_WINDOW,
+    MDI_FULLSCREEN = 100,
     MDI_REFRESH,
     MDI_CHANGE_TITLE,
     MDI_REFRESH,
     MDI_CHANGE_TITLE,
-    MDI_CHILD_QUIT,
-    MDI_ABOUT
+    MDI_CHANGE_POSITION,
+    MDI_CHANGE_SIZE
 };
 };