X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/189da67c55cb8ce76725d77e58b76c1fc666d9a6..b20573601fb6a6f350eb155433c39ca1532a226d:/include/wx/aui/tabmdi.h diff --git a/include/wx/aui/tabmdi.h b/include/wx/aui/tabmdi.h index a148320832..b677a0fdf2 100644 --- a/include/wx/aui/tabmdi.h +++ b/include/wx/aui/tabmdi.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/mdig.h +// Name: wx/generic/tabmdi.h // Purpose: Generic MDI (Multiple Document Interface) classes // Author: Hans Van Leemputten // Modified by: Benjamin I. Williams / Kirix Corporation @@ -12,6 +12,8 @@ #ifndef _WX_AUITABMDI_H_ #define _WX_AUITABMDI_H_ +#if wxUSE_AUI + // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -19,28 +21,26 @@ #include "wx/frame.h" #include "wx/panel.h" #include "wx/notebook.h" +#include "wx/icon.h" #include "wx/aui/auibook.h" -extern WXDLLEXPORT_DATA(const wxChar) wxFrameNameStr[]; -extern WXDLLEXPORT_DATA(const wxChar) wxStatusLineNameStr[]; - //----------------------------------------------------------------------------- // classes //----------------------------------------------------------------------------- -class WXDLLEXPORT wxTabMDIParentFrame; -class WXDLLEXPORT wxTabMDIClientWindow; -class WXDLLEXPORT wxTabMDIChildFrame; +class WXDLLIMPEXP_FWD_AUI wxAuiMDIParentFrame; +class WXDLLIMPEXP_FWD_AUI wxAuiMDIClientWindow; +class WXDLLIMPEXP_FWD_AUI wxAuiMDIChildFrame; //----------------------------------------------------------------------------- -// wxTabMDIParentFrame +// wxAuiMDIParentFrame //----------------------------------------------------------------------------- -class WXDLLEXPORT wxTabMDIParentFrame : public wxFrame +class WXDLLIMPEXP_AUI wxAuiMDIParentFrame : public wxFrame { public: - wxTabMDIParentFrame(); - wxTabMDIParentFrame(wxWindow *parent, + wxAuiMDIParentFrame(); + wxAuiMDIParentFrame(wxWindow *parent, wxWindowID winid, const wxString& title, const wxPoint& pos = wxDefaultPosition, @@ -48,8 +48,8 @@ public: long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, const wxString& name = wxFrameNameStr); - ~wxTabMDIParentFrame(); - + ~wxAuiMDIParentFrame(); + bool Create(wxWindow *parent, wxWindowID winid, const wxString& title, @@ -58,33 +58,38 @@ public: long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, const wxString& name = wxFrameNameStr ); + void SetArtProvider(wxAuiTabArt* provider); + wxAuiTabArt* GetArtProvider(); + wxAuiNotebook* GetNotebook() const; + #if wxUSE_MENUS - wxMenu* GetWindowMenu() const { return m_pWindowMenu; }; + wxMenu* GetWindowMenu() const { return m_pWindowMenu; } void SetWindowMenu(wxMenu* pMenu); virtual void SetMenuBar(wxMenuBar *pMenuBar); #endif // wxUSE_MENUS - void SetChildMenuBar(wxTabMDIChildFrame *pChild); + void SetChildMenuBar(wxAuiMDIChildFrame *pChild); virtual bool ProcessEvent(wxEvent& event); - wxTabMDIChildFrame *GetActiveChild() const; - inline void SetActiveChild(wxTabMDIChildFrame* pChildFrame); + wxAuiMDIChildFrame *GetActiveChild() const; + void SetActiveChild(wxAuiMDIChildFrame* pChildFrame); - wxTabMDIClientWindow *GetClientWindow() const; - virtual wxTabMDIClientWindow *OnCreateClient(); + wxAuiMDIClientWindow *GetClientWindow() const; + virtual wxAuiMDIClientWindow *OnCreateClient(); virtual void Cascade() { /* Has no effect */ } - virtual void Tile(wxOrientation WXUNUSED(orient) = wxHORIZONTAL) { } + virtual void Tile(wxOrientation orient = wxHORIZONTAL); virtual void ArrangeIcons() { /* Has no effect */ } virtual void ActivateNext(); virtual void ActivatePrevious(); protected: - wxTabMDIClientWindow *m_pClientWindow; - wxTabMDIChildFrame *m_pActiveChild; - + wxAuiMDIClientWindow* m_pClientWindow; + wxAuiMDIChildFrame* m_pActiveChild; + wxEvent* m_pLastEvt; + #if wxUSE_MENUS wxMenu *m_pWindowMenu; wxMenuBar *m_pMyMenuBar; @@ -104,18 +109,18 @@ protected: private: DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTabMDIParentFrame) + DECLARE_DYNAMIC_CLASS(wxAuiMDIParentFrame) }; //----------------------------------------------------------------------------- -// wxTabMDIChildFrame +// wxAuiMDIChildFrame //----------------------------------------------------------------------------- -class WXDLLEXPORT wxTabMDIChildFrame : public wxPanel +class WXDLLIMPEXP_AUI wxAuiMDIChildFrame : public wxPanel { public: - wxTabMDIChildFrame(); - wxTabMDIChildFrame(wxTabMDIParentFrame *parent, + wxAuiMDIChildFrame(); + wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent, wxWindowID winid, const wxString& title, const wxPoint& pos = wxDefaultPosition, @@ -123,8 +128,8 @@ public: long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr); - virtual ~wxTabMDIChildFrame(); - bool Create(wxTabMDIParentFrame *parent, + virtual ~wxAuiMDIChildFrame(); + bool Create(wxAuiMDIParentFrame *parent, wxWindowID winid, const wxString& title, const wxPoint& pos = wxDefaultPosition, @@ -140,9 +145,17 @@ public: virtual void SetTitle(const wxString& title); virtual wxString GetTitle() const; + virtual void SetIcons(const wxIconBundle& icons); + virtual const wxIconBundle& GetIcons() const; + + virtual void SetIcon(const wxIcon& icon); + virtual const wxIcon& GetIcon() const; + virtual void Activate(); virtual bool Destroy(); - + + virtual bool Show(bool show = true); + #if wxUSE_STATUSBAR // no status bars virtual wxStatusBar* CreateStatusBar(int WXUNUSED(number) = 1, @@ -172,9 +185,6 @@ public: virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } #endif - // no icon - void SetIcon(const wxIcon& WXUNUSED(icon)) { } - void SetIcons(const wxIconBundle& WXUNUSED(icons)) { } // no maximize etc virtual void Maximize(bool WXUNUSED(maximize) = true) { /* Has no effect */ } @@ -190,24 +200,12 @@ public: void OnMenuHighlight(wxMenuEvent& evt); void OnActivate(wxActivateEvent& evt); void OnCloseWindow(wxCloseEvent& evt); - - void SetMDIParentFrame(wxTabMDIParentFrame* parent); - wxTabMDIParentFrame* GetMDIParentFrame() const; - -protected: - wxTabMDIParentFrame *m_pMDIParentFrame; - wxRect m_mdi_newrect; - wxRect m_mdi_currect; - wxString m_title; - -#if wxUSE_MENUS - wxMenuBar *m_pMenuBar; -#endif // wxUSE_MENUS + void SetMDIParentFrame(wxAuiMDIParentFrame* parent); + wxAuiMDIParentFrame* GetMDIParentFrame() const; + protected: void Init(); - - virtual bool Show(bool show = true); virtual void DoSetSize(int x, int y, int width, int height, int size_flags); virtual void DoMoveWindow(int x, int y, int width, int height); @@ -218,38 +216,55 @@ public: void ApplyMDIChildFrameRect(); void DoShow(bool show); +protected: + wxAuiMDIParentFrame* m_pMDIParentFrame; + wxRect m_mdi_newrect; + wxRect m_mdi_currect; + wxString m_title; + wxIcon m_icon; + wxIconBundle m_icon_bundle; + bool m_activate_on_create; + +#if wxUSE_MENUS + wxMenuBar* m_pMenuBar; +#endif // wxUSE_MENUS + + + private: - DECLARE_DYNAMIC_CLASS(wxTabMDIChildFrame) + DECLARE_DYNAMIC_CLASS(wxAuiMDIChildFrame) DECLARE_EVENT_TABLE() - friend class wxTabMDIClientWindow; + friend class wxAuiMDIClientWindow; }; //----------------------------------------------------------------------------- -// wxTabMDIClientWindow +// wxAuiMDIClientWindow //----------------------------------------------------------------------------- -class WXDLLEXPORT wxTabMDIClientWindow : public wxAuiMultiNotebook +class WXDLLIMPEXP_AUI wxAuiMDIClientWindow : public wxAuiNotebook { public: - wxTabMDIClientWindow(); - wxTabMDIClientWindow(wxTabMDIParentFrame *parent, long style = 0); - ~wxTabMDIClientWindow(); - - virtual bool CreateClient(wxTabMDIParentFrame *parent, + wxAuiMDIClientWindow(); + wxAuiMDIClientWindow(wxAuiMDIParentFrame *parent, long style = 0); + ~wxAuiMDIClientWindow(); + + virtual bool CreateClient(wxAuiMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); virtual int SetSelection(size_t page); protected: - void PageChanged(int old_selection, int new_selection); - void OnPageChanged(wxAuiNotebookEvent& event); + void PageChanged(int old_selection, int new_selection); + void OnPageClose(wxAuiNotebookEvent& evt); + void OnPageChanged(wxAuiNotebookEvent& evt); void OnSize(wxSizeEvent& evt); private: - DECLARE_DYNAMIC_CLASS(wxTabMDIClientWindow) + DECLARE_DYNAMIC_CLASS(wxAuiMDIClientWindow) DECLARE_EVENT_TABLE() }; +#endif // wxUSE_AUI #endif // _WX_AUITABMDI_H_