X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2049ba38adafa0ec146880de29f26e32dd69a125..f155075229d771430f0793700f5048ad4be00e9d:/samples/mdi/mdi.h?ds=inline diff --git a/samples/mdi/mdi.h b/samples/mdi/mdi.h index 3773699422..4d84f6cf49 100644 --- a/samples/mdi/mdi.h +++ b/samples/mdi/mdi.h @@ -5,86 +5,124 @@ // 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 ///////////////////////////////////////////////////////////////////////////// -#ifdef __WXMSW__ -#ifdef __WIN95__ -#define wxToolBar wxToolBar95 -#else -#define wxToolBar wxToolBarMSW -#endif -#endif +#include "wx/toolbar.h" // Define a new application -class MyApp: public wxApp +class MyApp : public wxApp { - public: - bool OnInit(void); +public: + virtual bool OnInit(); }; -class MyCanvas: public wxScrolledWindow +class MyCanvas : public wxScrolledWindow { - public: +public: MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size); virtual void OnDraw(wxDC& dc); + + bool IsDirty() const { return m_dirty; } + + void SetText(const wxString& text) { m_text = text; Refresh(); } + +private: void OnEvent(wxMouseEvent& event); - DECLARE_EVENT_TABLE() -}; + wxString m_text; -#ifdef __WXMSW__ + bool m_dirty; -class TestRibbon: public wxToolBar -{ - public: - TestRibbon(wxFrame *frame, int x = 0, int y = 0, int w = -1, int h = -1, - long style = wxNO_BORDER, int direction = wxVERTICAL, int RowsOrColumns = 2); - bool OnLeftClick(int toolIndex, bool toggled); - void OnMouseEnter(int toolIndex); - void OnPaint(wxPaintEvent& event); - - DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() }; -#endif - // Define a new frame -class MyFrame: public wxMDIParentFrame +class MyFrame : public wxMDIParentFrame { - public: - wxTextCtrl *textWindow; - -#ifdef __WXMSW__ - TestRibbon* toolBar; -#endif - - MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); - bool OnClose(void); +public: + MyFrame(); + virtual ~MyFrame(); + + static wxMenuBar *CreateMainMenubar(); + +private: + 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 OnCloseAll(wxCommandEvent& event); + + void OnClose(wxCloseEvent& event); -DECLARE_EVENT_TABLE() + wxTextCtrl *m_textWindow; + + DECLARE_EVENT_TABLE() }; -class MyChild: public wxMDIChildFrame +class MyChild : public wxMDIChildFrame { - public: - MyCanvas *canvas; - MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); - ~MyChild(void); - bool OnClose(void); +public: + MyChild(wxMDIParentFrame *parent); + virtual ~MyChild(); + + static unsigned GetChildrenCount() { return ms_numChildren; } + +private: void OnActivate(wxActivateEvent& event); - void OnQuit(wxCommandEvent& event); -DECLARE_EVENT_TABLE() + void OnRefresh(wxCommandEvent& event); + void OnUpdateRefresh(wxUpdateUIEvent& event); + void OnChangeTitle(wxCommandEvent& 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); + +#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() }; -#define MDI_QUIT 1 -#define MDI_NEW_WINDOW 2 -#define MDI_REFRESH 3 -#define MDI_CHILD_QUIT 4 -#define MDI_ABOUT 5 +// menu items ids +enum +{ + MDI_FULLSCREEN = 100, + MDI_REFRESH, + MDI_CHANGE_TITLE, + MDI_CHANGE_POSITION, + MDI_CHANGE_SIZE +};