]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/aui/dockart.h
921275c2fe20b00fd7229e6f51ce1ef4ebc0329f
[wxWidgets.git] / interface / wx / aui / dockart.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: aui/dockart.h
3 // Purpose: interface of wxAuiDockArt
4 // Author: wxWidgets team
5 // Licence: wxWindows licence
6 /////////////////////////////////////////////////////////////////////////////
7
8
9 /**
10 These are the possible pane dock art settings for wxAuiDefaultDockArt.
11
12 @library{wxaui}
13 @category{aui}
14
15 */
16 enum wxAuiPaneDockArtSetting
17 {
18
19 /// Customizes the sash size
20 wxAUI_DOCKART_SASH_SIZE = 0,
21
22 /// Customizes the caption size
23 wxAUI_DOCKART_CAPTION_SIZE = 1,
24
25 /// Customizes the gripper size
26 wxAUI_DOCKART_GRIPPER_SIZE = 2,
27
28 /// Customizes the pane border size
29 wxAUI_DOCKART_PANE_BORDER_SIZE = 3,
30
31 /// Customizes the pane button size
32 wxAUI_DOCKART_PANE_BUTTON_SIZE = 4,
33
34 /// Customizes the background colour, which corresponds to the client area.
35 wxAUI_DOCKART_BACKGROUND_COLOUR = 5,
36
37 /// Customizes the sash colour
38 wxAUI_DOCKART_SASH_COLOUR = 6,
39
40 /// Customizes the active caption colour
41 wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7,
42
43 /// Customizes the active caption gradient colour
44 wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8,
45
46 /// Customizes the inactive caption colour
47 wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9,
48
49 /// Customizes the inactive gradient caption colour
50 wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10,
51
52 /// Customizes the active caption text colour
53 wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11,
54
55 /// Customizes the inactive caption text colour
56 wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12,
57
58 /// Customizes the border colour
59 wxAUI_DOCKART_BORDER_COLOUR = 13,
60
61 /// Customizes the gripper colour
62 wxAUI_DOCKART_GRIPPER_COLOUR = 14,
63
64 /// Customizes the caption font
65 wxAUI_DOCKART_CAPTION_FONT = 15,
66
67 /// Customizes the gradient type (no gradient, vertical or horizontal)
68 wxAUI_DOCKART_GRADIENT_TYPE = 16
69
70 };
71
72 /**
73 These are the possible gradient dock art settings for wxAuiDefaultDockArt
74
75 */
76 enum wxAuiPaneDockArtGradients
77 {
78 /// No gradient on the captions, in other words a solid colour
79 wxAUI_GRADIENT_NONE = 0,
80
81 /// Vertical gradient on the captions, in other words a gradal change in colours from top to bottom
82 wxAUI_GRADIENT_VERTICAL = 1,
83
84 /// Horizontal gradient on the captions, in other words a gradual change in colours from left to right
85 wxAUI_GRADIENT_HORIZONTAL = 2
86 };
87
88 /**
89 These are the possible pane button / wxAuiNotebook button / wxAuiToolBar button states.
90 */
91 enum wxAuiPaneButtonState
92 {
93 /// Normal button state
94 wxAUI_BUTTON_STATE_NORMAL = 0,
95
96 /// Hovered button state
97 wxAUI_BUTTON_STATE_HOVER = 1 << 1,
98
99 /// Pressed button state
100 wxAUI_BUTTON_STATE_PRESSED = 1 << 2,
101
102 /// Disabled button state
103 wxAUI_BUTTON_STATE_DISABLED = 1 << 3,
104
105 /// Hidden button state
106 wxAUI_BUTTON_STATE_HIDDEN = 1 << 4,
107
108 /// Checked button state
109 wxAUI_BUTTON_STATE_CHECKED = 1 << 5
110 };
111
112 /**
113 These are the possible pane button / wxAuiNotebook button / wxAuiToolBar button identifiers.
114
115 */
116 enum wxAuiButtonId
117 {
118 /// Shows a close button on the pane
119 wxAUI_BUTTON_CLOSE = 101,
120
121 /// Shows a maximize/restore button on the pane
122 wxAUI_BUTTON_MAXIMIZE_RESTORE = 102,
123
124 /// Shows a minimize button on the pane
125 wxAUI_BUTTON_MINIMIZE = 103,
126
127 /**
128 Shows a pin button on the pane
129 */
130 wxAUI_BUTTON_PIN = 104,
131
132 /**
133 Shows an option button on the pane (not implemented)
134 */
135 wxAUI_BUTTON_OPTIONS = 105,
136
137 /**
138 Shows a window list button on the pane (for wxAuiNotebook)
139 */
140 wxAUI_BUTTON_WINDOWLIST = 106,
141
142 /**
143 Shows a left button on the pane (for wxAuiNotebook)
144 */
145 wxAUI_BUTTON_LEFT = 107,
146
147 /**
148 Shows a right button on the pane (for wxAuiNotebook)
149 */
150 wxAUI_BUTTON_RIGHT = 108,
151
152 /**
153 Shows an up button on the pane (not implemented)
154 */
155 wxAUI_BUTTON_UP = 109,
156
157 /**
158 Shows a down button on the pane (not implemented)
159 */
160 wxAUI_BUTTON_DOWN = 110,
161
162 /**
163 Shows one of three possible custom buttons on the pane (not implemented)
164 */
165 wxAUI_BUTTON_CUSTOM1 = 201,
166
167 /**
168 Shows one of three possible custom buttons on the pane (not implemented)
169 */
170 wxAUI_BUTTON_CUSTOM2 = 202,
171
172 /**
173 Shows one of three possible custom buttons on the pane (not implemented)
174 */
175 wxAUI_BUTTON_CUSTOM3 = 203
176 };
177
178 /**
179 @class wxAuiDockArt
180
181 wxAuiDockArt is part of the wxAUI class framework.
182 See also @ref overview_aui.
183
184 wxAuiDockArt is the art provider: provides all drawing functionality to the
185 wxAui dock manager. This allows the dock manager to have a plugable look-and-feel.
186
187 By default, a wxAuiManager uses an instance of this class called
188 wxAuiDefaultDockArt which provides bitmap art and a colour scheme that is
189 adapted to the major platforms' look. You can either derive from that class
190 to alter its behaviour or write a completely new dock art class.
191 Call wxAuiManager::SetArtProvider to force wxAUI to use your new dock art provider.
192
193 @library{wxaui}
194 @category{aui}
195
196 @see wxAuiManager, wxAuiPaneInfo
197 */
198 class wxAuiDockArt
199 {
200 public:
201 /**
202 Constructor.
203 */
204 wxAuiDockArt();
205
206 /**
207 Destructor.
208 */
209 virtual ~wxAuiDockArt();
210
211 /**
212 Draws a background.
213 */
214 virtual void DrawBackground(wxDC& dc, wxWindow* window, int orientation,
215 const wxRect& rect) = 0;
216
217 /**
218 Draws a border.
219 */
220 virtual void DrawBorder(wxDC& dc, wxWindow* window, const wxRect& rect,
221 wxAuiPaneInfo& pane) = 0;
222
223 /**
224 Draws a caption.
225 */
226 virtual void DrawCaption(wxDC& dc, wxWindow* window, const wxString& text,
227 const wxRect& rect, wxAuiPaneInfo& pane) = 0;
228
229 /**
230 Draws a gripper.
231 */
232 virtual void DrawGripper(wxDC& dc, wxWindow* window, const wxRect& rect,
233 wxAuiPaneInfo& pane) = 0;
234
235 /**
236 Draws a button in the pane's title bar.
237 @a button can be one of the values of @b wxAuiButtonId.
238 @a button_state can be one of the values of @b wxAuiPaneButtonState.
239 */
240 virtual void DrawPaneButton(wxDC& dc, wxWindow* window, int button,
241 int button_state, const wxRect& rect,
242 wxAuiPaneInfo& pane) = 0;
243
244 /**
245 Draws a sash between two windows.
246 */
247 virtual void DrawSash(wxDC& dc, wxWindow* window, int orientation,
248 const wxRect& rect) = 0;
249 /**
250 Get the colour of a certain setting.
251 @a id can be one of the colour values of @b wxAuiPaneDockArtSetting.
252 */
253 virtual wxColour GetColour(int id) = 0;
254
255 /**
256 Get a font setting.
257 */
258 virtual wxFont GetFont(int id) = 0;
259
260 /**
261 Get the value of a certain setting.
262 @a id can be one of the size values of @b wxAuiPaneDockArtSetting.
263 */
264 virtual int GetMetric(int id) = 0;
265
266 /**
267 Set a certain setting with the value @e colour.
268 @a id can be one of the colour values of @b wxAuiPaneDockArtSetting.
269 */
270 virtual void SetColour(int id, const wxColour& colour) = 0;
271
272 /**
273 Set a font setting.
274 */
275 virtual void SetFont(int id, const wxFont& font) = 0;
276
277 /**
278 Set a certain setting with the value @e new_val.
279 @a id can be one of the size values of @b wxAuiPaneDockArtSetting.
280 */
281 virtual void SetMetric(int id, int new_val) = 0;
282 };
283