]>
Commit | Line | Data |
---|---|---|
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 |