1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/aui/tabartmsw.h
3 // Purpose:     wxAuiMSWTabArt declaration
4 // Author:      Tobias Taschner
5 // Created:     2015-09-26
6 // Copyright:   (c) 2015 wxWidgets development team
7 // Licence:     wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9 
10 #ifndef _WX_AUI_TABARTMSW_H_
11 #define _WX_AUI_TABARTMSW_H_
12 
13 class WXDLLIMPEXP_AUI wxAuiMSWTabArt : public wxAuiGenericTabArt
14 {
15 
16 public:
17 
18     wxAuiMSWTabArt();
19     virtual ~wxAuiMSWTabArt();
20 
21     wxAuiTabArt* Clone() wxOVERRIDE;
22     void SetSizingInfo(const wxSize& tabCtrlSize,
23         size_t tabCount) wxOVERRIDE;
24 
25     void DrawBorder(
26         wxDC& dc,
27         wxWindow* wnd,
28         const wxRect& rect) wxOVERRIDE;
29 
30     void DrawBackground(
31         wxDC& dc,
32         wxWindow* wnd,
33         const wxRect& rect) wxOVERRIDE;
34 
35     void DrawTab(wxDC& dc,
36         wxWindow* wnd,
37         const wxAuiNotebookPage& pane,
38         const wxRect& inRect,
39         int closeButtonState,
40         wxRect* outTabRect,
41         wxRect* outButtonRect,
42         int* xExtent) wxOVERRIDE;
43 
44     void DrawButton(
45         wxDC& dc,
46         wxWindow* wnd,
47         const wxRect& inRect,
48         int bitmapId,
49         int buttonState,
50         int orientation,
51         wxRect* outRect) wxOVERRIDE;
52 
53     int GetIndentSize() wxOVERRIDE;
54 
55     int GetBorderWidth(
56         wxWindow* wnd) wxOVERRIDE;
57 
58     int GetAdditionalBorderSpace(
59         wxWindow* wnd) wxOVERRIDE;
60 
61     wxSize GetTabSize(
62         wxDC& dc,
63         wxWindow* wnd,
64         const wxString& caption,
65         const wxBitmap& bitmap,
66         bool active,
67         int closeButtonState,
68         int* xExtent) wxOVERRIDE;
69 
70     int ShowDropDown(
71         wxWindow* wnd,
72         const wxAuiNotebookPageArray& items,
73         int activeIdx) wxOVERRIDE;
74 
75     int GetBestTabCtrlSize(wxWindow* wnd,
76         const wxAuiNotebookPageArray& pages,
77         const wxSize& requiredBmpSize) wxOVERRIDE;
78 
79 private:
80     bool m_themed;
81     wxSize m_closeBtnSize;
82     wxSize m_tabSize;
83     int m_maxTabHeight;
84 
85     void InitSizes(wxWindow* wnd, wxDC& dc);
86 
87     bool IsThemed() const;
88 };
89 
90 #endif // _WX_AUI_TABARTMSW_H_
91