]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: wx/defs.h | |
3 | // Purpose: interface of global functions | |
4 | // Author: wxWidgets team | |
5 | // Licence: wxWindows licence | |
6 | ///////////////////////////////////////////////////////////////////////////// | |
7 | ||
8 | ||
9 | // ---------------------------------------------------------------------------- | |
10 | // enumerations | |
11 | // ---------------------------------------------------------------------------- | |
12 | ||
13 | /** | |
14 | Generic flags. | |
15 | */ | |
16 | enum wxGeometryCentre | |
17 | { | |
18 | wxCENTRE = 0x0001, | |
19 | wxCENTER = wxCENTRE | |
20 | }; | |
21 | ||
22 | /** | |
23 | A generic orientation value. | |
24 | */ | |
25 | enum wxOrientation | |
26 | { | |
27 | wxHORIZONTAL = 0x0004, | |
28 | wxVERTICAL = 0x0008, | |
29 | ||
30 | /** | |
31 | A mask value to indicate both vertical and horizontal orientations. | |
32 | */ | |
33 | wxBOTH = wxVERTICAL | wxHORIZONTAL, | |
34 | ||
35 | /// A synonym for @c wxBOTH. | |
36 | wxORIENTATION_MASK = wxBOTH | |
37 | }; | |
38 | ||
39 | /** | |
40 | A generic direction value. | |
41 | */ | |
42 | enum wxDirection | |
43 | { | |
44 | wxLEFT = 0x0010, | |
45 | wxRIGHT = 0x0020, | |
46 | wxUP = 0x0040, | |
47 | wxDOWN = 0x0080, | |
48 | ||
49 | wxTOP = wxUP, | |
50 | wxBOTTOM = wxDOWN, | |
51 | ||
52 | wxNORTH = wxUP, | |
53 | wxSOUTH = wxDOWN, | |
54 | wxWEST = wxLEFT, | |
55 | wxEAST = wxRIGHT, | |
56 | ||
57 | wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT), | |
58 | ||
59 | /** A mask to extract direction from the combination of flags. */ | |
60 | wxDIRECTION_MASK = wxALL | |
61 | }; | |
62 | ||
63 | /** | |
64 | Generic alignment values. Can be combined together. | |
65 | */ | |
66 | enum wxAlignment | |
67 | { | |
68 | /** | |
69 | A value different from any valid alignment value. | |
70 | ||
71 | Note that you shouldn't use 0 for this as it's the value of (valid) | |
72 | alignments wxALIGN_LEFT and wxALIGN_TOP. | |
73 | ||
74 | @since 2.9.1 | |
75 | */ | |
76 | wxALIGN_INVALID = -1, | |
77 | ||
78 | wxALIGN_NOT = 0x0000, | |
79 | wxALIGN_CENTER_HORIZONTAL = 0x0100, | |
80 | wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL, | |
81 | wxALIGN_LEFT = wxALIGN_NOT, | |
82 | wxALIGN_TOP = wxALIGN_NOT, | |
83 | wxALIGN_RIGHT = 0x0200, | |
84 | wxALIGN_BOTTOM = 0x0400, | |
85 | wxALIGN_CENTER_VERTICAL = 0x0800, | |
86 | wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, | |
87 | ||
88 | wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), | |
89 | wxALIGN_CENTRE = wxALIGN_CENTER, | |
90 | ||
91 | /** A mask to extract alignment from the combination of flags. */ | |
92 | wxALIGN_MASK = 0x0f00 | |
93 | }; | |
94 | ||
95 | /** | |
96 | Miscellaneous flags for wxSizer items. | |
97 | */ | |
98 | enum wxSizerFlagBits | |
99 | { | |
100 | wxFIXED_MINSIZE = 0x8000, | |
101 | wxRESERVE_SPACE_EVEN_IF_HIDDEN = 0x0002, | |
102 | ||
103 | /* a mask to extract wxSizerFlagBits from combination of flags */ | |
104 | wxSIZER_FLAG_BITS_MASK = 0x8002 | |
105 | }; | |
106 | ||
107 | /** | |
108 | Generic stretch values. | |
109 | */ | |
110 | enum wxStretch | |
111 | { | |
112 | wxSTRETCH_NOT = 0x0000, | |
113 | wxSHRINK = 0x1000, | |
114 | wxGROW = 0x2000, | |
115 | wxEXPAND = wxGROW, | |
116 | wxSHAPED = 0x4000, | |
117 | wxTILE = wxSHAPED | wxFIXED_MINSIZE, | |
118 | ||
119 | /* a mask to extract stretch from the combination of flags */ | |
120 | wxSTRETCH_MASK = 0x7000 /* sans wxTILE */ | |
121 | }; | |
122 | ||
123 | /** | |
124 | Border flags for wxWindow. | |
125 | */ | |
126 | enum wxBorder | |
127 | { | |
128 | /** | |
129 | This is different from wxBORDER_NONE as by default the controls do have | |
130 | a border. | |
131 | */ | |
132 | wxBORDER_DEFAULT = 0, | |
133 | ||
134 | wxBORDER_NONE = 0x00200000, | |
135 | wxBORDER_STATIC = 0x01000000, | |
136 | wxBORDER_SIMPLE = 0x02000000, | |
137 | wxBORDER_RAISED = 0x04000000, | |
138 | wxBORDER_SUNKEN = 0x08000000, | |
139 | wxBORDER_DOUBLE = 0x10000000, /* deprecated */ | |
140 | wxBORDER_THEME = wxBORDER_DOUBLE, | |
141 | ||
142 | /* a mask to extract border style from the combination of flags */ | |
143 | wxBORDER_MASK = 0x1f200000 | |
144 | }; | |
145 | ||
146 | /* ---------------------------------------------------------------------------- */ | |
147 | /* Possible SetSize flags */ | |
148 | /* ---------------------------------------------------------------------------- */ | |
149 | ||
150 | /* Use internally-calculated width if -1 */ | |
151 | #define wxSIZE_AUTO_WIDTH 0x0001 | |
152 | /* Use internally-calculated height if -1 */ | |
153 | #define wxSIZE_AUTO_HEIGHT 0x0002 | |
154 | /* Use internally-calculated width and height if each is -1 */ | |
155 | #define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT) | |
156 | /* Ignore missing (-1) dimensions (use existing). */ | |
157 | /* For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code. */ | |
158 | #define wxSIZE_USE_EXISTING 0x0000 | |
159 | /* Allow -1 as a valid position */ | |
160 | #define wxSIZE_ALLOW_MINUS_ONE 0x0004 | |
161 | /* Don't do parent client adjustments (for implementation only) */ | |
162 | #define wxSIZE_NO_ADJUSTMENTS 0x0008 | |
163 | /* Change the window position even if it seems to be already correct */ | |
164 | #define wxSIZE_FORCE 0x0010 | |
165 | /* Emit size event even if size didn't change */ | |
166 | #define wxSIZE_FORCE_EVENT 0x0020 | |
167 | ||
168 | /* ---------------------------------------------------------------------------- */ | |
169 | /* Window style flags */ | |
170 | /* ---------------------------------------------------------------------------- */ | |
171 | ||
172 | /* | |
173 | * Values are chosen so they can be |'ed in a bit list. | |
174 | * Some styles are used across more than one group, | |
175 | * so the values mustn't clash with others in the group. | |
176 | * Otherwise, numbers can be reused across groups. | |
177 | */ | |
178 | ||
179 | /* | |
180 | Summary of the bits used by various styles. | |
181 | ||
182 | High word, containing styles which can be used with many windows: | |
183 | ||
184 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |
185 | |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16| | |
186 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |
187 | | | | | | | | | | | | | | | | | | |
188 | | | | | | | | | | | | | | | | \_ wxFULL_REPAINT_ON_RESIZE | |
189 | | | | | | | | | | | | | | | \____ wxPOPUP_WINDOW | |
190 | | | | | | | | | | | | | | \_______ wxWANTS_CHARS | |
191 | | | | | | | | | | | | | \__________ wxTAB_TRAVERSAL | |
192 | | | | | | | | | | | | \_____________ wxTRANSPARENT_WINDOW | |
193 | | | | | | | | | | | \________________ wxBORDER_NONE | |
194 | | | | | | | | | | \___________________ wxCLIP_CHILDREN | |
195 | | | | | | | | | \______________________ wxALWAYS_SHOW_SB | |
196 | | | | | | | | \_________________________ wxBORDER_STATIC | |
197 | | | | | | | \____________________________ wxBORDER_SIMPLE | |
198 | | | | | | \_______________________________ wxBORDER_RAISED | |
199 | | | | | \__________________________________ wxBORDER_SUNKEN | |
200 | | | | \_____________________________________ wxBORDER_{DOUBLE,THEME} | |
201 | | | \________________________________________ wxCAPTION/wxCLIP_SIBLINGS | |
202 | | \___________________________________________ wxHSCROLL | |
203 | \______________________________________________ wxVSCROLL | |
204 | ||
205 | ||
206 | Low word style bits is class-specific meaning that the same bit can have | |
207 | different meanings for different controls (e.g. 0x10 is wxCB_READONLY | |
208 | meaning that the control can't be modified for wxComboBox but wxLB_SORT | |
209 | meaning that the control should be kept sorted for wxListBox, while | |
210 | wxLB_SORT has a different value -- and this is just fine). | |
211 | */ | |
212 | ||
213 | /* | |
214 | * Window (Frame/dialog/subwindow/panel item) style flags | |
215 | */ | |
216 | #define wxVSCROLL 0x80000000 | |
217 | #define wxHSCROLL 0x40000000 | |
218 | #define wxCAPTION 0x20000000 | |
219 | ||
220 | /* New styles (border styles are now in their own enum) */ | |
221 | #define wxDOUBLE_BORDER wxBORDER_DOUBLE | |
222 | #define wxSUNKEN_BORDER wxBORDER_SUNKEN | |
223 | #define wxRAISED_BORDER wxBORDER_RAISED | |
224 | #define wxBORDER wxBORDER_SIMPLE | |
225 | #define wxSIMPLE_BORDER wxBORDER_SIMPLE | |
226 | #define wxSTATIC_BORDER wxBORDER_STATIC | |
227 | #define wxNO_BORDER wxBORDER_NONE | |
228 | ||
229 | /* wxALWAYS_SHOW_SB: instead of hiding the scrollbar when it is not needed, */ | |
230 | /* disable it - but still show (see also wxLB_ALWAYS_SB style) */ | |
231 | /* */ | |
232 | /* NB: as this style is only supported by wxUniversal and wxMSW so far */ | |
233 | #define wxALWAYS_SHOW_SB 0x00800000 | |
234 | ||
235 | /* Clip children when painting, which reduces flicker in e.g. frames and */ | |
236 | /* splitter windows, but can't be used in a panel where a static box must be */ | |
237 | /* 'transparent' (panel paints the background for it) */ | |
238 | #define wxCLIP_CHILDREN 0x00400000 | |
239 | ||
240 | /* Note we're reusing the wxCAPTION style because we won't need captions */ | |
241 | /* for subwindows/controls */ | |
242 | #define wxCLIP_SIBLINGS 0x20000000 | |
243 | ||
244 | #define wxTRANSPARENT_WINDOW 0x00100000 | |
245 | ||
246 | /* Add this style to a panel to get tab traversal working outside of dialogs */ | |
247 | /* (on by default for wxPanel, wxDialog, wxScrolledWindow) */ | |
248 | #define wxTAB_TRAVERSAL 0x00080000 | |
249 | ||
250 | /* Add this style if the control wants to get all keyboard messages (under */ | |
251 | /* Windows, it won't normally get the dialog navigation key events) */ | |
252 | #define wxWANTS_CHARS 0x00040000 | |
253 | ||
254 | /* Make window retained (Motif only, see src/generic/scrolwing.cpp) | |
255 | * This is non-zero only under wxMotif, to avoid a clash with wxPOPUP_WINDOW | |
256 | * on other platforms | |
257 | */ | |
258 | ||
259 | #ifdef __WXMOTIF__ | |
260 | #define wxRETAINED 0x00020000 | |
261 | #else | |
262 | #define wxRETAINED 0x00000000 | |
263 | #endif | |
264 | #define wxBACKINGSTORE wxRETAINED | |
265 | ||
266 | /* set this flag to create a special popup window: it will be always shown on */ | |
267 | /* top of other windows, will capture the mouse and will be dismissed when the */ | |
268 | /* mouse is clicked outside of it or if it loses focus in any other way */ | |
269 | #define wxPOPUP_WINDOW 0x00020000 | |
270 | ||
271 | /* force a full repaint when the window is resized (instead of repainting just */ | |
272 | /* the invalidated area) */ | |
273 | #define wxFULL_REPAINT_ON_RESIZE 0x00010000 | |
274 | ||
275 | /* obsolete: now this is the default behaviour */ | |
276 | /* */ | |
277 | /* don't invalidate the whole window (resulting in a PAINT event) when the */ | |
278 | /* window is resized (currently, makes sense for wxMSW only) */ | |
279 | #define wxNO_FULL_REPAINT_ON_RESIZE 0 | |
280 | ||
281 | /* A mask which can be used to filter (out) all wxWindow-specific styles. | |
282 | */ | |
283 | #define wxWINDOW_STYLE_MASK \ | |
284 | (wxVSCROLL|wxHSCROLL|wxBORDER_MASK|wxALWAYS_SHOW_SB|wxCLIP_CHILDREN| \ | |
285 | wxCLIP_SIBLINGS|wxTRANSPARENT_WINDOW|wxTAB_TRAVERSAL|wxWANTS_CHARS| \ | |
286 | wxRETAINED|wxPOPUP_WINDOW|wxFULL_REPAINT_ON_RESIZE) | |
287 | ||
288 | /* | |
289 | * Extra window style flags (use wxWS_EX prefix to make it clear that they | |
290 | * should be passed to wxWindow::SetExtraStyle(), not SetWindowStyle()) | |
291 | */ | |
292 | ||
293 | /* by default, TransferDataTo/FromWindow() only work on direct children of the */ | |
294 | /* window (compatible behaviour), set this flag to make them recursively */ | |
295 | /* descend into all subwindows */ | |
296 | #define wxWS_EX_VALIDATE_RECURSIVELY 0x00000001 | |
297 | ||
298 | /* wxCommandEvents and the objects of the derived classes are forwarded to the */ | |
299 | /* parent window and so on recursively by default. Using this flag for the */ | |
300 | /* given window allows to block this propagation at this window, i.e. prevent */ | |
301 | /* the events from being propagated further upwards. The dialogs have this */ | |
302 | /* flag on by default. */ | |
303 | #define wxWS_EX_BLOCK_EVENTS 0x00000002 | |
304 | ||
305 | /* don't use this window as an implicit parent for the other windows: this must */ | |
306 | /* be used with transient windows as otherwise there is the risk of creating a */ | |
307 | /* dialog/frame with this window as a parent which would lead to a crash if the */ | |
308 | /* parent is destroyed before the child */ | |
309 | #define wxWS_EX_TRANSIENT 0x00000004 | |
310 | ||
311 | /* don't paint the window background, we'll assume it will */ | |
312 | /* be done by a theming engine. This is not yet used but could */ | |
313 | /* possibly be made to work in the future, at least on Windows */ | |
314 | #define wxWS_EX_THEMED_BACKGROUND 0x00000008 | |
315 | ||
316 | /* this window should always process idle events */ | |
317 | #define wxWS_EX_PROCESS_IDLE 0x00000010 | |
318 | ||
319 | /* this window should always process UI update events */ | |
320 | #define wxWS_EX_PROCESS_UI_UPDATES 0x00000020 | |
321 | ||
322 | /* Draw the window in a metal theme on Mac */ | |
323 | #define wxFRAME_EX_METAL 0x00000040 | |
324 | #define wxDIALOG_EX_METAL 0x00000040 | |
325 | ||
326 | /* Use this style to add a context-sensitive help to the window (currently for */ | |
327 | /* Win32 only and it doesn't work if wxMINIMIZE_BOX or wxMAXIMIZE_BOX are used) */ | |
328 | #define wxWS_EX_CONTEXTHELP 0x00000080 | |
329 | ||
330 | /* synonyms for wxWS_EX_CONTEXTHELP for compatibility */ | |
331 | #define wxFRAME_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP | |
332 | #define wxDIALOG_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP | |
333 | ||
334 | /* Create a window which is attachable to another top level window */ | |
335 | #define wxFRAME_DRAWER 0x0020 | |
336 | ||
337 | /* | |
338 | * MDI parent frame style flags | |
339 | * Can overlap with some of the above. | |
340 | */ | |
341 | ||
342 | #define wxFRAME_NO_WINDOW_MENU 0x0100 | |
343 | ||
344 | /* | |
345 | * wxMenuBar style flags | |
346 | */ | |
347 | /* use native docking */ | |
348 | #define wxMB_DOCKABLE 0x0001 | |
349 | ||
350 | /* | |
351 | * wxMenu style flags | |
352 | */ | |
353 | #define wxMENU_TEAROFF 0x0001 | |
354 | ||
355 | /* | |
356 | * Apply to all panel items | |
357 | */ | |
358 | #define wxCOLOURED 0x0800 | |
359 | #define wxFIXED_LENGTH 0x0400 | |
360 | ||
361 | /* | |
362 | * Styles for wxListBox | |
363 | */ | |
364 | #define wxLB_SORT 0x0010 | |
365 | #define wxLB_SINGLE 0x0020 | |
366 | #define wxLB_MULTIPLE 0x0040 | |
367 | #define wxLB_EXTENDED 0x0080 | |
368 | /* wxLB_OWNERDRAW is Windows-only */ | |
369 | #define wxLB_NEEDED_SB 0x0000 | |
370 | #define wxLB_OWNERDRAW 0x0100 | |
371 | #define wxLB_ALWAYS_SB 0x0200 | |
372 | #define wxLB_NO_SB 0x0400 | |
373 | #define wxLB_HSCROLL wxHSCROLL | |
374 | /* always show an entire number of rows */ | |
375 | #define wxLB_INT_HEIGHT 0x0800 | |
376 | ||
377 | /* | |
378 | * wxComboBox style flags | |
379 | */ | |
380 | #define wxCB_SIMPLE 0x0004 | |
381 | #define wxCB_SORT 0x0008 | |
382 | #define wxCB_READONLY 0x0010 | |
383 | #define wxCB_DROPDOWN 0x0020 | |
384 | ||
385 | /* | |
386 | * wxRadioBox style flags | |
387 | */ | |
388 | /* should we number the items from left to right or from top to bottom in a 2d */ | |
389 | /* radiobox? */ | |
390 | #define wxRA_LEFTTORIGHT 0x0001 | |
391 | #define wxRA_TOPTOBOTTOM 0x0002 | |
392 | ||
393 | /* New, more intuitive names to specify majorDim argument */ | |
394 | #define wxRA_SPECIFY_COLS wxHORIZONTAL | |
395 | #define wxRA_SPECIFY_ROWS wxVERTICAL | |
396 | ||
397 | /* Old names for compatibility */ | |
398 | #define wxRA_HORIZONTAL wxHORIZONTAL | |
399 | #define wxRA_VERTICAL wxVERTICAL | |
400 | ||
401 | /* | |
402 | * wxRadioButton style flag | |
403 | */ | |
404 | #define wxRB_GROUP 0x0004 | |
405 | #define wxRB_SINGLE 0x0008 | |
406 | ||
407 | /* | |
408 | * wxScrollBar flags | |
409 | */ | |
410 | #define wxSB_HORIZONTAL wxHORIZONTAL | |
411 | #define wxSB_VERTICAL wxVERTICAL | |
412 | ||
413 | /* | |
414 | * wxSpinButton flags. | |
415 | * Note that a wxSpinCtrl is sometimes defined as a wxTextCtrl, and so the | |
416 | * flags shouldn't overlap with wxTextCtrl flags that can be used for a single | |
417 | * line controls (currently we reuse wxTE_CHARWRAP and wxTE_RICH2 neither of | |
418 | * which makes sense for them). | |
419 | */ | |
420 | #define wxSP_HORIZONTAL wxHORIZONTAL /* 4 */ | |
421 | #define wxSP_VERTICAL wxVERTICAL /* 8 */ | |
422 | #define wxSP_ARROW_KEYS 0x4000 | |
423 | #define wxSP_WRAP 0x8000 | |
424 | ||
425 | /* | |
426 | * wxTabCtrl flags | |
427 | */ | |
428 | #define wxTC_RIGHTJUSTIFY 0x0010 | |
429 | #define wxTC_FIXEDWIDTH 0x0020 | |
430 | #define wxTC_TOP 0x0000 /* default */ | |
431 | #define wxTC_LEFT 0x0020 | |
432 | #define wxTC_RIGHT 0x0040 | |
433 | #define wxTC_BOTTOM 0x0080 | |
434 | #define wxTC_MULTILINE 0x0200 /* == wxNB_MULTILINE */ | |
435 | #define wxTC_OWNERDRAW 0x0400 | |
436 | ||
437 | /* | |
438 | * wxStaticBitmap flags | |
439 | */ | |
440 | #define wxBI_EXPAND wxEXPAND | |
441 | ||
442 | /* | |
443 | * wxStaticLine flags | |
444 | */ | |
445 | #define wxLI_HORIZONTAL wxHORIZONTAL | |
446 | #define wxLI_VERTICAL wxVERTICAL | |
447 | ||
448 | ||
449 | /* | |
450 | * extended dialog specifiers. these values are stored in a different | |
451 | * flag and thus do not overlap with other style flags. note that these | |
452 | * values do not correspond to the return values of the dialogs (for | |
453 | * those values, look at the wxID_XXX defines). | |
454 | */ | |
455 | ||
456 | /* wxCENTRE already defined as 0x00000001 */ | |
457 | #define wxYES 0x00000002 | |
458 | #define wxOK 0x00000004 | |
459 | #define wxNO 0x00000008 | |
460 | #define wxYES_NO (wxYES | wxNO) | |
461 | #define wxCANCEL 0x00000010 | |
462 | #define wxAPPLY 0x00000020 | |
463 | #define wxCLOSE 0x00000040 | |
464 | ||
465 | #define wxOK_DEFAULT 0x00000000 /* has no effect (default) */ | |
466 | #define wxYES_DEFAULT 0x00000000 /* has no effect (default) */ | |
467 | #define wxNO_DEFAULT 0x00000080 /* only valid with wxYES_NO */ | |
468 | #define wxCANCEL_DEFAULT 0x80000000 /* only valid with wxCANCEL */ | |
469 | ||
470 | #define wxICON_EXCLAMATION 0x00000100 | |
471 | #define wxICON_HAND 0x00000200 | |
472 | #define wxICON_WARNING wxICON_EXCLAMATION | |
473 | #define wxICON_ERROR wxICON_HAND | |
474 | #define wxICON_QUESTION 0x00000400 | |
475 | #define wxICON_INFORMATION 0x00000800 | |
476 | #define wxICON_STOP wxICON_HAND | |
477 | #define wxICON_ASTERISK wxICON_INFORMATION | |
478 | ||
479 | #define wxHELP 0x00001000 | |
480 | #define wxFORWARD 0x00002000 | |
481 | #define wxBACKWARD 0x00004000 | |
482 | #define wxRESET 0x00008000 | |
483 | #define wxMORE 0x00010000 | |
484 | #define wxSETUP 0x00020000 | |
485 | #define wxICON_NONE 0x00040000 | |
486 | #define wxICON_AUTH_NEEDED 0x00080000 | |
487 | ||
488 | #define wxICON_MASK \ | |
489 | (wxICON_EXCLAMATION|wxICON_HAND|wxICON_QUESTION|wxICON_INFORMATION|wxICON_NONE) | |
490 | ||
491 | ||
492 | /* symbolic constant used by all Find()-like functions returning positive */ | |
493 | /* integer on success as failure indicator */ | |
494 | #define wxNOT_FOUND (-1) | |
495 | ||
496 | /** | |
497 | Background styles. | |
498 | ||
499 | @see wxWindow::SetBackgroundStyle() | |
500 | */ | |
501 | enum wxBackgroundStyle | |
502 | { | |
503 | /** | |
504 | Default background style value indicating that the background may be | |
505 | erased in the user-defined EVT_ERASE_BACKGROUND handler. | |
506 | ||
507 | If no such handler is defined (or if it skips the event), the effect of | |
508 | this style is the same as wxBG_STYLE_SYSTEM. If an empty handler (@em | |
509 | not skipping the event) is defined, the effect is the same as | |
510 | wxBG_STYLE_PAINT, i.e. the background is not erased at all until | |
511 | EVT_PAINT handler is executed. | |
512 | ||
513 | This is the only background style value for which erase background | |
514 | events are generated at all. | |
515 | */ | |
516 | wxBG_STYLE_ERASE, | |
517 | ||
518 | /** | |
519 | Use the default background, as determined by the system or the current | |
520 | theme. | |
521 | ||
522 | If the window has been assigned a non-default background colour, it | |
523 | will be used for erasing its background. Otherwise the default | |
524 | background (which might be a gradient or a pattern) will be used. | |
525 | ||
526 | EVT_ERASE_BACKGROUND event will not be generated at all for windows | |
527 | with this style. | |
528 | */ | |
529 | wxBG_STYLE_SYSTEM, | |
530 | ||
531 | /** | |
532 | Indicates that the background is only erased in the user-defined | |
533 | EVT_PAINT handler. | |
534 | ||
535 | Using this style avoids flicker which would result from redrawing the | |
536 | background twice if the EVT_PAINT handler entirely overwrites it. It | |
537 | must not be used however if the paint handler leaves any parts of the | |
538 | window unpainted as their contents is then undetermined. Only use it if | |
539 | you repaint the whole window in your handler. | |
540 | ||
541 | EVT_ERASE_BACKGROUND event will not be generated at all for windows | |
542 | with this style. | |
543 | */ | |
544 | wxBG_STYLE_PAINT, | |
545 | ||
546 | /* this style is deprecated and doesn't do anything, don't use */ | |
547 | wxBG_STYLE_COLOUR, | |
548 | ||
549 | /** | |
550 | Indicates that the window background is not erased, letting the parent | |
551 | window show through. | |
552 | ||
553 | Currently this style is only supported in wxOSX and wxGTK with | |
554 | compositing available, see wxWindow::IsTransparentBackgroundSupported(). | |
555 | */ | |
556 | wxBG_STYLE_TRANSPARENT, | |
557 | }; | |
558 | ||
559 | ||
560 | /** | |
561 | Standard IDs. | |
562 | ||
563 | Notice that some, but @em not all, of these IDs are also stock IDs, i.e. | |
564 | you can use them for the button or menu items without specifying the label | |
565 | which will be provided by the underlying platform itself. See @ref page_stockitems "the | |
566 | list of stock items" for the subset of standard IDs which are stock IDs as well. | |
567 | */ | |
568 | enum wxStandardID | |
569 | { | |
570 | /** | |
571 | This id delimits the lower bound of the range used by automatically-generated ids | |
572 | (i.e. those used when wxID_ANY is specified during construction). | |
573 | */ | |
574 | wxID_AUTO_LOWEST, | |
575 | ||
576 | /** | |
577 | This id delimits the upper bound of the range used by automatically-generated ids | |
578 | (i.e. those used when wxID_ANY is specified during construction). | |
579 | */ | |
580 | wxID_AUTO_HIGHEST, | |
581 | ||
582 | /** | |
583 | No id matches this one when compared to it. | |
584 | */ | |
585 | wxID_NONE = -3, | |
586 | ||
587 | /** | |
588 | Id for a separator line in the menu (invalid for normal item). | |
589 | */ | |
590 | wxID_SEPARATOR = -2, | |
591 | ||
592 | /** | |
593 | Any id: means that we don't care about the id, whether when installing | |
594 | an event handler or when creating a new window. | |
595 | */ | |
596 | wxID_ANY = -1, | |
597 | ||
598 | wxID_LOWEST = 4999, | |
599 | ||
600 | wxID_OPEN, | |
601 | wxID_CLOSE, | |
602 | wxID_NEW, | |
603 | wxID_SAVE, | |
604 | wxID_SAVEAS, | |
605 | wxID_REVERT, | |
606 | wxID_EXIT, | |
607 | wxID_UNDO, | |
608 | wxID_REDO, | |
609 | wxID_HELP, | |
610 | wxID_PRINT, | |
611 | wxID_PRINT_SETUP, | |
612 | wxID_PAGE_SETUP, | |
613 | wxID_PREVIEW, | |
614 | wxID_ABOUT, | |
615 | wxID_HELP_CONTENTS, | |
616 | wxID_HELP_INDEX, | |
617 | wxID_HELP_SEARCH, | |
618 | wxID_HELP_COMMANDS, | |
619 | wxID_HELP_PROCEDURES, | |
620 | wxID_HELP_CONTEXT, | |
621 | wxID_CLOSE_ALL, | |
622 | wxID_PREFERENCES, | |
623 | ||
624 | wxID_EDIT = 5030, | |
625 | wxID_CUT, | |
626 | wxID_COPY, | |
627 | wxID_PASTE, | |
628 | wxID_CLEAR, | |
629 | wxID_FIND, | |
630 | wxID_DUPLICATE, | |
631 | wxID_SELECTALL, | |
632 | wxID_DELETE, | |
633 | wxID_REPLACE, | |
634 | wxID_REPLACE_ALL, | |
635 | wxID_PROPERTIES, | |
636 | ||
637 | wxID_VIEW_DETAILS, | |
638 | wxID_VIEW_LARGEICONS, | |
639 | wxID_VIEW_SMALLICONS, | |
640 | wxID_VIEW_LIST, | |
641 | wxID_VIEW_SORTDATE, | |
642 | wxID_VIEW_SORTNAME, | |
643 | wxID_VIEW_SORTSIZE, | |
644 | wxID_VIEW_SORTTYPE, | |
645 | ||
646 | wxID_FILE = 5050, | |
647 | wxID_FILE1, | |
648 | wxID_FILE2, | |
649 | wxID_FILE3, | |
650 | wxID_FILE4, | |
651 | wxID_FILE5, | |
652 | wxID_FILE6, | |
653 | wxID_FILE7, | |
654 | wxID_FILE8, | |
655 | wxID_FILE9, | |
656 | ||
657 | /** Standard button and menu IDs */ | |
658 | wxID_OK = 5100, | |
659 | wxID_CANCEL, | |
660 | wxID_APPLY, | |
661 | wxID_YES, | |
662 | wxID_NO, | |
663 | wxID_STATIC, | |
664 | wxID_FORWARD, | |
665 | wxID_BACKWARD, | |
666 | wxID_DEFAULT, | |
667 | wxID_MORE, | |
668 | wxID_SETUP, | |
669 | wxID_RESET, | |
670 | wxID_CONTEXT_HELP, | |
671 | wxID_YESTOALL, | |
672 | wxID_NOTOALL, | |
673 | wxID_ABORT, | |
674 | wxID_RETRY, | |
675 | wxID_IGNORE, | |
676 | wxID_ADD, | |
677 | wxID_REMOVE, | |
678 | ||
679 | wxID_UP, | |
680 | wxID_DOWN, | |
681 | wxID_HOME, | |
682 | wxID_REFRESH, | |
683 | wxID_STOP, | |
684 | wxID_INDEX, | |
685 | ||
686 | wxID_BOLD, | |
687 | wxID_ITALIC, | |
688 | wxID_JUSTIFY_CENTER, | |
689 | wxID_JUSTIFY_FILL, | |
690 | wxID_JUSTIFY_RIGHT, | |
691 | wxID_JUSTIFY_LEFT, | |
692 | wxID_UNDERLINE, | |
693 | wxID_INDENT, | |
694 | wxID_UNINDENT, | |
695 | wxID_ZOOM_100, | |
696 | wxID_ZOOM_FIT, | |
697 | wxID_ZOOM_IN, | |
698 | wxID_ZOOM_OUT, | |
699 | wxID_UNDELETE, | |
700 | wxID_REVERT_TO_SAVED, | |
701 | wxID_CDROM, | |
702 | wxID_CONVERT, | |
703 | wxID_EXECUTE, | |
704 | wxID_FLOPPY, | |
705 | wxID_HARDDISK, | |
706 | wxID_BOTTOM, | |
707 | wxID_FIRST, | |
708 | wxID_LAST, | |
709 | wxID_TOP, | |
710 | wxID_INFO, | |
711 | wxID_JUMP_TO, | |
712 | wxID_NETWORK, | |
713 | wxID_SELECT_COLOR, | |
714 | wxID_SELECT_FONT, | |
715 | wxID_SORT_ASCENDING, | |
716 | wxID_SORT_DESCENDING, | |
717 | wxID_SPELL_CHECK, | |
718 | wxID_STRIKETHROUGH, | |
719 | ||
720 | /** System menu IDs (used by wxUniv): */ | |
721 | wxID_SYSTEM_MENU = 5200, | |
722 | wxID_CLOSE_FRAME, | |
723 | wxID_MOVE_FRAME, | |
724 | wxID_RESIZE_FRAME, | |
725 | wxID_MAXIMIZE_FRAME, | |
726 | wxID_ICONIZE_FRAME, | |
727 | wxID_RESTORE_FRAME, | |
728 | ||
729 | /** MDI window menu ids */ | |
730 | wxID_MDI_WINDOW_FIRST = 5230, | |
731 | wxID_MDI_WINDOW_CASCADE = wxID_MDI_WINDOW_FIRST, | |
732 | wxID_MDI_WINDOW_TILE_HORZ, | |
733 | wxID_MDI_WINDOW_TILE_VERT, | |
734 | wxID_MDI_WINDOW_ARRANGE_ICONS, | |
735 | wxID_MDI_WINDOW_PREV, | |
736 | wxID_MDI_WINDOW_NEXT, | |
737 | wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT, | |
738 | ||
739 | /** IDs used by generic file dialog (13 consecutive starting from this value) */ | |
740 | wxID_FILEDLGG = 5900, | |
741 | ||
742 | /** IDs used by generic file ctrl (4 consecutive starting from this value) */ | |
743 | wxID_FILECTRL = 5950, | |
744 | ||
745 | wxID_HIGHEST = 5999 | |
746 | }; | |
747 | ||
748 | /** | |
749 | Item kinds for use with wxMenu, wxMenuItem, and wxToolBar. | |
750 | ||
751 | @see wxMenu::Append(), wxMenuItem::wxMenuItem(), wxToolBar::AddTool() | |
752 | */ | |
753 | enum wxItemKind | |
754 | { | |
755 | wxITEM_SEPARATOR = -1, | |
756 | ||
757 | /** | |
758 | Normal tool button / menu item. | |
759 | ||
760 | @see wxToolBar::AddTool(), wxMenu::AppendItem(). | |
761 | */ | |
762 | wxITEM_NORMAL, | |
763 | ||
764 | /** | |
765 | Check (or toggle) tool button / menu item. | |
766 | ||
767 | @see wxToolBar::AddCheckTool(), wxMenu::AppendCheckItem(). | |
768 | */ | |
769 | wxITEM_CHECK, | |
770 | ||
771 | /** | |
772 | Radio tool button / menu item. | |
773 | ||
774 | @see wxToolBar::AddRadioTool(), wxMenu::AppendRadioItem(). | |
775 | */ | |
776 | wxITEM_RADIO, | |
777 | ||
778 | /** | |
779 | Normal tool button with a dropdown arrow next to it. Clicking the | |
780 | dropdown arrow sends a @c wxEVT_TOOL_DROPDOWN event and may | |
781 | also display the menu previously associated with the item with | |
782 | wxToolBar::SetDropdownMenu(). Currently this type of tools is supported | |
783 | under MSW and GTK. | |
784 | */ | |
785 | wxITEM_DROPDOWN, | |
786 | ||
787 | wxITEM_MAX | |
788 | }; | |
789 | ||
790 | /** | |
791 | Generic hit test results. | |
792 | */ | |
793 | enum wxHitTest | |
794 | { | |
795 | wxHT_NOWHERE, | |
796 | ||
797 | /* scrollbar */ | |
798 | wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE, | |
799 | wxHT_SCROLLBAR_ARROW_LINE_1, /**< left or upper arrow to scroll by line */ | |
800 | wxHT_SCROLLBAR_ARROW_LINE_2, /**< right or down */ | |
801 | wxHT_SCROLLBAR_ARROW_PAGE_1, /**< left or upper arrow to scroll by page */ | |
802 | wxHT_SCROLLBAR_ARROW_PAGE_2, /**< right or down */ | |
803 | wxHT_SCROLLBAR_THUMB, /**< on the thumb */ | |
804 | wxHT_SCROLLBAR_BAR_1, /**< bar to the left/above the thumb */ | |
805 | wxHT_SCROLLBAR_BAR_2, /**< bar to the right/below the thumb */ | |
806 | wxHT_SCROLLBAR_LAST, | |
807 | ||
808 | /* window */ | |
809 | wxHT_WINDOW_OUTSIDE, /**< not in this window at all */ | |
810 | wxHT_WINDOW_INSIDE, /**< in the client area */ | |
811 | wxHT_WINDOW_VERT_SCROLLBAR, /**< on the vertical scrollbar */ | |
812 | wxHT_WINDOW_HORZ_SCROLLBAR, /**< on the horizontal scrollbar */ | |
813 | wxHT_WINDOW_CORNER, /**< on the corner between 2 scrollbars */ | |
814 | ||
815 | wxHT_MAX | |
816 | }; | |
817 | ||
818 | /** | |
819 | Data format IDs used by wxDataFormat. | |
820 | */ | |
821 | enum wxDataFormatId | |
822 | { | |
823 | wxDF_INVALID = 0, | |
824 | wxDF_TEXT = 1, /* CF_TEXT */ | |
825 | wxDF_BITMAP = 2, /* CF_BITMAP */ | |
826 | wxDF_METAFILE = 3, /* CF_METAFILEPICT */ | |
827 | wxDF_SYLK = 4, | |
828 | wxDF_DIF = 5, | |
829 | wxDF_TIFF = 6, | |
830 | wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ | |
831 | wxDF_DIB = 8, /* CF_DIB */ | |
832 | wxDF_PALETTE = 9, | |
833 | wxDF_PENDATA = 10, | |
834 | wxDF_RIFF = 11, | |
835 | wxDF_WAVE = 12, | |
836 | wxDF_UNICODETEXT = 13, | |
837 | wxDF_ENHMETAFILE = 14, | |
838 | wxDF_FILENAME = 15, /* CF_HDROP */ | |
839 | wxDF_LOCALE = 16, | |
840 | wxDF_PRIVATE = 20, | |
841 | wxDF_HTML = 30, /* Note: does not correspond to CF_ constant */ | |
842 | wxDF_MAX | |
843 | }; | |
844 | ||
845 | /** | |
846 | Virtual keycodes used by wxKeyEvent and some other wxWidgets functions. | |
847 | ||
848 | Note that the range <code>0..255</code> corresponds to the characters of | |
849 | the current locale, in particular the <code>32..127</code> subrange is for | |
850 | the ASCII symbols, and all the special key values such as @c WXK_END lie | |
851 | above this range. | |
852 | */ | |
853 | enum wxKeyCode | |
854 | { | |
855 | /** | |
856 | No key. | |
857 | ||
858 | This value is returned by wxKeyEvent::GetKeyCode() if there is no | |
859 | non-Unicode representation for the pressed key (e.g. a Cyrillic letter | |
860 | was entered when not using a Cyrillic locale) and by | |
861 | wxKeyEvent::GetUnicodeKey() if there is no Unicode representation for | |
862 | the key (this happens for the special, non printable, keys only, e.g. | |
863 | WXK_HOME). | |
864 | ||
865 | @since 2.9.2 (you can simply use 0 with previous versions). | |
866 | */ | |
867 | WXK_NONE = 0, | |
868 | ||
869 | WXK_CONTROL_A = 1, | |
870 | WXK_CONTROL_B, | |
871 | WXK_CONTROL_C, | |
872 | WXK_CONTROL_D, | |
873 | WXK_CONTROL_E, | |
874 | WXK_CONTROL_F, | |
875 | WXK_CONTROL_G, | |
876 | WXK_CONTROL_H, | |
877 | WXK_CONTROL_I, | |
878 | WXK_CONTROL_J, | |
879 | WXK_CONTROL_K, | |
880 | WXK_CONTROL_L, | |
881 | WXK_CONTROL_M, | |
882 | WXK_CONTROL_N, | |
883 | WXK_CONTROL_O, | |
884 | WXK_CONTROL_P, | |
885 | WXK_CONTROL_Q, | |
886 | WXK_CONTROL_R, | |
887 | WXK_CONTROL_S, | |
888 | WXK_CONTROL_T, | |
889 | WXK_CONTROL_U, | |
890 | WXK_CONTROL_V, | |
891 | WXK_CONTROL_W, | |
892 | WXK_CONTROL_X, | |
893 | WXK_CONTROL_Y, | |
894 | WXK_CONTROL_Z, | |
895 | ||
896 | WXK_BACK = 8, //!< Backspace. | |
897 | WXK_TAB = 9, | |
898 | WXK_RETURN = 13, | |
899 | WXK_ESCAPE = 27, | |
900 | WXK_SPACE = 32, | |
901 | ||
902 | WXK_DELETE = 127, | |
903 | ||
904 | /** | |
905 | Special key values. | |
906 | ||
907 | These are, by design, not compatible with Unicode characters. | |
908 | If you want to get a Unicode character from a key event, use | |
909 | wxKeyEvent::GetUnicodeKey() instead. | |
910 | */ | |
911 | WXK_START = 300, | |
912 | WXK_LBUTTON, | |
913 | WXK_RBUTTON, | |
914 | WXK_CANCEL, | |
915 | WXK_MBUTTON, | |
916 | WXK_CLEAR, | |
917 | WXK_SHIFT, | |
918 | WXK_ALT, | |
919 | /** Note that under Mac OS X, to improve compatibility with other | |
920 | * systems, 'WXK_CONTROL' represents the 'Command' key. Use this | |
921 | * constant to work with keyboard shortcuts. See 'WXK_RAW_CONTROL' | |
922 | * to get the state of the actual 'Control' key. | |
923 | */ | |
924 | WXK_CONTROL, | |
925 | /** Under Mac OS X, where the 'Command' key is mapped to 'Control' | |
926 | * to improve compatibility with other systems, WXK_RAW_CONTROL may | |
927 | * be used to obtain the state of the actual 'Control' key | |
928 | * ('WXK_CONTROL' would obtain the status of the 'Command' key). | |
929 | * Under Windows/Linux/Others, this is equivalent to WXK_CONTROL | |
930 | */ | |
931 | WXK_RAW_CONTROL, | |
932 | WXK_MENU, | |
933 | WXK_PAUSE, | |
934 | WXK_CAPITAL, | |
935 | WXK_END, | |
936 | WXK_HOME, | |
937 | WXK_LEFT, | |
938 | WXK_UP, | |
939 | WXK_RIGHT, | |
940 | WXK_DOWN, | |
941 | WXK_SELECT, | |
942 | WXK_PRINT, | |
943 | WXK_EXECUTE, | |
944 | WXK_SNAPSHOT, | |
945 | WXK_INSERT, | |
946 | WXK_HELP, | |
947 | WXK_NUMPAD0, | |
948 | WXK_NUMPAD1, | |
949 | WXK_NUMPAD2, | |
950 | WXK_NUMPAD3, | |
951 | WXK_NUMPAD4, | |
952 | WXK_NUMPAD5, | |
953 | WXK_NUMPAD6, | |
954 | WXK_NUMPAD7, | |
955 | WXK_NUMPAD8, | |
956 | WXK_NUMPAD9, | |
957 | WXK_MULTIPLY, | |
958 | WXK_ADD, | |
959 | WXK_SEPARATOR, | |
960 | WXK_SUBTRACT, | |
961 | WXK_DECIMAL, | |
962 | WXK_DIVIDE, | |
963 | WXK_F1, | |
964 | WXK_F2, | |
965 | WXK_F3, | |
966 | WXK_F4, | |
967 | WXK_F5, | |
968 | WXK_F6, | |
969 | WXK_F7, | |
970 | WXK_F8, | |
971 | WXK_F9, | |
972 | WXK_F10, | |
973 | WXK_F11, | |
974 | WXK_F12, | |
975 | WXK_F13, | |
976 | WXK_F14, | |
977 | WXK_F15, | |
978 | WXK_F16, | |
979 | WXK_F17, | |
980 | WXK_F18, | |
981 | WXK_F19, | |
982 | WXK_F20, | |
983 | WXK_F21, | |
984 | WXK_F22, | |
985 | WXK_F23, | |
986 | WXK_F24, | |
987 | WXK_NUMLOCK, | |
988 | WXK_SCROLL, | |
989 | WXK_PAGEUP, | |
990 | WXK_PAGEDOWN, | |
991 | ||
992 | WXK_NUMPAD_SPACE, | |
993 | WXK_NUMPAD_TAB, | |
994 | WXK_NUMPAD_ENTER, | |
995 | WXK_NUMPAD_F1, | |
996 | WXK_NUMPAD_F2, | |
997 | WXK_NUMPAD_F3, | |
998 | WXK_NUMPAD_F4, | |
999 | WXK_NUMPAD_HOME, | |
1000 | WXK_NUMPAD_LEFT, | |
1001 | WXK_NUMPAD_UP, | |
1002 | WXK_NUMPAD_RIGHT, | |
1003 | WXK_NUMPAD_DOWN, | |
1004 | WXK_NUMPAD_PAGEUP, | |
1005 | WXK_NUMPAD_PAGEDOWN, | |
1006 | WXK_NUMPAD_END, | |
1007 | WXK_NUMPAD_BEGIN, | |
1008 | WXK_NUMPAD_INSERT, | |
1009 | WXK_NUMPAD_DELETE, | |
1010 | WXK_NUMPAD_EQUAL, | |
1011 | WXK_NUMPAD_MULTIPLY, | |
1012 | WXK_NUMPAD_ADD, | |
1013 | WXK_NUMPAD_SEPARATOR, | |
1014 | WXK_NUMPAD_SUBTRACT, | |
1015 | WXK_NUMPAD_DECIMAL, | |
1016 | WXK_NUMPAD_DIVIDE, | |
1017 | ||
1018 | /** The following key codes are only generated under Windows currently */ | |
1019 | WXK_WINDOWS_LEFT, | |
1020 | WXK_WINDOWS_RIGHT, | |
1021 | WXK_WINDOWS_MENU , | |
1022 | ||
1023 | /** This special key code was used to represent the key used for keyboard shortcuts. Under Mac OS X, | |
1024 | * this key maps to the 'Command' (aka logo or 'Apple') key, whereas on Linux/Windows/others | |
1025 | * this is the Control key, with the new semantic of WXK_CONTROL, WXK_COMMAND is not needed anymore | |
1026 | */ | |
1027 | WXK_COMMAND, | |
1028 | ||
1029 | /** Hardware-specific buttons */ | |
1030 | WXK_SPECIAL1 = 193, | |
1031 | WXK_SPECIAL2, | |
1032 | WXK_SPECIAL3, | |
1033 | WXK_SPECIAL4, | |
1034 | WXK_SPECIAL5, | |
1035 | WXK_SPECIAL6, | |
1036 | WXK_SPECIAL7, | |
1037 | WXK_SPECIAL8, | |
1038 | WXK_SPECIAL9, | |
1039 | WXK_SPECIAL10, | |
1040 | WXK_SPECIAL11, | |
1041 | WXK_SPECIAL12, | |
1042 | WXK_SPECIAL13, | |
1043 | WXK_SPECIAL14, | |
1044 | WXK_SPECIAL15, | |
1045 | WXK_SPECIAL16, | |
1046 | WXK_SPECIAL17, | |
1047 | WXK_SPECIAL18, | |
1048 | WXK_SPECIAL19, | |
1049 | WXK_SPECIAL20 | |
1050 | }; | |
1051 | ||
1052 | /** | |
1053 | This enum contains bit mask constants used in wxKeyEvent. | |
1054 | */ | |
1055 | enum wxKeyModifier | |
1056 | { | |
1057 | wxMOD_NONE = 0x0000, | |
1058 | wxMOD_ALT = 0x0001, | |
1059 | /** Ctlr Key, corresponds to Command key on OS X */ | |
1060 | wxMOD_CONTROL = 0x0002, | |
1061 | wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL, | |
1062 | wxMOD_SHIFT = 0x0004, | |
1063 | wxMOD_META = 0x0008, | |
1064 | wxMOD_WIN = wxMOD_META, | |
1065 | ||
1066 | /** used to describe the true Ctrl Key under OSX, | |
1067 | identic to @c wxMOD_CONTROL on other platforms */ | |
1068 | wxMOD_RAW_CONTROL, | |
1069 | ||
1070 | /** deprecated, identic to @c wxMOD_CONTROL on all platforms */ | |
1071 | wxMOD_CMD = wxMOD_CONTROL, | |
1072 | wxMOD_ALL = 0xffff | |
1073 | }; | |
1074 | ||
1075 | /** | |
1076 | Paper size types for use with the printing framework. | |
1077 | ||
1078 | @see overview_printing, wxPrintData::SetPaperId() | |
1079 | */ | |
1080 | enum wxPaperSize | |
1081 | { | |
1082 | wxPAPER_10X11, ///< 10 x 11 in | |
1083 | wxPAPER_10X14, ///< 10-by-14-inch sheet | |
1084 | wxPAPER_11X17, ///< 11-by-17-inch sheet | |
1085 | wxPAPER_12X11, ///< 12 x 11 in | |
1086 | wxPAPER_15X11, ///< 15 x 11 in | |
1087 | wxPAPER_9X11, ///< 9 x 11 in | |
1088 | wxPAPER_A2, ///< A2 420 x 594 mm | |
1089 | wxPAPER_A3, ///< A3 sheet, 297 by 420 millimeters | |
1090 | wxPAPER_A3_EXTRA, ///< A3 Extra 322 x 445 mm | |
1091 | wxPAPER_A3_EXTRA_TRANSVERSE, ///< A3 Extra Transverse 322 x 445 mm | |
1092 | wxPAPER_A3_ROTATED, ///< A3 Rotated 420 x 297 mm | |
1093 | wxPAPER_A3_TRANSVERSE, ///< A3 Transverse 297 x 420 mm | |
1094 | wxPAPER_A4, ///< A4 Sheet, 210 by 297 millimeters | |
1095 | wxPAPER_A4SMALL, ///< A4 small sheet, 210 by 297 millimeters | |
1096 | wxPAPER_A4_EXTRA, ///< A4 Extra 9.27 x 12.69 in | |
1097 | wxPAPER_A4_PLUS, ///< A4 Plus 210 x 330 mm | |
1098 | wxPAPER_A4_ROTATED, ///< A4 Rotated 297 x 210 mm | |
1099 | wxPAPER_A4_TRANSVERSE, ///< A4 Transverse 210 x 297 mm | |
1100 | wxPAPER_A5, ///< A5 sheet, 148 by 210 millimeters | |
1101 | wxPAPER_A5_EXTRA, ///< A5 Extra 174 x 235 mm | |
1102 | wxPAPER_A5_ROTATED, ///< A5 Rotated 210 x 148 mm | |
1103 | wxPAPER_A5_TRANSVERSE, ///< A5 Transverse 148 x 210 mm | |
1104 | wxPAPER_A6, ///< A6 105 x 148 mm | |
1105 | wxPAPER_A6_ROTATED, ///< A6 Rotated 148 x 105 mm | |
1106 | wxPAPER_A_PLUS, ///< SuperA/SuperA/A4 227 x 356 mm | |
1107 | wxPAPER_B4, ///< B4 sheet, 250 by 354 millimeters | |
1108 | wxPAPER_B4_JIS_ROTATED, ///< B4 (JIS) Rotated 364 x 257 mm | |
1109 | wxPAPER_B5, ///< B5 sheet, 182-by-257-millimeter paper | |
1110 | wxPAPER_B5_EXTRA, ///< B5 (ISO) Extra 201 x 276 mm | |
1111 | wxPAPER_B5_JIS_ROTATED, ///< B5 (JIS) Rotated 257 x 182 mm | |
1112 | wxPAPER_B5_TRANSVERSE, ///< B5 (JIS) Transverse 182 x 257 mm | |
1113 | wxPAPER_B6_JIS, ///< B6 (JIS) 128 x 182 mm | |
1114 | wxPAPER_B6_JIS_ROTATED, ///< B6 (JIS) Rotated 182 x 128 mm | |
1115 | wxPAPER_B_PLUS, ///< SuperB/SuperB/A3 305 x 487 mm | |
1116 | wxPAPER_CSHEET, ///< C Sheet, 17 by 22 inches | |
1117 | wxPAPER_DBL_JAPANESE_POSTCARD, ///< Japanese Double Postcard 200 x 148 mm | |
1118 | wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED, ///< Double Japanese Postcard Rotated 148 x 200 mm | |
1119 | wxPAPER_DSHEET, ///< D Sheet, 22 by 34 inches | |
1120 | wxPAPER_ENV_10, ///< #10 Envelope, 4 1/8 by 9 1/2 inches | |
1121 | wxPAPER_ENV_11, ///< #11 Envelope, 4 1/2 by 10 3/8 inches | |
1122 | wxPAPER_ENV_12, ///< #12 Envelope, 4 3/4 by 11 inches | |
1123 | wxPAPER_ENV_14, ///< #14 Envelope, 5 by 11 1/2 inches | |
1124 | wxPAPER_ENV_9, ///< #9 Envelope, 3 7/8 by 8 7/8 inches | |
1125 | wxPAPER_ENV_B4, ///< B4 Envelope, 250 by 353 millimeters | |
1126 | wxPAPER_ENV_B5, ///< B5 Envelope, 176 by 250 millimeters | |
1127 | wxPAPER_ENV_B6, ///< B6 Envelope, 176 by 125 millimeters | |
1128 | wxPAPER_ENV_C3, ///< C3 Envelope, 324 by 458 millimeters | |
1129 | wxPAPER_ENV_C4, ///< C4 Envelope, 229 by 324 millimeters | |
1130 | wxPAPER_ENV_C5, ///< C5 Envelope, 162 by 229 millimeters | |
1131 | wxPAPER_ENV_C6, ///< C6 Envelope, 114 by 162 millimeters | |
1132 | wxPAPER_ENV_C65, ///< C65 Envelope, 114 by 229 millimeters | |
1133 | wxPAPER_ENV_DL, ///< DL Envelope, 110 by 220 millimeters | |
1134 | wxPAPER_ENV_INVITE, ///< Envelope Invite 220 x 220 mm | |
1135 | wxPAPER_ENV_ITALY, ///< Italy Envelope, 110 by 230 millimeters | |
1136 | wxPAPER_ENV_MONARCH, ///< Monarch Envelope, 3 7/8 by 7 1/2 inches | |
1137 | wxPAPER_ENV_PERSONAL, ///< 6 3/4 Envelope, 3 5/8 by 6 1/2 inches | |
1138 | wxPAPER_ESHEET, ///< E Sheet, 34 by 44 inches | |
1139 | wxPAPER_EXECUTIVE, ///< Executive, 7 1/4 by 10 1/2 inches | |
1140 | wxPAPER_FANFOLD_LGL_GERMAN, ///< German Legal Fanfold, 8 1/2 by 13 inches | |
1141 | wxPAPER_FANFOLD_STD_GERMAN, ///< German Std Fanfold, 8 1/2 by 12 inches | |
1142 | wxPAPER_FANFOLD_US, ///< US Std Fanfold, 14 7/8 by 11 inches | |
1143 | wxPAPER_FOLIO, ///< Folio, 8-1/2-by-13-inch paper | |
1144 | wxPAPER_ISO_B4, ///< B4 (ISO) 250 x 353 mm | |
1145 | wxPAPER_JAPANESE_POSTCARD, ///< Japanese Postcard 100 x 148 mm | |
1146 | wxPAPER_JAPANESE_POSTCARD_ROTATED, ///< Japanese Postcard Rotated 148 x 100 mm | |
1147 | wxPAPER_JENV_CHOU3, ///< Japanese Envelope Chou #3 | |
1148 | wxPAPER_JENV_CHOU3_ROTATED, ///< Japanese Envelope Chou #3 Rotated | |
1149 | wxPAPER_JENV_CHOU4, ///< Japanese Envelope Chou #4 | |
1150 | wxPAPER_JENV_CHOU4_ROTATED, ///< Japanese Envelope Chou #4 Rotated | |
1151 | wxPAPER_JENV_KAKU2, ///< Japanese Envelope Kaku #2 | |
1152 | wxPAPER_JENV_KAKU2_ROTATED, ///< Japanese Envelope Kaku #2 Rotated | |
1153 | wxPAPER_JENV_KAKU3, ///< Japanese Envelope Kaku #3 | |
1154 | wxPAPER_JENV_KAKU3_ROTATED, ///< Japanese Envelope Kaku #3 Rotated | |
1155 | wxPAPER_JENV_YOU4, ///< Japanese Envelope You #4 | |
1156 | wxPAPER_JENV_YOU4_ROTATED, ///< Japanese Envelope You #4 Rotated | |
1157 | wxPAPER_LEDGER, ///< Ledger, 17 by 11 inches | |
1158 | wxPAPER_LEGAL, ///< Legal, 8 1/2 by 14 inches | |
1159 | wxPAPER_LEGAL_EXTRA, ///< Legal Extra 9.5 x 15 in | |
1160 | wxPAPER_LETTER, ///< Letter, 8 1/2 by 11 inches | |
1161 | wxPAPER_LETTERSMALL, ///< Letter Small, 8 1/2 by 11 inches | |
1162 | wxPAPER_LETTER_EXTRA, ///< Letter Extra 9.5 x 12 in | |
1163 | wxPAPER_LETTER_EXTRA_TRANSVERSE, ///< Letter Extra Transverse 9.5 x 12 in | |
1164 | wxPAPER_LETTER_PLUS, ///< Letter Plus 8.5 x 12.69 in | |
1165 | wxPAPER_LETTER_ROTATED, ///< Letter Rotated 11 x 8 1/2 in | |
1166 | wxPAPER_LETTER_TRANSVERSE, ///< Letter Transverse 8.5 x 11 in | |
1167 | wxPAPER_NONE, ///< Use specific dimensions | |
1168 | wxPAPER_NOTE, ///< Note, 8 1/2 by 11 inches | |
1169 | wxPAPER_P16K, ///< PRC 16K 146 x 215 mm | |
1170 | wxPAPER_P16K_ROTATED, ///< PRC 16K Rotated | |
1171 | wxPAPER_P32K, ///< PRC 32K 97 x 151 mm | |
1172 | wxPAPER_P32KBIG, ///< PRC 32K(Big) 97 x 151 mm | |
1173 | wxPAPER_P32KBIG_ROTATED, ///< PRC 32K(Big) Rotated | |
1174 | wxPAPER_P32K_ROTATED, ///< PRC 32K Rotated | |
1175 | wxPAPER_PENV_1, ///< PRC Envelope #1 102 x 165 mm | |
1176 | wxPAPER_PENV_10, ///< PRC Envelope #10 324 x 458 mm | |
1177 | wxPAPER_PENV_10_ROTATED, ///< PRC Envelope #10 Rotated 458 x 324 m | |
1178 | wxPAPER_PENV_1_ROTATED, ///< PRC Envelope #1 Rotated 165 x 102 mm | |
1179 | wxPAPER_PENV_2, ///< PRC Envelope #2 102 x 176 mm | |
1180 | wxPAPER_PENV_2_ROTATED, ///< PRC Envelope #2 Rotated 176 x 102 mm | |
1181 | wxPAPER_PENV_3, ///< PRC Envelope #3 125 x 176 mm | |
1182 | wxPAPER_PENV_3_ROTATED, ///< PRC Envelope #3 Rotated 176 x 125 mm | |
1183 | wxPAPER_PENV_4, ///< PRC Envelope #4 110 x 208 mm | |
1184 | wxPAPER_PENV_4_ROTATED, ///< PRC Envelope #4 Rotated 208 x 110 mm | |
1185 | wxPAPER_PENV_5, ///< PRC Envelope #5 110 x 220 mm | |
1186 | wxPAPER_PENV_5_ROTATED, ///< PRC Envelope #5 Rotated 220 x 110 mm | |
1187 | wxPAPER_PENV_6, ///< PRC Envelope #6 120 x 230 mm | |
1188 | wxPAPER_PENV_6_ROTATED, ///< PRC Envelope #6 Rotated 230 x 120 mm | |
1189 | wxPAPER_PENV_7, ///< PRC Envelope #7 160 x 230 mm | |
1190 | wxPAPER_PENV_7_ROTATED, ///< PRC Envelope #7 Rotated 230 x 160 mm | |
1191 | wxPAPER_PENV_8, ///< PRC Envelope #8 120 x 309 mm | |
1192 | wxPAPER_PENV_8_ROTATED, ///< PRC Envelope #8 Rotated 309 x 120 mm | |
1193 | wxPAPER_PENV_9, ///< PRC Envelope #9 229 x 324 mm | |
1194 | wxPAPER_PENV_9_ROTATED, ///< PRC Envelope #9 Rotated 324 x 229 mm | |
1195 | wxPAPER_QUARTO, ///< Quarto, 215-by-275-millimeter paper | |
1196 | wxPAPER_STATEMENT, ///< Statement, 5 1/2 by 8 1/2 inches | |
1197 | wxPAPER_TABLOID, ///< Tabloid, 11 by 17 inches | |
1198 | wxPAPER_TABLOID_EXTRA ///< Tabloid Extra 11.69 x 18 in | |
1199 | }; | |
1200 | ||
1201 | /** | |
1202 | Printing orientation | |
1203 | */ | |
1204 | ||
1205 | enum wxPrintOrientation | |
1206 | { | |
1207 | wxPORTRAIT, | |
1208 | wxLANDSCAPE | |
1209 | }; | |
1210 | ||
1211 | /** | |
1212 | Duplex printing modes. | |
1213 | */ | |
1214 | enum wxDuplexMode | |
1215 | { | |
1216 | wxDUPLEX_SIMPLEX, /**< Non-duplex */ | |
1217 | wxDUPLEX_HORIZONTAL, | |
1218 | wxDUPLEX_VERTICAL | |
1219 | }; | |
1220 | ||
1221 | /** | |
1222 | Print quality. | |
1223 | */ | |
1224 | #define wxPRINT_QUALITY_HIGH -1 | |
1225 | #define wxPRINT_QUALITY_MEDIUM -2 | |
1226 | #define wxPRINT_QUALITY_LOW -3 | |
1227 | #define wxPRINT_QUALITY_DRAFT -4 | |
1228 | ||
1229 | typedef int wxPrintQuality; | |
1230 | ||
1231 | /** | |
1232 | Print mode (currently PostScript only). | |
1233 | */ | |
1234 | enum wxPrintMode | |
1235 | { | |
1236 | wxPRINT_MODE_NONE = 0, | |
1237 | wxPRINT_MODE_PREVIEW = 1, /**< Preview in external application */ | |
1238 | wxPRINT_MODE_FILE = 2, /**< Print to file */ | |
1239 | wxPRINT_MODE_PRINTER = 3, /**< Send to printer */ | |
1240 | wxPRINT_MODE_STREAM = 4 /**< Send postscript data into a stream */ | |
1241 | }; | |
1242 | ||
1243 | /** | |
1244 | Flags which can be used in wxWindow::UpdateWindowUI(). | |
1245 | */ | |
1246 | enum wxUpdateUI | |
1247 | { | |
1248 | wxUPDATE_UI_NONE, | |
1249 | wxUPDATE_UI_RECURSE, | |
1250 | wxUPDATE_UI_FROMIDLE /**< Invoked from On(Internal)Idle */ | |
1251 | }; | |
1252 | ||
1253 | ||
1254 | // ---------------------------------------------------------------------------- | |
1255 | // constants | |
1256 | // ---------------------------------------------------------------------------- | |
1257 | ||
1258 | /** | |
1259 | Top level window styles common to wxFrame and wxDialog | |
1260 | */ | |
1261 | ||
1262 | #define wxSTAY_ON_TOP 0x8000 | |
1263 | #define wxICONIZE 0x4000 | |
1264 | #define wxMINIMIZE wxICONIZE | |
1265 | #define wxMAXIMIZE 0x2000 | |
1266 | #define wxCLOSE_BOX 0x1000 | |
1267 | ||
1268 | #define wxSYSTEM_MENU 0x0800 | |
1269 | #define wxMINIMIZE_BOX 0x0400 | |
1270 | #define wxMAXIMIZE_BOX 0x0200 | |
1271 | ||
1272 | #define wxTINY_CAPTION 0x0080 // clashes with wxNO_DEFAULT | |
1273 | #define wxRESIZE_BORDER 0x0040 | |
1274 | ||
1275 | ||
1276 | /** | |
1277 | C99-like sized MIN/MAX constants for all integer types. | |
1278 | ||
1279 | For each @c n in the set 8, 16, 32, 64 we define @c wxINTn_MIN, @c | |
1280 | wxINTn_MAX and @c wxUINTc_MAX (@c wxUINTc_MIN is always 0 and so is not | |
1281 | defined). | |
1282 | */ | |
1283 | //@{ | |
1284 | #define wxINT8_MIN CHAR_MIN | |
1285 | #define wxINT8_MAX CHAR_MAX | |
1286 | #define wxUINT8_MAX UCHAR_MAX | |
1287 | ||
1288 | #define wxINT16_MIN SHRT_MIN | |
1289 | #define wxINT16_MAX SHRT_MAX | |
1290 | #define wxUINT16_MAX USHRT_MAX | |
1291 | ||
1292 | #define wxINT32_MIN INT_MIN-or-LONG_MIN | |
1293 | #define wxINT32_MAX INT_MAX-or-LONG_MAX | |
1294 | #define wxUINT32_MAX UINT_MAX-or-LONG_MAX | |
1295 | ||
1296 | #define wxINT64_MIN LLONG_MIN | |
1297 | #define wxINT64_MAX LLONG_MAX | |
1298 | #define wxUINT64_MAX ULLONG_MAX | |
1299 | //@} | |
1300 | ||
1301 | // ---------------------------------------------------------------------------- | |
1302 | // types | |
1303 | // ---------------------------------------------------------------------------- | |
1304 | ||
1305 | /** The type for screen and DC coordinates. */ | |
1306 | typedef int wxCoord; | |
1307 | ||
1308 | /** A special value meaning "use default coordinate". */ | |
1309 | wxCoord wxDefaultCoord = -1; | |
1310 | ||
1311 | //@{ | |
1312 | /** 8 bit type (the mapping is more complex than a simple @c typedef and is not shown here). */ | |
1313 | typedef signed char wxInt8; | |
1314 | typedef unsigned char wxUint8; | |
1315 | typedef wxUint8 wxByte; | |
1316 | //@} | |
1317 | ||
1318 | //@{ | |
1319 | /** 16 bit type (the mapping is more complex than a simple @c typedef and is not shown here). */ | |
1320 | typedef signed short wxInt16; | |
1321 | typedef unsigned short wxUint16; | |
1322 | typedef wxUint16 wxWord; | |
1323 | typedef wxUint16 wxChar16; | |
1324 | //@} | |
1325 | ||
1326 | //@{ | |
1327 | /** 32 bit type (the mapping is more complex than a simple @c typedef and is not shown here). */ | |
1328 | typedef int wxInt32; | |
1329 | typedef unsigned int wxUint32; | |
1330 | typedef wxUint32 wxDword; | |
1331 | typedef wxUint32 wxChar32; | |
1332 | //@} | |
1333 | ||
1334 | //@{ | |
1335 | /** 64 bit type (the mapping is more complex than a simple @c typedef and is not shown here). */ | |
1336 | typedef wxLongLong_t wxInt64; | |
1337 | typedef wxULongLong_t wxUint64; | |
1338 | //@} | |
1339 | ||
1340 | //@{ | |
1341 | /** | |
1342 | Signed and unsigned integral types big enough to contain all of @c long, | |
1343 | @c size_t and @c void*. | |
1344 | (The mapping is more complex than a simple @c typedef and is not shown here). | |
1345 | */ | |
1346 | typedef ssize_t wxIntPtr; | |
1347 | typedef size_t wxUIntPtr; | |
1348 | //@} | |
1349 | ||
1350 | ||
1351 | /** | |
1352 | 32 bit IEEE float ( 1 sign, 8 exponent bits, 23 fraction bits ). | |
1353 | (The mapping is more complex than a simple @c typedef and is not shown here). | |
1354 | */ | |
1355 | typedef float wxFloat32; | |
1356 | ||
1357 | ||
1358 | /** | |
1359 | 64 bit IEEE float ( 1 sign, 11 exponent bits, 52 fraction bits ). | |
1360 | (The mapping is more complex than a simple @c typedef and is not shown here). | |
1361 | */ | |
1362 | typedef double wxFloat64; | |
1363 | ||
1364 | /** | |
1365 | Native fastest representation that has at least wxFloat64 precision, so use | |
1366 | the IEEE types for storage, and this for calculations. | |
1367 | (The mapping is more complex than a simple @c typedef and is not shown here). | |
1368 | */ | |
1369 | typedef double wxDouble; | |
1370 | ||
1371 | ||
1372 | ||
1373 | // ---------------------------------------------------------------------------- | |
1374 | // macros | |
1375 | // ---------------------------------------------------------------------------- | |
1376 | ||
1377 | ||
1378 | /** @addtogroup group_funcmacro_byteorder */ | |
1379 | //@{ | |
1380 | ||
1381 | /** | |
1382 | This macro will swap the bytes of the @a value variable from little endian | |
1383 | to big endian or vice versa unconditionally, i.e. independently of the | |
1384 | current platform. | |
1385 | ||
1386 | @header{wx/defs.h} | |
1387 | */ | |
1388 | #define wxINT32_SWAP_ALWAYS( wxInt32_value ) | |
1389 | #define wxUINT32_SWAP_ALWAYS( wxUint32_value ) | |
1390 | #define wxINT16_SWAP_ALWAYS( wxInt16_value ) | |
1391 | #define wxUINT16_SWAP_ALWAYS( wxUint16_value ) | |
1392 | ||
1393 | //@} | |
1394 | ||
1395 | /** @addtogroup group_funcmacro_byteorder */ | |
1396 | //@{ | |
1397 | ||
1398 | /** | |
1399 | This macro will swap the bytes of the @a value variable from little endian | |
1400 | to big endian or vice versa if the program is compiled on a big-endian | |
1401 | architecture (such as Sun work stations). If the program has been compiled | |
1402 | on a little-endian architecture, the value will be unchanged. | |
1403 | ||
1404 | Use these macros to read data from and write data to a file that stores | |
1405 | data in little-endian (for example Intel i386) format. | |
1406 | ||
1407 | @header{wx/defs.h} | |
1408 | */ | |
1409 | #define wxINT32_SWAP_ON_BE( wxInt32_value ) | |
1410 | #define wxUINT32_SWAP_ON_BE( wxUint32_value ) | |
1411 | #define wxINT16_SWAP_ON_BE( wxInt16_value ) | |
1412 | #define wxUINT16_SWAP_ON_BE( wxUint16_value ) | |
1413 | ||
1414 | //@} | |
1415 | ||
1416 | /** @addtogroup group_funcmacro_byteorder */ | |
1417 | //@{ | |
1418 | ||
1419 | /** | |
1420 | This macro will swap the bytes of the @a value variable from little endian | |
1421 | to big endian or vice versa if the program is compiled on a little-endian | |
1422 | architecture (such as Intel PCs). If the program has been compiled on a | |
1423 | big-endian architecture, the value will be unchanged. | |
1424 | ||
1425 | Use these macros to read data from and write data to a file that stores | |
1426 | data in big-endian format. | |
1427 | ||
1428 | @header{wx/defs.h} | |
1429 | */ | |
1430 | #define wxINT32_SWAP_ON_LE( wxInt32_value ) | |
1431 | #define wxUINT32_SWAP_ON_LE( wxUint32_value ) | |
1432 | #define wxINT16_SWAP_ON_LE( wxInt16_value ) | |
1433 | #define wxUINT16_SWAP_ON_LE( wxUint16_value ) | |
1434 | ||
1435 | //@} | |
1436 | ||
1437 | ||
1438 | ||
1439 | /** @addtogroup group_funcmacro_misc */ | |
1440 | //@{ | |
1441 | ||
1442 | /** | |
1443 | This macro can be used in a class declaration to disable the generation of | |
1444 | default assignment operator. | |
1445 | ||
1446 | Some classes have a well-defined copy constructor but cannot have an | |
1447 | assignment operator, typically because they can't be modified once created. | |
1448 | In such case, this macro can be used to disable the automatic assignment | |
1449 | operator generation. | |
1450 | ||
1451 | @see wxDECLARE_NO_COPY_CLASS() | |
1452 | */ | |
1453 | #define wxDECLARE_NO_ASSIGN_CLASS(classname) | |
1454 | ||
1455 | /** | |
1456 | This macro can be used in a class declaration to disable the generation of | |
1457 | default copy ctor and assignment operator. | |
1458 | ||
1459 | Some classes don't have a well-defined copying semantics. In this case the | |
1460 | standard C++ convention is to not allow copying them. One way of achieving | |
1461 | it is to use this macro which simply defines a private copy constructor and | |
1462 | assignment operator. | |
1463 | ||
1464 | Beware that simply not defining copy constructor and assignment operator is | |
1465 | @em not enough as the compiler would provide its own automatically-generated | |
1466 | versions of them -- hence the usefulness of this macro. | |
1467 | ||
1468 | Example of use: | |
1469 | @code | |
1470 | class FooWidget | |
1471 | { | |
1472 | public: | |
1473 | FooWidget(); | |
1474 | ... | |
1475 | ||
1476 | private: | |
1477 | // widgets can't be copied | |
1478 | wxDECLARE_NO_COPY_CLASS(FooWidget); | |
1479 | }; | |
1480 | @endcode | |
1481 | ||
1482 | Notice that a semicolon must be used after this macro and that it changes | |
1483 | the access specifier to private internally so it is better to use it at the | |
1484 | end of the class declaration. | |
1485 | ||
1486 | @see wxDECLARE_NO_ASSIGN_CLASS(), wxDECLARE_NO_COPY_TEMPLATE_CLASS() | |
1487 | */ | |
1488 | #define wxDECLARE_NO_COPY_CLASS(classname) | |
1489 | ||
1490 | /** | |
1491 | Analog of wxDECLARE_NO_COPY_CLASS() for template classes. | |
1492 | ||
1493 | This macro can be used for template classes (with a single template | |
1494 | parameter) for the same purpose as wxDECLARE_NO_COPY_CLASS() is used with the | |
1495 | non-template classes. | |
1496 | ||
1497 | @param classname The name of the template class. | |
1498 | @param arg The name of the template parameter. | |
1499 | ||
1500 | @see wxDECLARE_NO_COPY_TEMPLATE_CLASS_2 | |
1501 | */ | |
1502 | #define wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) | |
1503 | ||
1504 | /** | |
1505 | Analog of wxDECLARE_NO_COPY_TEMPLATE_CLASS() for templates with 2 | |
1506 | parameters. | |
1507 | ||
1508 | This macro can be used for template classes with two template | |
1509 | parameters for the same purpose as wxDECLARE_NO_COPY_CLASS() is used with | |
1510 | the non-template classes. | |
1511 | ||
1512 | @param classname The name of the template class. | |
1513 | @param arg1 The name of the first template parameter. | |
1514 | @param arg2 The name of the second template parameter. | |
1515 | ||
1516 | @see wxDECLARE_NO_COPY_TEMPLATE_CLASS | |
1517 | */ | |
1518 | #define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2) | |
1519 | ||
1520 | /** | |
1521 | A function which deletes and nulls the pointer. | |
1522 | ||
1523 | This function uses operator delete to free the pointer and also sets it to | |
1524 | @NULL. Notice that this does @em not work for arrays, use wxDELETEA() for | |
1525 | them. | |
1526 | ||
1527 | @code | |
1528 | MyClass *ptr = new MyClass; | |
1529 | ... | |
1530 | wxDELETE(ptr); | |
1531 | wxASSERT(!ptr); | |
1532 | @endcode | |
1533 | ||
1534 | @header{wx/defs.h} | |
1535 | */ | |
1536 | template <typename T> wxDELETE(T*& ptr); | |
1537 | ||
1538 | /** | |
1539 | A function which deletes and nulls the pointer. | |
1540 | ||
1541 | This function uses vector operator delete (@c delete[]) to free the array | |
1542 | pointer and also sets it to @NULL. Notice that this does @em not work for | |
1543 | non-array pointers, use wxDELETE() for them. | |
1544 | ||
1545 | @code | |
1546 | MyClass *array = new MyClass[17]; | |
1547 | ... | |
1548 | wxDELETEA(array); | |
1549 | wxASSERT(!array); | |
1550 | @endcode | |
1551 | ||
1552 | @see wxDELETE() | |
1553 | ||
1554 | @header{wx/defs.h} | |
1555 | */ | |
1556 | template <typename T> wxDELETEA(T*& array); | |
1557 | ||
1558 | /** | |
1559 | This macro can be used around a function declaration to generate warnings | |
1560 | indicating that this function is deprecated (i.e. obsolete and planned to | |
1561 | be removed in the future) when it is used. Only Visual C++ 7 and higher and | |
1562 | g++ compilers currently support this functionality. | |
1563 | ||
1564 | Example of use: | |
1565 | ||
1566 | @code | |
1567 | // old function, use wxString version instead | |
1568 | wxDEPRECATED( void wxGetSomething(char *buf, size_t len) ); | |
1569 | ||
1570 | // ... | |
1571 | wxString wxGetSomething(); | |
1572 | @endcode | |
1573 | ||
1574 | @header{wx/defs.h} | |
1575 | */ | |
1576 | #define wxDEPRECATED(function) | |
1577 | ||
1578 | /** | |
1579 | This is a special version of wxDEPRECATED() macro which only does something | |
1580 | when the deprecated function is used from the code outside wxWidgets itself | |
1581 | but doesn't generate warnings when it is used from wxWidgets. | |
1582 | ||
1583 | It is used with the virtual functions which are called by the library | |
1584 | itself -- even if such function is deprecated the library still has to call | |
1585 | it to ensure that the existing code overriding it continues to work, but | |
1586 | the use of this macro ensures that a deprecation warning will be generated | |
1587 | if this function is used from the user code or, in case of Visual C++, even | |
1588 | when it is simply overridden. | |
1589 | ||
1590 | @header{wx/defs.h} | |
1591 | */ | |
1592 | #define wxDEPRECATED_BUT_USED_INTERNALLY(function) | |
1593 | ||
1594 | /** | |
1595 | This macro is similar to wxDEPRECATED() but can be used to not only declare | |
1596 | the function @a function as deprecated but to also provide its (inline) | |
1597 | implementation @a body. | |
1598 | ||
1599 | It can be used as following: | |
1600 | ||
1601 | @code | |
1602 | class wxFoo | |
1603 | { | |
1604 | public: | |
1605 | // OldMethod() is deprecated, use NewMethod() instead | |
1606 | void NewMethod(); | |
1607 | wxDEPRECATED_INLINE( void OldMethod(), NewMethod(); ) | |
1608 | }; | |
1609 | @endcode | |
1610 | ||
1611 | @header{wx/defs.h} | |
1612 | */ | |
1613 | #define wxDEPRECATED_INLINE(func, body) | |
1614 | ||
1615 | /** | |
1616 | A helper macro allowing to easily define a simple deprecated accessor. | |
1617 | ||
1618 | Compared to wxDEPRECATED_INLINE() it saves a @c return statement and, | |
1619 | especially, a strangely looking semicolon inside a macro. | |
1620 | ||
1621 | Example of use | |
1622 | @code | |
1623 | class wxFoo | |
1624 | { | |
1625 | public: | |
1626 | int GetValue() const { return m_value; } | |
1627 | ||
1628 | // this one is deprecated because it was erroneously non-const | |
1629 | wxDEPRECATED_ACCESSOR( int GetValue(), m_value ) | |
1630 | ||
1631 | private: | |
1632 | int m_value; | |
1633 | }; | |
1634 | @endcode | |
1635 | */ | |
1636 | #define wxDEPRECATED_ACCESSOR(func, what) | |
1637 | ||
1638 | /** | |
1639 | Combination of wxDEPRECATED_BUT_USED_INTERNALLY() and wxDEPRECATED_INLINE(). | |
1640 | ||
1641 | This macro should be used for deprecated functions called by the library | |
1642 | itself (usually for backwards compatibility reasons) and which are defined | |
1643 | inline. | |
1644 | ||
1645 | @header{wx/defs.h} | |
1646 | */ | |
1647 | #define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) | |
1648 | ||
1649 | /** | |
1650 | @c wxEXPLICIT is a macro which expands to the C++ @c explicit keyword if | |
1651 | the compiler supports it or nothing otherwise. Thus, it can be used even in | |
1652 | the code which might have to be compiled with an old compiler without | |
1653 | support for this language feature but still take advantage of it when it is | |
1654 | available. | |
1655 | ||
1656 | @header{wx/defs.h} | |
1657 | */ | |
1658 | #define wxEXPLICIT | |
1659 | ||
1660 | /** | |
1661 | GNU C++ compiler gives a warning for any class whose destructor is private | |
1662 | unless it has a friend. This warning may sometimes be useful but it doesn't | |
1663 | make sense for reference counted class which always delete themselves | |
1664 | (hence destructor should be private) but don't necessarily have any | |
1665 | friends, so this macro is provided to disable the warning in such case. The | |
1666 | @a name parameter should be the name of the class but is only used to | |
1667 | construct a unique friend class name internally. | |
1668 | ||
1669 | Example of using the macro: | |
1670 | ||
1671 | @code | |
1672 | class RefCounted | |
1673 | { | |
1674 | public: | |
1675 | RefCounted() { m_nRef = 1; } | |
1676 | void IncRef() { m_nRef++ ; } | |
1677 | void DecRef() { if ( !--m_nRef ) delete this; } | |
1678 | ||
1679 | private: | |
1680 | ~RefCounted() { } | |
1681 | ||
1682 | wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted) | |
1683 | }; | |
1684 | @endcode | |
1685 | ||
1686 | Notice that there should be no semicolon after this macro. | |
1687 | ||
1688 | @header{wx/defs.h} | |
1689 | */ | |
1690 | #define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name) | |
1691 | ||
1692 | /** | |
1693 | Swaps the contents of two variables. | |
1694 | ||
1695 | This is similar to std::swap() but can be used even on the platforms where | |
1696 | the standard C++ library is not available (if you don't target such | |
1697 | platforms, please use std::swap() instead). | |
1698 | ||
1699 | The function relies on type T being copy constructible and assignable. | |
1700 | ||
1701 | Example of use: | |
1702 | @code | |
1703 | int x = 3, | |
1704 | y = 4; | |
1705 | wxSwap(x, y); | |
1706 | wxASSERT( x == 4 && y == 3 ); | |
1707 | @endcode | |
1708 | */ | |
1709 | template <typename T> wxSwap(T& first, T& second); | |
1710 | ||
1711 | /** | |
1712 | This macro is the same as the standard C99 @c va_copy for the compilers | |
1713 | which support it or its replacement for those that don't. It must be used | |
1714 | to preserve the value of a @c va_list object if you need to use it after | |
1715 | passing it to another function because it can be modified by the latter. | |
1716 | ||
1717 | As with @c va_start, each call to @c wxVaCopy must have a matching | |
1718 | @c va_end. | |
1719 | ||
1720 | @header{wx/defs.h} | |
1721 | */ | |
1722 | void wxVaCopy(va_list argptrDst, va_list argptrSrc); | |
1723 | ||
1724 | //@} | |
1725 | ||
1726 |