1/////////////////////////////////////////////////////////////////////////////
2// Name:        mdi.cpp
3// Purpose:     MDI sample
4// Author:      Julian Smart
5// Modified by:
6// Created:     04/01/98
7// RCS-ID:      $Id: mdi.h 40267 2006-07-24 13:36:22Z VZ $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12#include "wx/toolbar.h"
13
14// Define a new application
15class MyApp : public wxApp
16{
17public:
18    bool OnInit();
19};
20
21class MyCanvas : public wxScrolledWindow
22{
23public:
24    MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size);
25    virtual void OnDraw(wxDC& dc);
26
27    bool IsDirty() const { return m_dirty; }
28
29    void OnEvent(wxMouseEvent& event);
30
31    void SetText(const wxString& text) { m_text = text; Refresh(); }
32
33private:
34    wxString m_text;
35
36    bool m_dirty;
37
38    DECLARE_EVENT_TABLE()
39};
40
41// Define a new frame
42class MyFrame : public wxMDIParentFrame
43{
44public:
45    wxTextCtrl *textWindow;
46
47    MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
48            const wxPoint& pos, const wxSize& size, const long style);
49
50    void InitToolBar(wxToolBar* toolBar);
51
52    void OnSize(wxSizeEvent& event);
53    void OnAbout(wxCommandEvent& event);
54    void OnNewWindow(wxCommandEvent& event);
55    void OnQuit(wxCommandEvent& event);
56    void OnClose(wxCloseEvent& event);
57
58    DECLARE_EVENT_TABLE()
59};
60
61class MyChild: public wxMDIChildFrame
62{
63public:
64    MyCanvas *canvas;
65    MyChild(wxMDIParentFrame *parent, const wxString& title);
66    ~MyChild();
67
68    void OnActivate(wxActivateEvent& event);
69
70    void OnRefresh(wxCommandEvent& event);
71    void OnUpdateRefresh(wxUpdateUIEvent& event);
72    void OnChangeTitle(wxCommandEvent& event);
73    void OnChangePosition(wxCommandEvent& event);
74    void OnChangeSize(wxCommandEvent& event);
75    void OnQuit(wxCommandEvent& event);
76    void OnSize(wxSizeEvent& event);
77    void OnMove(wxMoveEvent& event);
78    void OnClose(wxCloseEvent& event);
79
80#if wxUSE_CLIPBOARD
81    void OnPaste(wxCommandEvent& event);
82    void OnUpdatePaste(wxUpdateUIEvent& event);
83#endif // wxUSE_CLIPBOARD
84
85    DECLARE_EVENT_TABLE()
86};
87
88// menu items ids
89enum
90{
91    MDI_QUIT = wxID_EXIT,
92    MDI_NEW_WINDOW = 101,
93    MDI_REFRESH,
94    MDI_CHANGE_TITLE,
95    MDI_CHANGE_POSITION,
96    MDI_CHANGE_SIZE,
97    MDI_CHILD_QUIT,
98    MDI_ABOUT = wxID_ABOUT
99};
100