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