X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4107600f205d9d4951c0ffaa4aadb1bc2b75dcf2..f9e5b1c786b132485fb0570755d693ff354f4418:/include/wx/aui/auibook.h diff --git a/include/wx/aui/auibook.h b/include/wx/aui/auibook.h index 5c0b00f549..70e8c8bb4b 100644 --- a/include/wx/aui/auibook.h +++ b/include/wx/aui/auibook.h @@ -27,6 +27,70 @@ #include "wx/control.h" +// tab art class + + +class WXDLLIMPEXP_AUI wxTabArt +{ +public: + + wxTabArt() { } + virtual ~wxTabArt() { } + + virtual void DrawBackground( + wxDC* dc, + const wxRect& rect) = 0; + + virtual void DrawTab(wxDC* dc, + const wxRect& in_rect, + const wxString& caption, + bool active, + wxRect* out_rect, + int* x_extent) = 0; + + virtual void SetNormalFont(const wxFont& font) = 0; + virtual void SetSelectedFont(const wxFont& font) = 0; + virtual void SetMeasuringFont(const wxFont& font) = 0; +}; + + +class WXDLLIMPEXP_AUI wxDefaultTabArt : public wxTabArt +{ + +public: + + wxDefaultTabArt(); + virtual ~wxDefaultTabArt(); + + void DrawBackground( + wxDC* dc, + const wxRect& rect); + + void DrawTab(wxDC* dc, + const wxRect& in_rect, + const wxString& caption, + bool active, + wxRect* out_rect, + int* x_extent); + + void SetNormalFont(const wxFont& font); + void SetSelectedFont(const wxFont& font); + void SetMeasuringFont(const wxFont& font); + +private: + + wxFont m_normal_font; + wxFont m_selected_font; + wxFont m_measuring_font; + wxPen m_normal_bkpen; + wxPen m_selected_bkpen; + wxBrush m_normal_bkbrush; + wxBrush m_selected_bkbrush; + wxBrush m_bkbrush; +}; + + + // event declarations/classes class WXDLLIMPEXP_AUI wxAuiNotebookEvent : public wxNotifyEvent @@ -80,6 +144,7 @@ class WXDLLIMPEXP_AUI wxAuiTabContainerButton public: int id; // button's id int cur_state; // current state (normal, hover, pressed) + int location; // buttons location (wxLEFT or wxRIGHT) wxBitmap bitmap; // button's bitmap wxRect rect; // button's hit rectangle }; @@ -98,6 +163,9 @@ public: wxAuiTabContainer(); virtual ~wxAuiTabContainer(); + void SetArtProvider(wxTabArt* art); + wxTabArt* GetArtProvider(); + bool AddPage(wxWindow* page, const wxAuiNotebookPage& info); bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx); bool RemovePage(wxWindow* page); @@ -117,31 +185,18 @@ public: void SetMeasuringFont(const wxFont& measuring_font); void DoShowHide(); void SetRect(const wxRect& rect); - void AddButton(int id, const wxBitmap& bmp); + void AddButton(int id, int location, const wxBitmap& bmp); protected: virtual void Render(wxDC* dc); - virtual void DrawTab(wxDC* dc, - const wxRect& in_rect, - const wxString& caption, - bool active, - wxRect* out_rect, - int* x_extent); private: + wxTabArt* m_art; wxAuiNotebookPageArray m_pages; wxAuiTabContainerButtonArray m_buttons; wxRect m_rect; - wxFont m_normal_font; - wxFont m_selected_font; - wxFont m_measuring_font; - wxPen m_normal_bkpen; - wxPen m_selected_bkpen; - wxBrush m_normal_bkbrush; - wxBrush m_selected_bkbrush; - wxBrush m_bkbrush; }; @@ -223,6 +278,9 @@ public: size_t GetPageCount() const; wxWindow* GetPage(size_t page_idx) const; + void SetArtProvider(wxTabArt* art); + wxTabArt* GetArtProvider(); + protected: wxAuiTabCtrl* GetTabCtrlFromPoint(const wxPoint& pt);