Review/simplify/cleanup MDI classes for all platforms and introduce base

classes for wxMDI{Parent,Child}Frame and wxMDIClientWindow.

Also use generic MDI implementation for wxMotif as it seems to be more
functional and definitely is more maintained (we probably should use the
generic version for wxGTK too).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-11-04 02:46:19 +00:00
parent 85d98dfe88
commit d2824cdb7f
21 changed files with 1703 additions and 2393 deletions

View File

@@ -15,7 +15,7 @@
class MyApp : public wxApp
{
public:
bool OnInit();
virtual bool OnInit();
};
class MyCanvas : public wxScrolledWindow
@@ -26,11 +26,11 @@ public:
bool IsDirty() const { return m_dirty; }
void OnEvent(wxMouseEvent& event);
void SetText(const wxString& text) { m_text = text; Refresh(); }
private:
void OnEvent(wxMouseEvent& event);
wxString m_text;
bool m_dirty;
@@ -42,11 +42,10 @@ private:
class MyFrame : public wxMDIParentFrame
{
public:
wxTextCtrl *textWindow;
MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
const wxPoint& pos, const wxSize& size, const long style);
MyFrame();
virtual ~MyFrame();
private:
void InitToolBar(wxToolBar* toolBar);
void OnSize(wxSizeEvent& event);
@@ -55,16 +54,20 @@ public:
void OnQuit(wxCommandEvent& event);
void OnClose(wxCloseEvent& event);
wxTextCtrl *m_textWindow;
DECLARE_EVENT_TABLE()
};
class MyChild: public wxMDIChildFrame
class MyChild : public wxMDIChildFrame
{
public:
MyCanvas *canvas;
MyChild(wxMDIParentFrame *parent, const wxString& title);
~MyChild();
MyChild(wxMDIParentFrame *parent);
virtual ~MyChild();
static unsigned GetChildrenCount() { return ms_numChildren; }
private:
void OnActivate(wxActivateEvent& event);
void OnRefresh(wxCommandEvent& event);
@@ -72,28 +75,28 @@ public:
void OnChangeTitle(wxCommandEvent& event);
void OnChangePosition(wxCommandEvent& event);
void OnChangeSize(wxCommandEvent& event);
void OnQuit(wxCommandEvent& event);
void OnClose(wxCommandEvent& event);
void OnSize(wxSizeEvent& event);
void OnMove(wxMoveEvent& event);
void OnClose(wxCloseEvent& event);
void OnCloseWindow(wxCloseEvent& event);
#if wxUSE_CLIPBOARD
void OnPaste(wxCommandEvent& event);
void OnUpdatePaste(wxUpdateUIEvent& event);
#endif // wxUSE_CLIPBOARD
static unsigned ms_numChildren;
MyCanvas *m_canvas;
DECLARE_EVENT_TABLE()
};
// menu items ids
enum
{
MDI_QUIT = wxID_EXIT,
MDI_NEW_WINDOW = 101,
MDI_REFRESH,
MDI_CHANGE_TITLE,
MDI_CHANGE_POSITION,
MDI_CHANGE_SIZE,
MDI_CHILD_QUIT,
MDI_ABOUT = wxID_ABOUT
MDI_CHANGE_SIZE
};