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