]>
Commit | Line | Data |
---|---|---|
23324ae1 | 1 | ///////////////////////////////////////////////////////////////////////////// |
706068e4 | 2 | // Name: wx/defs.h |
e54c96f1 | 3 | // Purpose: interface of global functions |
7c913512 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
ff7774f1 FM |
9 | |
10 | /** | |
99d82720 | 11 | Generic flags. |
ff7774f1 | 12 | */ |
99d82720 FM |
13 | enum wxGeometryCentre |
14 | { | |
15 | wxCENTRE = 0x0001, | |
16 | wxCENTER = wxCENTRE | |
17 | }; | |
18 | ||
19 | ||
20 | /** | |
21 | A generic orientation value. | |
22 | */ | |
23 | enum wxOrientation | |
24 | { | |
25 | wxHORIZONTAL = 0x0004, | |
26 | wxVERTICAL = 0x0008, | |
27 | ||
28 | /** | |
29 | A mask value to indicate both vertical and horizontal orientations. | |
30 | */ | |
31 | wxBOTH = wxVERTICAL | wxHORIZONTAL, | |
32 | ||
33 | /// A synonim for @c wxBOTH. | |
34 | wxORIENTATION_MASK = wxBOTH | |
35 | }; | |
36 | ||
37 | /** | |
38 | A generic direction value. | |
39 | */ | |
40 | enum wxDirection | |
41 | { | |
42 | wxLEFT = 0x0010, | |
43 | wxRIGHT = 0x0020, | |
44 | wxUP = 0x0040, | |
45 | wxDOWN = 0x0080, | |
46 | ||
47 | wxTOP = wxUP, | |
48 | wxBOTTOM = wxDOWN, | |
49 | ||
50 | wxNORTH = wxUP, | |
51 | wxSOUTH = wxDOWN, | |
52 | wxWEST = wxLEFT, | |
53 | wxEAST = wxRIGHT, | |
54 | ||
55 | wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT), | |
56 | ||
57 | /** A mask to extract direction from the combination of flags. */ | |
58 | wxDIRECTION_MASK = wxALL | |
59 | }; | |
60 | ||
61 | /** | |
62 | Generic alignment values. Can be combined together. | |
63 | */ | |
64 | enum wxAlignment | |
65 | { | |
66 | wxALIGN_NOT = 0x0000, | |
67 | wxALIGN_CENTER_HORIZONTAL = 0x0100, | |
68 | wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL, | |
69 | wxALIGN_LEFT = wxALIGN_NOT, | |
70 | wxALIGN_TOP = wxALIGN_NOT, | |
71 | wxALIGN_RIGHT = 0x0200, | |
72 | wxALIGN_BOTTOM = 0x0400, | |
73 | wxALIGN_CENTER_VERTICAL = 0x0800, | |
74 | wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, | |
75 | ||
76 | wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), | |
77 | wxALIGN_CENTRE = wxALIGN_CENTER, | |
78 | ||
79 | /** A mask to extract alignment from the combination of flags. */ | |
80 | wxALIGN_MASK = 0x0f00 | |
81 | }; | |
82 | ||
83 | /** | |
84 | Miscellaneous flags for wxSizer items. | |
85 | */ | |
86 | enum wxSizerFlagBits | |
87 | { | |
88 | wxFIXED_MINSIZE = 0x8000, | |
89 | wxRESERVE_SPACE_EVEN_IF_HIDDEN = 0x0002, | |
90 | ||
91 | /* a mask to extract wxSizerFlagBits from combination of flags */ | |
92 | wxSIZER_FLAG_BITS_MASK = 0x8002 | |
93 | }; | |
ff7774f1 FM |
94 | |
95 | /** | |
99d82720 | 96 | Generic stretch values. |
ff7774f1 | 97 | */ |
99d82720 FM |
98 | enum wxStretch |
99 | { | |
100 | wxSTRETCH_NOT = 0x0000, | |
101 | wxSHRINK = 0x1000, | |
102 | wxGROW = 0x2000, | |
103 | wxEXPAND = wxGROW, | |
104 | wxSHAPED = 0x4000, | |
105 | wxTILE = wxSHAPED | wxFIXED_MINSIZE, | |
106 | ||
107 | /* a mask to extract stretch from the combination of flags */ | |
108 | wxSTRETCH_MASK = 0x7000 /* sans wxTILE */ | |
109 | }; | |
ff7774f1 FM |
110 | |
111 | /** | |
99d82720 | 112 | Border flags for wxWindow. |
ff7774f1 | 113 | */ |
99d82720 FM |
114 | enum wxBorder |
115 | { | |
116 | /** | |
117 | This is different from wxBORDER_NONE as by default the controls do have | |
118 | a border. | |
119 | */ | |
120 | wxBORDER_DEFAULT = 0, | |
121 | ||
122 | wxBORDER_NONE = 0x00200000, | |
123 | wxBORDER_STATIC = 0x01000000, | |
124 | wxBORDER_SIMPLE = 0x02000000, | |
125 | wxBORDER_RAISED = 0x04000000, | |
126 | wxBORDER_SUNKEN = 0x08000000, | |
127 | wxBORDER_DOUBLE = 0x10000000, /* deprecated */ | |
128 | wxBORDER_THEME = wxBORDER_DOUBLE, | |
129 | ||
130 | /* a mask to extract border style from the combination of flags */ | |
131 | wxBORDER_MASK = 0x1f200000 | |
132 | }; | |
133 | ||
134 | ||
135 | /** | |
136 | Background styles. See wxWindow::SetBackgroundStyle(). | |
137 | */ | |
138 | enum wxBackgroundStyle | |
139 | { | |
140 | /// Use the default background, as determined by | |
141 | /// the system or the current theme. | |
142 | wxBG_STYLE_SYSTEM, | |
143 | ||
144 | /// Use a solid colour for the background, this style is set automatically if you call | |
145 | /// SetBackgroundColour() so you only need to set it explicitly if you had | |
146 | /// changed the background style to something else before. | |
147 | wxBG_STYLE_COLOUR, | |
148 | ||
149 | /// Don't draw the background at all, it's supposed that it is drawn by | |
150 | /// the user-defined erase background event handler. | |
151 | /// This style should be used to avoid flicker when the background is entirely | |
152 | /// custom-drawn. | |
153 | wxBG_STYLE_CUSTOM, | |
154 | ||
155 | /// The background is (partially) transparent,this style is automatically set if you call | |
156 | /// SetTransparent() which is used to set the transparency level. | |
157 | wxBG_STYLE_TRANSPARENT | |
158 | }; | |
159 | ||
160 | ||
161 | /** | |
162 | Standard menu IDs. | |
163 | */ | |
164 | enum wxStandardID | |
165 | { | |
166 | /** | |
167 | This id delimits the lower bound of the range used by automatically-generated ids | |
168 | (i.e. those used when wxID_ANY is specified during construction). | |
169 | */ | |
170 | wxID_AUTO_LOWEST, | |
171 | ||
172 | /** | |
173 | This id delimits the upper bound of the range used by automatically-generated ids | |
174 | (i.e. those used when wxID_ANY is specified during construction). | |
175 | */ | |
176 | wxID_AUTO_HIGHEST, | |
177 | ||
178 | /** | |
179 | No id matches this one when compared to it. | |
180 | */ | |
181 | wxID_NONE = -3, | |
182 | ||
183 | /** | |
184 | Id for a separator line in the menu (invalid for normal item). | |
185 | */ | |
186 | wxID_SEPARATOR = -2, | |
187 | ||
188 | /** | |
189 | Any id: means that we don't care about the id, whether when installing | |
190 | an event handler or when creating a new window. | |
191 | */ | |
192 | wxID_ANY = -1, | |
193 | ||
194 | wxID_LOWEST = 4999, | |
195 | ||
196 | wxID_OPEN, | |
197 | wxID_CLOSE, | |
198 | wxID_NEW, | |
199 | wxID_SAVE, | |
200 | wxID_SAVEAS, | |
201 | wxID_REVERT, | |
202 | wxID_EXIT, | |
203 | wxID_UNDO, | |
204 | wxID_REDO, | |
205 | wxID_HELP, | |
206 | wxID_PRINT, | |
207 | wxID_PRINT_SETUP, | |
208 | wxID_PAGE_SETUP, | |
209 | wxID_PREVIEW, | |
210 | wxID_ABOUT, | |
211 | wxID_HELP_CONTENTS, | |
212 | wxID_HELP_INDEX, | |
213 | wxID_HELP_SEARCH, | |
214 | wxID_HELP_COMMANDS, | |
215 | wxID_HELP_PROCEDURES, | |
216 | wxID_HELP_CONTEXT, | |
217 | wxID_CLOSE_ALL, | |
218 | wxID_PREFERENCES, | |
219 | ||
220 | wxID_EDIT = 5030, | |
221 | wxID_CUT, | |
222 | wxID_COPY, | |
223 | wxID_PASTE, | |
224 | wxID_CLEAR, | |
225 | wxID_FIND, | |
226 | wxID_DUPLICATE, | |
227 | wxID_SELECTALL, | |
228 | wxID_DELETE, | |
229 | wxID_REPLACE, | |
230 | wxID_REPLACE_ALL, | |
231 | wxID_PROPERTIES, | |
232 | ||
233 | wxID_VIEW_DETAILS, | |
234 | wxID_VIEW_LARGEICONS, | |
235 | wxID_VIEW_SMALLICONS, | |
236 | wxID_VIEW_LIST, | |
237 | wxID_VIEW_SORTDATE, | |
238 | wxID_VIEW_SORTNAME, | |
239 | wxID_VIEW_SORTSIZE, | |
240 | wxID_VIEW_SORTTYPE, | |
241 | ||
242 | wxID_FILE = 5050, | |
243 | wxID_FILE1, | |
244 | wxID_FILE2, | |
245 | wxID_FILE3, | |
246 | wxID_FILE4, | |
247 | wxID_FILE5, | |
248 | wxID_FILE6, | |
249 | wxID_FILE7, | |
250 | wxID_FILE8, | |
251 | wxID_FILE9, | |
252 | ||
253 | /** Standard button and menu IDs */ | |
254 | wxID_OK = 5100, | |
255 | wxID_CANCEL, | |
256 | wxID_APPLY, | |
257 | wxID_YES, | |
258 | wxID_NO, | |
259 | wxID_STATIC, | |
260 | wxID_FORWARD, | |
261 | wxID_BACKWARD, | |
262 | wxID_DEFAULT, | |
263 | wxID_MORE, | |
264 | wxID_SETUP, | |
265 | wxID_RESET, | |
266 | wxID_CONTEXT_HELP, | |
267 | wxID_YESTOALL, | |
268 | wxID_NOTOALL, | |
269 | wxID_ABORT, | |
270 | wxID_RETRY, | |
271 | wxID_IGNORE, | |
272 | wxID_ADD, | |
273 | wxID_REMOVE, | |
274 | ||
275 | wxID_UP, | |
276 | wxID_DOWN, | |
277 | wxID_HOME, | |
278 | wxID_REFRESH, | |
279 | wxID_STOP, | |
280 | wxID_INDEX, | |
281 | ||
282 | wxID_BOLD, | |
283 | wxID_ITALIC, | |
284 | wxID_JUSTIFY_CENTER, | |
285 | wxID_JUSTIFY_FILL, | |
286 | wxID_JUSTIFY_RIGHT, | |
287 | wxID_JUSTIFY_LEFT, | |
288 | wxID_UNDERLINE, | |
289 | wxID_INDENT, | |
290 | wxID_UNINDENT, | |
291 | wxID_ZOOM_100, | |
292 | wxID_ZOOM_FIT, | |
293 | wxID_ZOOM_IN, | |
294 | wxID_ZOOM_OUT, | |
295 | wxID_UNDELETE, | |
296 | wxID_REVERT_TO_SAVED, | |
297 | wxID_CDROM, | |
298 | wxID_CONVERT, | |
299 | wxID_EXECUTE, | |
300 | wxID_FLOPPY, | |
301 | wxID_HARDDISK, | |
302 | wxID_BOTTOM, | |
303 | wxID_FIRST, | |
304 | wxID_LAST, | |
305 | wxID_TOP, | |
306 | wxID_INFO, | |
307 | wxID_JUMP_TO, | |
308 | wxID_NETWORK, | |
309 | wxID_SELECT_COLOR, | |
310 | wxID_SELECT_FONT, | |
311 | wxID_SORT_ASCENDING, | |
312 | wxID_SORT_DESCENDING, | |
313 | wxID_SPELL_CHECK, | |
314 | wxID_STRIKETHROUGH, | |
315 | ||
316 | /** System menu IDs (used by wxUniv): */ | |
317 | wxID_SYSTEM_MENU = 5200, | |
318 | wxID_CLOSE_FRAME, | |
319 | wxID_MOVE_FRAME, | |
320 | wxID_RESIZE_FRAME, | |
321 | wxID_MAXIMIZE_FRAME, | |
322 | wxID_ICONIZE_FRAME, | |
323 | wxID_RESTORE_FRAME, | |
324 | ||
325 | /** MDI window menu ids */ | |
326 | wxID_MDI_WINDOW_FIRST = 5230, | |
327 | wxID_MDI_WINDOW_CASCADE = wxID_MDI_WINDOW_FIRST, | |
328 | wxID_MDI_WINDOW_TILE_HORZ, | |
329 | wxID_MDI_WINDOW_TILE_VERT, | |
330 | wxID_MDI_WINDOW_ARRANGE_ICONS, | |
331 | wxID_MDI_WINDOW_PREV, | |
332 | wxID_MDI_WINDOW_NEXT, | |
333 | wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT, | |
334 | ||
335 | /** IDs used by generic file dialog (13 consecutive starting from this value) */ | |
336 | wxID_FILEDLGG = 5900, | |
337 | ||
338 | /** IDs used by generic file ctrl (4 consecutive starting from this value) */ | |
339 | wxID_FILECTRL = 5950, | |
340 | ||
341 | wxID_HIGHEST = 5999 | |
342 | }; | |
ff7774f1 | 343 | |
f992f2ae BP |
344 | /** |
345 | Item kinds for use with wxMenu, wxMenuItem, and wxToolBar. | |
706068e4 | 346 | |
f992f2ae BP |
347 | @see wxMenu::Append(), wxMenuItem::wxMenuItem(), wxToolBar::AddTool() |
348 | */ | |
349 | enum wxItemKind | |
350 | { | |
351 | wxITEM_SEPARATOR = -1, | |
352 | ||
353 | /** | |
354 | Normal tool button / menu item. | |
355 | ||
356 | @see wxToolBar::AddTool(), wxMenu::AppendItem(). | |
357 | */ | |
358 | wxITEM_NORMAL, | |
359 | ||
360 | /** | |
361 | Check (or toggle) tool button / menu item. | |
362 | ||
363 | @see wxToolBar::AddCheckTool(), wxMenu::AppendCheckItem(). | |
364 | */ | |
365 | wxITEM_CHECK, | |
366 | ||
367 | /** | |
368 | Radio tool button / menu item. | |
369 | ||
370 | @see wxToolBar::AddRadioTool(), wxMenu::AppendRadioItem(). | |
371 | */ | |
372 | wxITEM_RADIO, | |
373 | ||
374 | /** | |
375 | Normal tool button with a dropdown arrow next to it. Clicking the | |
376 | dropdown arrow sends a @c wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED event and may | |
377 | also display the menu previously associated with the item with | |
378 | wxToolBar::SetDropdownMenu(). Currently this type of tools is supported | |
379 | under MSW and GTK. | |
380 | */ | |
381 | wxITEM_DROPDOWN, | |
382 | ||
383 | wxITEM_MAX | |
384 | }; | |
385 | ||
99d82720 FM |
386 | /** |
387 | Generic hit test results. | |
388 | */ | |
389 | enum wxHitTest | |
390 | { | |
391 | wxHT_NOWHERE, | |
392 | ||
393 | /* scrollbar */ | |
394 | wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE, | |
395 | wxHT_SCROLLBAR_ARROW_LINE_1, /**< left or upper arrow to scroll by line */ | |
396 | wxHT_SCROLLBAR_ARROW_LINE_2, /**< right or down */ | |
397 | wxHT_SCROLLBAR_ARROW_PAGE_1, /**< left or upper arrow to scroll by page */ | |
398 | wxHT_SCROLLBAR_ARROW_PAGE_2, /**< right or down */ | |
399 | wxHT_SCROLLBAR_THUMB, /**< on the thumb */ | |
400 | wxHT_SCROLLBAR_BAR_1, /**< bar to the left/above the thumb */ | |
401 | wxHT_SCROLLBAR_BAR_2, /**< bar to the right/below the thumb */ | |
402 | wxHT_SCROLLBAR_LAST, | |
403 | ||
404 | /* window */ | |
405 | wxHT_WINDOW_OUTSIDE, /**< not in this window at all */ | |
406 | wxHT_WINDOW_INSIDE, /**< in the client area */ | |
407 | wxHT_WINDOW_VERT_SCROLLBAR, /**< on the vertical scrollbar */ | |
408 | wxHT_WINDOW_HORZ_SCROLLBAR, /**< on the horizontal scrollbar */ | |
409 | wxHT_WINDOW_CORNER, /**< on the corner between 2 scrollbars */ | |
410 | ||
411 | wxHT_MAX | |
412 | }; | |
413 | ||
414 | /** | |
415 | Data format IDs used by wxDataFormat. | |
416 | */ | |
417 | enum wxDataFormatId | |
418 | { | |
419 | wxDF_INVALID = 0, | |
420 | wxDF_TEXT = 1, /* CF_TEXT */ | |
421 | wxDF_BITMAP = 2, /* CF_BITMAP */ | |
422 | wxDF_METAFILE = 3, /* CF_METAFILEPICT */ | |
423 | wxDF_SYLK = 4, | |
424 | wxDF_DIF = 5, | |
425 | wxDF_TIFF = 6, | |
426 | wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ | |
427 | wxDF_DIB = 8, /* CF_DIB */ | |
428 | wxDF_PALETTE = 9, | |
429 | wxDF_PENDATA = 10, | |
430 | wxDF_RIFF = 11, | |
431 | wxDF_WAVE = 12, | |
432 | wxDF_UNICODETEXT = 13, | |
433 | wxDF_ENHMETAFILE = 14, | |
434 | wxDF_FILENAME = 15, /* CF_HDROP */ | |
435 | wxDF_LOCALE = 16, | |
436 | wxDF_PRIVATE = 20, | |
437 | wxDF_HTML = 30, /* Note: does not correspond to CF_ constant */ | |
438 | wxDF_MAX | |
439 | }; | |
440 | ||
441 | /** | |
442 | Virtual keycodes | |
443 | */ | |
444 | enum wxKeyCode | |
445 | { | |
446 | WXK_BACK = 8, | |
447 | WXK_TAB = 9, | |
448 | WXK_RETURN = 13, | |
449 | WXK_ESCAPE = 27, | |
450 | WXK_SPACE = 32, | |
451 | WXK_DELETE = 127, | |
452 | ||
453 | /** | |
454 | These are, by design, not compatible with unicode characters. | |
455 | If you want to get a unicode character from a key event, use | |
456 | wxKeyEvent::GetUnicodeKey instead. | |
457 | */ | |
458 | WXK_START = 300, | |
459 | WXK_LBUTTON, | |
460 | WXK_RBUTTON, | |
461 | WXK_CANCEL, | |
462 | WXK_MBUTTON, | |
463 | WXK_CLEAR, | |
464 | WXK_SHIFT, | |
465 | WXK_ALT, | |
466 | WXK_CONTROL, | |
467 | WXK_MENU, | |
468 | WXK_PAUSE, | |
469 | WXK_CAPITAL, | |
470 | WXK_END, | |
471 | WXK_HOME, | |
472 | WXK_LEFT, | |
473 | WXK_UP, | |
474 | WXK_RIGHT, | |
475 | WXK_DOWN, | |
476 | WXK_SELECT, | |
477 | WXK_PRINT, | |
478 | WXK_EXECUTE, | |
479 | WXK_SNAPSHOT, | |
480 | WXK_INSERT, | |
481 | WXK_HELP, | |
482 | WXK_NUMPAD0, | |
483 | WXK_NUMPAD1, | |
484 | WXK_NUMPAD2, | |
485 | WXK_NUMPAD3, | |
486 | WXK_NUMPAD4, | |
487 | WXK_NUMPAD5, | |
488 | WXK_NUMPAD6, | |
489 | WXK_NUMPAD7, | |
490 | WXK_NUMPAD8, | |
491 | WXK_NUMPAD9, | |
492 | WXK_MULTIPLY, | |
493 | WXK_ADD, | |
494 | WXK_SEPARATOR, | |
495 | WXK_SUBTRACT, | |
496 | WXK_DECIMAL, | |
497 | WXK_DIVIDE, | |
498 | WXK_F1, | |
499 | WXK_F2, | |
500 | WXK_F3, | |
501 | WXK_F4, | |
502 | WXK_F5, | |
503 | WXK_F6, | |
504 | WXK_F7, | |
505 | WXK_F8, | |
506 | WXK_F9, | |
507 | WXK_F10, | |
508 | WXK_F11, | |
509 | WXK_F12, | |
510 | WXK_F13, | |
511 | WXK_F14, | |
512 | WXK_F15, | |
513 | WXK_F16, | |
514 | WXK_F17, | |
515 | WXK_F18, | |
516 | WXK_F19, | |
517 | WXK_F20, | |
518 | WXK_F21, | |
519 | WXK_F22, | |
520 | WXK_F23, | |
521 | WXK_F24, | |
522 | WXK_NUMLOCK, | |
523 | WXK_SCROLL, | |
524 | WXK_PAGEUP, | |
525 | WXK_PAGEDOWN, | |
526 | ||
527 | WXK_NUMPAD_SPACE, | |
528 | WXK_NUMPAD_TAB, | |
529 | WXK_NUMPAD_ENTER, | |
530 | WXK_NUMPAD_F1, | |
531 | WXK_NUMPAD_F2, | |
532 | WXK_NUMPAD_F3, | |
533 | WXK_NUMPAD_F4, | |
534 | WXK_NUMPAD_HOME, | |
535 | WXK_NUMPAD_LEFT, | |
536 | WXK_NUMPAD_UP, | |
537 | WXK_NUMPAD_RIGHT, | |
538 | WXK_NUMPAD_DOWN, | |
539 | WXK_NUMPAD_PAGEUP, | |
540 | WXK_NUMPAD_PAGEDOWN, | |
541 | WXK_NUMPAD_END, | |
542 | WXK_NUMPAD_BEGIN, | |
543 | WXK_NUMPAD_INSERT, | |
544 | WXK_NUMPAD_DELETE, | |
545 | WXK_NUMPAD_EQUAL, | |
546 | WXK_NUMPAD_MULTIPLY, | |
547 | WXK_NUMPAD_ADD, | |
548 | WXK_NUMPAD_SEPARATOR, | |
549 | WXK_NUMPAD_SUBTRACT, | |
550 | WXK_NUMPAD_DECIMAL, | |
551 | WXK_NUMPAD_DIVIDE, | |
552 | ||
553 | /** The following key codes are only generated under Windows currently */ | |
554 | WXK_WINDOWS_LEFT, | |
555 | WXK_WINDOWS_RIGHT, | |
556 | WXK_WINDOWS_MENU , | |
557 | WXK_COMMAND, | |
558 | ||
559 | /** Hardware-specific buttons */ | |
560 | WXK_SPECIAL1 = 193, | |
561 | WXK_SPECIAL2, | |
562 | WXK_SPECIAL3, | |
563 | WXK_SPECIAL4, | |
564 | WXK_SPECIAL5, | |
565 | WXK_SPECIAL6, | |
566 | WXK_SPECIAL7, | |
567 | WXK_SPECIAL8, | |
568 | WXK_SPECIAL9, | |
569 | WXK_SPECIAL10, | |
570 | WXK_SPECIAL11, | |
571 | WXK_SPECIAL12, | |
572 | WXK_SPECIAL13, | |
573 | WXK_SPECIAL14, | |
574 | WXK_SPECIAL15, | |
575 | WXK_SPECIAL16, | |
576 | WXK_SPECIAL17, | |
577 | WXK_SPECIAL18, | |
578 | WXK_SPECIAL19, | |
579 | WXK_SPECIAL20 | |
580 | }; | |
581 | ||
582 | /** | |
583 | This enum contains bit mask constants used in wxKeyEvent. | |
584 | */ | |
585 | enum wxKeyModifier | |
586 | { | |
587 | wxMOD_NONE = 0x0000, | |
588 | wxMOD_ALT = 0x0001, | |
589 | wxMOD_CONTROL = 0x0002, | |
590 | wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL, | |
591 | wxMOD_SHIFT = 0x0004, | |
592 | wxMOD_META = 0x0008, | |
593 | wxMOD_WIN = wxMOD_META, | |
594 | ||
595 | /** | |
596 | Notice that @c wxMOD_CMD should be used instead of @c wxMOD_CONTROL | |
597 | in portable code to account for the fact that although | |
598 | @c Control modifier exists under Mac OS, it is not used for the same | |
599 | purpose as under Windows or Unix there while the special Mac-specific | |
600 | @c Command modifier is used in exactly the same way. | |
601 | */ | |
602 | wxMOD_CMD = wxMOD_META, | |
603 | wxMOD_ALL = 0xffff | |
604 | }; | |
f992f2ae | 605 | |
d18d9f60 BP |
606 | /** |
607 | Paper size types for use with the printing framework. | |
608 | ||
609 | @see overview_printing, wxPrintData::SetPaperId() | |
610 | */ | |
611 | enum wxPaperSize | |
612 | { | |
613 | wxPAPER_NONE, ///< Use specific dimensions | |
614 | wxPAPER_LETTER, ///< Letter, 8 1/2 by 11 inches | |
615 | wxPAPER_LEGAL, ///< Legal, 8 1/2 by 14 inches | |
616 | wxPAPER_A4, ///< A4 Sheet, 210 by 297 millimeters | |
617 | wxPAPER_CSHEET, ///< C Sheet, 17 by 22 inches | |
618 | wxPAPER_DSHEET, ///< D Sheet, 22 by 34 inches | |
619 | wxPAPER_ESHEET, ///< E Sheet, 34 by 44 inches | |
620 | wxPAPER_LETTERSMALL, ///< Letter Small, 8 1/2 by 11 inches | |
621 | wxPAPER_TABLOID, ///< Tabloid, 11 by 17 inches | |
622 | wxPAPER_LEDGER, ///< Ledger, 17 by 11 inches | |
623 | wxPAPER_STATEMENT, ///< Statement, 5 1/2 by 8 1/2 inches | |
624 | wxPAPER_EXECUTIVE, ///< Executive, 7 1/4 by 10 1/2 inches | |
625 | wxPAPER_A3, ///< A3 sheet, 297 by 420 millimeters | |
626 | wxPAPER_A4SMALL, ///< A4 small sheet, 210 by 297 millimeters | |
627 | wxPAPER_A5, ///< A5 sheet, 148 by 210 millimeters | |
628 | wxPAPER_B4, ///< B4 sheet, 250 by 354 millimeters | |
629 | wxPAPER_B5, ///< B5 sheet, 182-by-257-millimeter paper | |
630 | wxPAPER_FOLIO, ///< Folio, 8-1/2-by-13-inch paper | |
631 | wxPAPER_QUARTO, ///< Quarto, 215-by-275-millimeter paper | |
632 | wxPAPER_10X14, ///< 10-by-14-inch sheet | |
633 | wxPAPER_11X17, ///< 11-by-17-inch sheet | |
634 | wxPAPER_NOTE, ///< Note, 8 1/2 by 11 inches | |
635 | wxPAPER_ENV_9, ///< #9 Envelope, 3 7/8 by 8 7/8 inches | |
636 | wxPAPER_ENV_10, ///< #10 Envelope, 4 1/8 by 9 1/2 inches | |
637 | wxPAPER_ENV_11, ///< #11 Envelope, 4 1/2 by 10 3/8 inches | |
638 | wxPAPER_ENV_12, ///< #12 Envelope, 4 3/4 by 11 inches | |
639 | wxPAPER_ENV_14, ///< #14 Envelope, 5 by 11 1/2 inches | |
640 | wxPAPER_ENV_DL, ///< DL Envelope, 110 by 220 millimeters | |
641 | wxPAPER_ENV_C5, ///< C5 Envelope, 162 by 229 millimeters | |
642 | wxPAPER_ENV_C3, ///< C3 Envelope, 324 by 458 millimeters | |
643 | wxPAPER_ENV_C4, ///< C4 Envelope, 229 by 324 millimeters | |
644 | wxPAPER_ENV_C6, ///< C6 Envelope, 114 by 162 millimeters | |
645 | wxPAPER_ENV_C65, ///< C65 Envelope, 114 by 229 millimeters | |
646 | wxPAPER_ENV_B4, ///< B4 Envelope, 250 by 353 millimeters | |
647 | wxPAPER_ENV_B5, ///< B5 Envelope, 176 by 250 millimeters | |
648 | wxPAPER_ENV_B6, ///< B6 Envelope, 176 by 125 millimeters | |
649 | wxPAPER_ENV_ITALY, ///< Italy Envelope, 110 by 230 millimeters | |
650 | wxPAPER_ENV_MONARCH, ///< Monarch Envelope, 3 7/8 by 7 1/2 inches | |
651 | wxPAPER_ENV_PERSONAL, ///< 6 3/4 Envelope, 3 5/8 by 6 1/2 inches | |
652 | wxPAPER_FANFOLD_US, ///< US Std Fanfold, 14 7/8 by 11 inches | |
653 | wxPAPER_FANFOLD_STD_GERMAN, ///< German Std Fanfold, 8 1/2 by 12 inches | |
654 | wxPAPER_FANFOLD_LGL_GERMAN, ///< German Legal Fanfold, 8 1/2 by 13 inches | |
655 | ||
bb69632a | 656 | // wxMSW Only |
d18d9f60 BP |
657 | |
658 | wxPAPER_ISO_B4, ///< B4 (ISO) 250 x 353 mm | |
659 | wxPAPER_JAPANESE_POSTCARD, ///< Japanese Postcard 100 x 148 mm | |
660 | wxPAPER_9X11, ///< 9 x 11 in | |
661 | wxPAPER_10X11, ///< 10 x 11 in | |
662 | wxPAPER_15X11, ///< 15 x 11 in | |
663 | wxPAPER_ENV_INVITE, ///< Envelope Invite 220 x 220 mm | |
4050e98d BP |
664 | wxPAPER_LETTER_EXTRA, ///< Letter Extra 9.5 x 12 in |
665 | wxPAPER_LEGAL_EXTRA, ///< Legal Extra 9.5 x 15 in | |
d18d9f60 BP |
666 | wxPAPER_TABLOID_EXTRA, ///< Tabloid Extra 11.69 x 18 in |
667 | wxPAPER_A4_EXTRA, ///< A4 Extra 9.27 x 12.69 in | |
4050e98d | 668 | wxPAPER_LETTER_TRANSVERSE, ///< Letter Transverse 8.5 x 11 in |
d18d9f60 | 669 | wxPAPER_A4_TRANSVERSE, ///< A4 Transverse 210 x 297 mm |
4050e98d | 670 | wxPAPER_LETTER_EXTRA_TRANSVERSE, ///< Letter Extra Transverse 9.5 x 12 in |
d18d9f60 BP |
671 | wxPAPER_A_PLUS, ///< SuperA/SuperA/A4 227 x 356 mm |
672 | wxPAPER_B_PLUS, ///< SuperB/SuperB/A3 305 x 487 mm | |
673 | wxPAPER_LETTER_PLUS, ///< Letter Plus 8.5 x 12.69 in | |
674 | wxPAPER_A4_PLUS, ///< A4 Plus 210 x 330 mm | |
675 | wxPAPER_A5_TRANSVERSE, ///< A5 Transverse 148 x 210 mm | |
676 | wxPAPER_B5_TRANSVERSE, ///< B5 (JIS) Transverse 182 x 257 mm | |
677 | wxPAPER_A3_EXTRA, ///< A3 Extra 322 x 445 mm | |
678 | wxPAPER_A5_EXTRA, ///< A5 Extra 174 x 235 mm | |
679 | wxPAPER_B5_EXTRA, ///< B5 (ISO) Extra 201 x 276 mm | |
680 | wxPAPER_A2, ///< A2 420 x 594 mm | |
681 | wxPAPER_A3_TRANSVERSE, ///< A3 Transverse 297 x 420 mm | |
682 | wxPAPER_A3_EXTRA_TRANSVERSE, ///< A3 Extra Transverse 322 x 445 mm | |
683 | ||
684 | wxPAPER_DBL_JAPANESE_POSTCARD, ///< Japanese Double Postcard 200 x 148 mm | |
685 | wxPAPER_A6, ///< A6 105 x 148 mm | |
686 | wxPAPER_JENV_KAKU2, ///< Japanese Envelope Kaku #2 | |
687 | wxPAPER_JENV_KAKU3, ///< Japanese Envelope Kaku #3 | |
688 | wxPAPER_JENV_CHOU3, ///< Japanese Envelope Chou #3 | |
689 | wxPAPER_JENV_CHOU4, ///< Japanese Envelope Chou #4 | |
690 | wxPAPER_LETTER_ROTATED, ///< Letter Rotated 11 x 8 1/2 in | |
691 | wxPAPER_A3_ROTATED, ///< A3 Rotated 420 x 297 mm | |
692 | wxPAPER_A4_ROTATED, ///< A4 Rotated 297 x 210 mm | |
693 | wxPAPER_A5_ROTATED, ///< A5 Rotated 210 x 148 mm | |
694 | wxPAPER_B4_JIS_ROTATED, ///< B4 (JIS) Rotated 364 x 257 mm | |
695 | wxPAPER_B5_JIS_ROTATED, ///< B5 (JIS) Rotated 257 x 182 mm | |
696 | wxPAPER_JAPANESE_POSTCARD_ROTATED, ///< Japanese Postcard Rotated 148 x 100 mm | |
697 | wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED, ///< Double Japanese Postcard Rotated 148 x 200 mm | |
698 | wxPAPER_A6_ROTATED, ///< A6 Rotated 148 x 105 mm | |
699 | wxPAPER_JENV_KAKU2_ROTATED, ///< Japanese Envelope Kaku #2 Rotated | |
700 | wxPAPER_JENV_KAKU3_ROTATED, ///< Japanese Envelope Kaku #3 Rotated | |
701 | wxPAPER_JENV_CHOU3_ROTATED, ///< Japanese Envelope Chou #3 Rotated | |
702 | wxPAPER_JENV_CHOU4_ROTATED, ///< Japanese Envelope Chou #4 Rotated | |
703 | wxPAPER_B6_JIS, ///< B6 (JIS) 128 x 182 mm | |
704 | wxPAPER_B6_JIS_ROTATED, ///< B6 (JIS) Rotated 182 x 128 mm | |
705 | wxPAPER_12X11, ///< 12 x 11 in | |
706 | wxPAPER_JENV_YOU4, ///< Japanese Envelope You #4 | |
707 | wxPAPER_JENV_YOU4_ROTATED, ///< Japanese Envelope You #4 Rotated | |
708 | wxPAPER_P16K, ///< PRC 16K 146 x 215 mm | |
709 | wxPAPER_P32K, ///< PRC 32K 97 x 151 mm | |
710 | wxPAPER_P32KBIG, ///< PRC 32K(Big) 97 x 151 mm | |
711 | wxPAPER_PENV_1, ///< PRC Envelope #1 102 x 165 mm | |
712 | wxPAPER_PENV_2, ///< PRC Envelope #2 102 x 176 mm | |
713 | wxPAPER_PENV_3, ///< PRC Envelope #3 125 x 176 mm | |
714 | wxPAPER_PENV_4, ///< PRC Envelope #4 110 x 208 mm | |
715 | wxPAPER_PENV_5, ///< PRC Envelope #5 110 x 220 mm | |
716 | wxPAPER_PENV_6, ///< PRC Envelope #6 120 x 230 mm | |
717 | wxPAPER_PENV_7, ///< PRC Envelope #7 160 x 230 mm | |
718 | wxPAPER_PENV_8, ///< PRC Envelope #8 120 x 309 mm | |
719 | wxPAPER_PENV_9, ///< PRC Envelope #9 229 x 324 mm | |
720 | wxPAPER_PENV_10, ///< PRC Envelope #10 324 x 458 mm | |
721 | wxPAPER_P16K_ROTATED, ///< PRC 16K Rotated | |
722 | wxPAPER_P32K_ROTATED, ///< PRC 32K Rotated | |
723 | wxPAPER_P32KBIG_ROTATED, ///< PRC 32K(Big) Rotated | |
724 | wxPAPER_PENV_1_ROTATED, ///< PRC Envelope #1 Rotated 165 x 102 mm | |
725 | wxPAPER_PENV_2_ROTATED, ///< PRC Envelope #2 Rotated 176 x 102 mm | |
726 | wxPAPER_PENV_3_ROTATED, ///< PRC Envelope #3 Rotated 176 x 125 mm | |
727 | wxPAPER_PENV_4_ROTATED, ///< PRC Envelope #4 Rotated 208 x 110 mm | |
728 | wxPAPER_PENV_5_ROTATED, ///< PRC Envelope #5 Rotated 220 x 110 mm | |
729 | wxPAPER_PENV_6_ROTATED, ///< PRC Envelope #6 Rotated 230 x 120 mm | |
730 | wxPAPER_PENV_7_ROTATED, ///< PRC Envelope #7 Rotated 230 x 160 mm | |
731 | wxPAPER_PENV_8_ROTATED, ///< PRC Envelope #8 Rotated 309 x 120 mm | |
732 | wxPAPER_PENV_9_ROTATED, ///< PRC Envelope #9 Rotated 324 x 229 mm | |
733 | wxPAPER_PENV_10_ROTATED ///< PRC Envelope #10 Rotated 458 x 324 m | |
734 | }; | |
735 | ||
736 | ||
99d82720 FM |
737 | /** |
738 | Duplex printing modes. | |
739 | */ | |
740 | enum wxDuplexMode | |
741 | { | |
742 | wxDUPLEX_SIMPLEX, /**< Non-duplex */ | |
743 | wxDUPLEX_HORIZONTAL, | |
744 | wxDUPLEX_VERTICAL | |
745 | }; | |
746 | ||
747 | /** | |
748 | Print mode (currently PostScript only). | |
749 | */ | |
750 | enum wxPrintMode | |
751 | { | |
752 | wxPRINT_MODE_NONE = 0, | |
753 | wxPRINT_MODE_PREVIEW = 1, /**< Preview in external application */ | |
754 | wxPRINT_MODE_FILE = 2, /**< Print to file */ | |
755 | wxPRINT_MODE_PRINTER = 3, /**< Send to printer */ | |
756 | wxPRINT_MODE_STREAM = 4 /**< Send postscript data into a stream */ | |
757 | }; | |
758 | ||
759 | /** | |
760 | Flags which can be used in wxWindow::UpdateWindowUI(). | |
761 | */ | |
762 | enum wxUpdateUI | |
763 | { | |
764 | wxUPDATE_UI_NONE, | |
765 | wxUPDATE_UI_RECURSE, | |
766 | wxUPDATE_UI_FROMIDLE /**< Invoked from On(Internal)Idle */ | |
767 | }; | |
768 | ||
769 | ||
770 | ||
771 | ||
b21126db | 772 | /** @addtogroup group_funcmacro_byteorder */ |
7c913512 | 773 | //@{ |
9579c1d7 | 774 | |
23324ae1 | 775 | /** |
9579c1d7 BP |
776 | This macro will swap the bytes of the @a value variable from little endian |
777 | to big endian or vice versa unconditionally, i.e. independently of the | |
23324ae1 | 778 | current platform. |
9579c1d7 BP |
779 | |
780 | @header{wx/defs.h} | |
23324ae1 | 781 | */ |
d7b99b16 FM |
782 | #define wxINT32_SWAP_ALWAYS( wxInt32_value ) |
783 | #define wxUINT32_SWAP_ALWAYS( wxUint32_value ) | |
784 | #define wxINT16_SWAP_ALWAYS( wxInt16_value ) | |
785 | #define wxUINT16_SWAP_ALWAYS( wxUint16_value ) | |
9579c1d7 | 786 | |
23324ae1 FM |
787 | //@} |
788 | ||
b21126db | 789 | /** @addtogroup group_funcmacro_byteorder */ |
9579c1d7 BP |
790 | //@{ |
791 | ||
792 | /** | |
793 | This macro will swap the bytes of the @a value variable from little endian | |
794 | to big endian or vice versa if the program is compiled on a big-endian | |
795 | architecture (such as Sun work stations). If the program has been compiled | |
796 | on a little-endian architecture, the value will be unchanged. | |
797 | ||
798 | Use these macros to read data from and write data to a file that stores | |
799 | data in little-endian (for example Intel i386) format. | |
800 | ||
801 | @header{wx/defs.h} | |
802 | */ | |
d7b99b16 FM |
803 | #define wxINT32_SWAP_ON_BE( wxInt32_value ) |
804 | #define wxUINT32_SWAP_ON_BE( wxUint32_value ) | |
805 | #define wxINT16_SWAP_ON_BE( wxInt16_value ) | |
806 | #define wxUINT16_SWAP_ON_BE( wxUint16_value ) | |
23324ae1 | 807 | |
9579c1d7 BP |
808 | //@} |
809 | ||
b21126db | 810 | /** @addtogroup group_funcmacro_byteorder */ |
7c913512 | 811 | //@{ |
9579c1d7 | 812 | |
23324ae1 | 813 | /** |
9579c1d7 BP |
814 | This macro will swap the bytes of the @a value variable from little endian |
815 | to big endian or vice versa if the program is compiled on a little-endian | |
816 | architecture (such as Intel PCs). If the program has been compiled on a | |
817 | big-endian architecture, the value will be unchanged. | |
818 | ||
23324ae1 FM |
819 | Use these macros to read data from and write data to a file that stores |
820 | data in big-endian format. | |
9579c1d7 BP |
821 | |
822 | @header{wx/defs.h} | |
23324ae1 | 823 | */ |
d7b99b16 FM |
824 | #define wxINT32_SWAP_ON_LE( wxInt32_value ) |
825 | #define wxUINT32_SWAP_ON_LE( wxUint32_value ) | |
826 | #define wxINT16_SWAP_ON_LE( wxInt16_value ) | |
827 | #define wxUINT16_SWAP_ON_LE( wxUint16_value ) | |
9579c1d7 | 828 | |
23324ae1 FM |
829 | //@} |
830 | ||
9579c1d7 BP |
831 | |
832 | ||
b21126db | 833 | /** @addtogroup group_funcmacro_misc */ |
7fa7088e | 834 | //@{ |
9579c1d7 | 835 | |
706068e4 VZ |
836 | /** |
837 | This macro can be used in a class declaration to disable the generation of | |
838 | default assignment operator. | |
839 | ||
840 | Some classes have a well-defined copy constructor but cannot have an | |
841 | assignment operator, typically because they can't be modified once created. | |
842 | In such case, this macro can be used to disable the automatic assignment | |
843 | operator generation. | |
844 | ||
845 | @see DECLARE_NO_COPY_CLASS() | |
846 | */ | |
847 | #define DECLARE_NO_ASSIGN_CLASS(classname) | |
848 | ||
849 | /** | |
850 | This macro can be used in a class declaration to disable the generation of | |
851 | default copy ctor and assignment operator. | |
852 | ||
853 | Some classes don't have a well-defined copying semantics. In this case the | |
854 | standard C++ convention is to not allow copying them. One way of achieving | |
855 | it is to use this macro which simply defines a private copy constructor and | |
856 | assignment operator. | |
857 | ||
858 | Beware that simply not defining copy constructor and assignment operator is | |
859 | @em not enough as the compiler would provide its own automatically-generated | |
860 | versions of them -- hence the usefulness of this macro. | |
861 | ||
862 | Example of use: | |
863 | @code | |
864 | class FooWidget | |
865 | { | |
866 | public: | |
867 | FooWidget(); | |
868 | ... | |
869 | ||
870 | private: | |
871 | // widgets can't be copied | |
872 | DECLARE_NO_COPY_CLASS(FooWidget) | |
873 | }; | |
874 | @endcode | |
875 | ||
876 | Notice that a semicolon should not be used after this macro and that it | |
877 | changes the access specifier to private internally so it is better to use | |
878 | it at the end of the class declaration. | |
879 | */ | |
880 | #define DECLARE_NO_COPY_CLASS(classname) | |
881 | ||
375a5d3a VZ |
882 | /** |
883 | Equivalent of DECLARE_NO_COPY_CLASS() for template classes. | |
884 | ||
885 | This macro can be used for template classes (with a single template | |
886 | parameter) for the same purpose as DECLARE_NO_COPY_CLASS() is used with the | |
887 | non-template classes. | |
888 | ||
889 | @param classname The name of the template class. | |
890 | @param arg The name of the template parameter. | |
891 | */ | |
892 | #define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) | |
893 | ||
dac8712f VZ |
894 | /** |
895 | A function which deletes and nulls the pointer. | |
896 | ||
897 | This function uses operator delete to free the pointer and also sets it to | |
898 | @NULL. Notice that this does @em not work for arrays, use wxDELETEA() for | |
899 | them. | |
900 | ||
901 | @code | |
902 | MyClass *ptr = new MyClass; | |
903 | ... | |
904 | wxDELETE(ptr); | |
905 | wxASSERT(!ptr); | |
906 | @endcode | |
907 | ||
908 | @header{wx/defs.h} | |
909 | */ | |
910 | template <typename T> wxDELETE(T*& ptr); | |
911 | ||
912 | /** | |
913 | A function which deletes and nulls the pointer. | |
914 | ||
915 | This function uses vector operator delete (@c delete[]) to free the array | |
916 | pointer and also sets it to @NULL. Notice that this does @em not work for | |
917 | non-array pointers, use wxDELETE() for them. | |
918 | ||
919 | @code | |
920 | MyClass *array = new MyClass[17]; | |
921 | ... | |
922 | wxDELETEA(array); | |
923 | wxASSERT(!array); | |
924 | @endcode | |
925 | ||
926 | @see wxDELETE() | |
927 | ||
928 | @header{wx/defs.h} | |
929 | */ | |
930 | template <typename T> wxDELETEA(T*& array); | |
931 | ||
23324ae1 | 932 | /** |
7fa7088e BP |
933 | This macro can be used around a function declaration to generate warnings |
934 | indicating that this function is deprecated (i.e. obsolete and planned to | |
935 | be removed in the future) when it is used. Only Visual C++ 7 and higher and | |
936 | g++ compilers currently support this functionality. | |
937 | ||
938 | Example of use: | |
939 | ||
940 | @code | |
941 | // old function, use wxString version instead | |
942 | wxDEPRECATED( void wxGetSomething(char *buf, size_t len) ); | |
943 | ||
944 | // ... | |
945 | wxString wxGetSomething(); | |
946 | @endcode | |
947 | ||
948 | @header{wx/defs.h} | |
949 | */ | |
950 | #define wxDEPRECATED(function) | |
951 | ||
952 | /** | |
953 | This is a special version of wxDEPRECATED() macro which only does something | |
954 | when the deprecated function is used from the code outside wxWidgets itself | |
955 | but doesn't generate warnings when it is used from wxWidgets. | |
956 | ||
957 | It is used with the virtual functions which are called by the library | |
958 | itself -- even if such function is deprecated the library still has to call | |
959 | it to ensure that the existing code overriding it continues to work, but | |
960 | the use of this macro ensures that a deprecation warning will be generated | |
961 | if this function is used from the user code or, in case of Visual C++, even | |
962 | when it is simply overridden. | |
963 | ||
964 | @header{wx/defs.h} | |
965 | */ | |
966 | #define wxDEPRECATED_BUT_USED_INTERNALLY(function) | |
967 | ||
968 | /** | |
969 | This macro is similar to wxDEPRECATED() but can be used to not only declare | |
970 | the function @a function as deprecated but to also provide its (inline) | |
971 | implementation @a body. | |
972 | ||
23324ae1 | 973 | It can be used as following: |
7c913512 | 974 | |
23324ae1 FM |
975 | @code |
976 | class wxFoo | |
7fa7088e BP |
977 | { |
978 | public: | |
979 | // OldMethod() is deprecated, use NewMethod() instead | |
980 | void NewMethod(); | |
981 | wxDEPRECATED_INLINE( void OldMethod(), NewMethod() ); | |
982 | }; | |
23324ae1 | 983 | @endcode |
7fa7088e BP |
984 | |
985 | @header{wx/defs.h} | |
23324ae1 | 986 | */ |
7fa7088e | 987 | #define wxDEPRECATED_INLINE(func, body) |
23324ae1 FM |
988 | |
989 | /** | |
990 | @c wxEXPLICIT is a macro which expands to the C++ @c explicit keyword if | |
7fa7088e BP |
991 | the compiler supports it or nothing otherwise. Thus, it can be used even in |
992 | the code which might have to be compiled with an old compiler without | |
993 | support for this language feature but still take advantage of it when it is | |
994 | available. | |
23324ae1 | 995 | |
7fa7088e BP |
996 | @header{wx/defs.h} |
997 | */ | |
998 | #define wxEXPLICIT | |
23324ae1 FM |
999 | |
1000 | /** | |
1001 | GNU C++ compiler gives a warning for any class whose destructor is private | |
1002 | unless it has a friend. This warning may sometimes be useful but it doesn't | |
7fa7088e BP |
1003 | make sense for reference counted class which always delete themselves |
1004 | (hence destructor should be private) but don't necessarily have any | |
1005 | friends, so this macro is provided to disable the warning in such case. The | |
1006 | @a name parameter should be the name of the class but is only used to | |
1007 | construct a unique friend class name internally. | |
1008 | ||
1009 | Example of using the macro: | |
4cc4bfaf | 1010 | |
23324ae1 FM |
1011 | @code |
1012 | class RefCounted | |
7fa7088e BP |
1013 | { |
1014 | public: | |
1015 | RefCounted() { m_nRef = 1; } | |
1016 | void IncRef() { m_nRef++ ; } | |
1017 | void DecRef() { if ( !--m_nRef ) delete this; } | |
7c913512 | 1018 | |
7fa7088e BP |
1019 | private: |
1020 | ~RefCounted() { } | |
7c913512 | 1021 | |
7fa7088e BP |
1022 | wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted) |
1023 | }; | |
23324ae1 | 1024 | @endcode |
7c913512 | 1025 | |
23324ae1 | 1026 | Notice that there should be no semicolon after this macro. |
7c913512 | 1027 | |
7fa7088e | 1028 | @header{wx/defs.h} |
23324ae1 | 1029 | */ |
7fa7088e | 1030 | #define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name) |
23324ae1 | 1031 | |
dac8712f VZ |
1032 | /** |
1033 | Swaps the contents of two variables. | |
1034 | ||
1035 | This is similar to std::swap() but can be used even on the platforms where | |
1036 | the standard C++ library is not available (if you don't target such | |
1037 | platforms, please use std::swap() instead). | |
1038 | ||
1039 | The function relies on type T being copy constructible and assignable. | |
1040 | ||
1041 | Example of use: | |
1042 | @code | |
1043 | int x = 3, | |
1044 | y = 4; | |
1045 | wxSwap(x, y); | |
1046 | wxASSERT( x == 4 && y == 3 ); | |
1047 | @endcode | |
1048 | */ | |
1049 | template <typename T> wxSwap(T& first, T& second); | |
1050 | ||
23324ae1 FM |
1051 | /** |
1052 | This macro is the same as the standard C99 @c va_copy for the compilers | |
7fa7088e BP |
1053 | which support it or its replacement for those that don't. It must be used |
1054 | to preserve the value of a @c va_list object if you need to use it after | |
23324ae1 | 1055 | passing it to another function because it can be modified by the latter. |
7fa7088e | 1056 | |
23324ae1 FM |
1057 | As with @c va_start, each call to @c wxVaCopy must have a matching |
1058 | @c va_end. | |
23324ae1 | 1059 | |
7fa7088e | 1060 | @header{wx/defs.h} |
23324ae1 | 1061 | */ |
7fa7088e | 1062 | void wxVaCopy(va_list argptrDst, va_list argptrSrc); |
23324ae1 | 1063 | |
7fa7088e | 1064 | //@} |
23324ae1 | 1065 | |
f992f2ae | 1066 |