X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3f69756e3d68cc8a04b95c95df211295d2ac0ec8..d34ad9ea8910361e3d8443ddda0ee5554dc6480d:/include/wx/aui/auibook.h diff --git a/include/wx/aui/auibook.h b/include/wx/aui/auibook.h index 3606776512..94d5bfef24 100644 --- a/include/wx/aui/auibook.h +++ b/include/wx/aui/auibook.h @@ -30,10 +30,17 @@ // tab art class -class wxTabArt +class WXDLLIMPEXP_AUI wxTabArt { public: + wxTabArt() { } + virtual ~wxTabArt() { } + + virtual void SetNormalFont(const wxFont& font) = 0; + virtual void SetSelectedFont(const wxFont& font) = 0; + virtual void SetMeasuringFont(const wxFont& font) = 0; + virtual void DrawBackground( wxDC* dc, const wxRect& rect) = 0; @@ -44,19 +51,37 @@ public: bool active, wxRect* out_rect, int* x_extent) = 0; + + virtual void DrawButton( + wxDC* dc, + const wxRect& in_rect, + int bitmap_id, + int button_state, + int orientation, + const wxBitmap& bitmap_override, + wxRect* out_rect) = 0; + + virtual wxSize GetTabSize( + wxDC* dc, + const wxString& caption, + bool active, + 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; + virtual int GetBestTabCtrlSize(wxWindow* wnd) = 0; }; -class wxDefaultTabArt : public wxTabArt +class WXDLLIMPEXP_AUI wxDefaultTabArt : public wxTabArt { public: wxDefaultTabArt(); + virtual ~wxDefaultTabArt(); + + void SetNormalFont(const wxFont& font); + void SetSelectedFont(const wxFont& font); + void SetMeasuringFont(const wxFont& font); void DrawBackground( wxDC* dc, @@ -68,11 +93,24 @@ public: bool active, wxRect* out_rect, int* x_extent); - - void SetNormalFont(const wxFont& font); - void SetSelectedFont(const wxFont& font); - void SetMeasuringFont(const wxFont& font); - + + void DrawButton( + wxDC* dc, + const wxRect& in_rect, + int bitmap_id, + int button_state, + int orientation, + const wxBitmap& bitmap_override, + wxRect* out_rect); + + wxSize GetTabSize( + wxDC* dc, + const wxString& caption, + bool active, + int* x_extent); + + int GetBestTabCtrlSize(wxWindow* wnd); + private: wxFont m_normal_font; @@ -83,6 +121,12 @@ private: wxBrush m_normal_bkbrush; wxBrush m_selected_bkbrush; wxBrush m_bkbrush; + wxBitmap m_active_close_bmp; + wxBitmap m_disabled_close_bmp; + wxBitmap m_active_left_bmp; + wxBitmap m_disabled_left_bmp; + wxBitmap m_active_right_bmp; + wxBitmap m_disabled_right_bmp; }; @@ -139,8 +183,10 @@ class WXDLLIMPEXP_AUI wxAuiTabContainerButton { public: int id; // button's id - int cur_state; // current state (normal, hover, pressed) - wxBitmap bitmap; // button's bitmap + int cur_state; // current state (normal, hover, pressed, etc.) + int location; // buttons location (wxLEFT or wxRIGHT) + wxBitmap bitmap; // button's hover bitmap + wxBitmap dis_bitmap; // button's disabled bitmap wxRect rect; // button's hit rectangle }; @@ -180,8 +226,14 @@ 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& normal_bitmap = wxNullBitmap, + const wxBitmap& disabled_bitmap = wxNullBitmap); + size_t GetTabOffset() const; + void SetTabOffset(size_t offset); + protected: virtual void Render(wxDC* dc); @@ -192,6 +244,7 @@ private: wxAuiNotebookPageArray m_pages; wxAuiTabContainerButtonArray m_buttons; wxRect m_rect; + size_t m_tab_offset; }; @@ -216,7 +269,9 @@ protected: void OnLeftUp(wxMouseEvent& evt); void OnMotion(wxMouseEvent& evt); void OnLeaveWindow(wxMouseEvent& evt); + void OnButton(wxAuiNotebookEvent& evt); + protected: wxPoint m_click_pt; @@ -298,7 +353,7 @@ protected: void OnTabDragMotion(wxCommandEvent& evt); void OnTabEndDrag(wxCommandEvent& evt); void OnTabButton(wxCommandEvent& evt); - + protected: wxFrameManager m_mgr; @@ -341,7 +396,7 @@ typedef void (wxEvtHandler::*wxAuiNotebookEventFunction)(wxAuiNotebookEvent&); wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, winid, wxAuiNotebookEventHandler(fn)) #define EVT_AUINOTEBOOK_PAGE_CHANGING(winid, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_PAGE_BUTTON(winid, fn) \ +#define EVT_AUINOTEBOOK_BUTTON(winid, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, winid, wxAuiNotebookEventHandler(fn)) #define EVT_AUINOTEBOOK_BEGIN_DRAG(winid, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, winid, wxAuiNotebookEventHandler(fn))