]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/aui/auibook.h
a better compilation fix
[wxWidgets.git] / include / wx / aui / auibook.h
index 360677651252d8f8a9b0b0ef8f7f8b335f5cf41d..94d5bfef24e93eb0aa05584531bbaad7d7b8d8a2 100644 (file)
 // 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))