]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: cat_macros.h | |
3 | // Purpose: Macros-by-category page of the Doxygen manual | |
4 | // Author: wxWidgets team | |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | ||
11 | @page page_macro_cat Macros by Category | |
12 | ||
13 | @li @ref page_macro_cat_version | |
14 | @li @ref page_macro_cat_byteorder | |
15 | @li @ref page_macro_cat_rtti | |
16 | @li @ref page_macro_cat_debugging | |
17 | @li @ref page_macro_cat_misc | |
18 | ||
19 | ||
20 | <hr> | |
21 | ||
22 | ||
23 | @section page_macro_cat_version Versioning | |
24 | ||
25 | The following constants are defined in wxWidgets: | |
26 | ||
27 | @beginDefList | |
28 | @itemdef{ wxMAJOR_VERSION, The major version of wxWidgets } | |
29 | @itemdef{ wxMINOR_VERSION, The minor version of wxWidgets } | |
30 | @itemdef{ wxRELEASE_NUMBER, The release number } | |
31 | @itemdef{ wxSUBRELEASE_NUMBER, The subrelease number which is 0 for all | |
32 | official releases } | |
33 | @endDefList | |
34 | ||
35 | For example, the values or these constants for wxWidgets 2.8.7 | |
36 | are 2, 8, 7 and 0. | |
37 | ||
38 | Additionally, wxVERSION_STRING is a user-readable string containing the full | |
39 | wxWidgets version and wxVERSION_NUMBER is a combination of the three version | |
40 | numbers above: for 2.1.15, it is 2115 and it is 2200 for wxWidgets 2.2. | |
41 | ||
42 | The subrelease number is only used for the sources in between official releases | |
43 | and so normally is not useful. | |
44 | ||
45 | @header{wx/version.h} | |
46 | @header{wx/defs.h} | |
47 | ||
48 | @li wxCHECK_GCC_VERSION() | |
49 | @li wxCHECK_SUNCC_VERSION() | |
50 | @li wxCHECK_VERSION() | |
51 | @li wxCHECK_VERSION_FULL() | |
52 | @li wxCHECK_VISUALC_VERSION() | |
53 | @li wxCHECK_W32API_VERSION() | |
54 | ||
55 | ||
56 | @section page_macro_cat_misc Miscellaneous | |
57 | ||
58 | @header{FIXME} | |
59 | ||
60 | @li wxCONCAT() | |
61 | @li wxDECLARE_APP() | |
62 | @li wxDYNLIB_FUNCTION() | |
63 | @li wxDEPRECATED() | |
64 | @li wxDEPRECATED_BUT_USED_INTERNALLY() | |
65 | @li wxDEPRECATED_INLINE() | |
66 | @li wxEXPLICIT() | |
67 | @li wxON_BLOCK_EXIT() | |
68 | @li wxON_BLOCK_EXIT_OBJ() | |
69 | @li wxSTRINGIZE() | |
70 | @li wxSTRINGIZE_T() | |
71 | @li wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING() | |
72 | @li __WXFUNCTION__() | |
73 | @li wxS() | |
74 | @li wxT() | |
75 | @li wxTRANSLATE() | |
76 | @li _() | |
77 | @li wxPLURAL() | |
78 | @li _T() | |
79 | @li WXTRACE() | |
80 | @li WXTRACELEVEL() | |
81 | ||
82 | ||
83 | @section page_macro_cat_byteorder Byte Order | |
84 | ||
85 | @header{FIXME} | |
86 | ||
87 | The endian-ness issues (that is the difference between big-endian and | |
88 | little-endian architectures) are important for the portable programs working | |
89 | with the external binary data (for example, data files or data coming from | |
90 | network) which is usually in some fixed, platform-independent format. | |
91 | ||
92 | The macros are helpful for transforming the data to the correct format. | |
93 | ||
94 | @li wxINTXX_SWAP_ALWAYS() | |
95 | @li wxINTXX_SWAP_ON_BE() | |
96 | @li wxINTXX_SWAP_ON_LE() | |
97 | @li wxFORCE_LINK_THIS_MODULE() | |
98 | @li wxFORCE_LINK_MODULE() | |
99 | @li wxIMPLEMENT_APP() | |
100 | ||
101 | ||
102 | @section page_macro_cat_rtti Runtime Type Information (RTTI) | |
103 | ||
104 | wxWidgets uses its own RTTI ("run-time type identification") system which | |
105 | predates the current standard C++ RTTI and so is kept for backwards | |
106 | compatibility reasons but also because it allows some things which the standard | |
107 | RTTI doesn't directly support (such as creating a class from its name). The | |
108 | standard C++ RTTI can be used in the user code without any problems and in | |
109 | general you shouldn't need to use the functions and the macros in this section | |
110 | unless you are thinking of modifying or adding any wxWidgets classes. | |
111 | ||
112 | Related Overviews: @ref overview_rtti | |
113 | ||
114 | @li CLASSINFO() | |
115 | @li DECLARE_ABSTRACT_CLASS() | |
116 | @li DECLARE_APP() | |
117 | @li DECLARE_CLASS() | |
118 | @li DECLARE_DYNAMIC_CLASS() | |
119 | @li IMPLEMENT_ABSTRACT_CLASS() | |
120 | @li IMPLEMENT_ABSTRACT_CLASS2() | |
121 | @li IMPLEMENT_APP() | |
122 | @li IMPLEMENT_CLASS() | |
123 | @li IMPLEMENT_CLASS2() | |
124 | @li IMPLEMENT_DYNAMIC_CLASS() | |
125 | @li IMPLEMENT_DYNAMIC_CLASS2() | |
126 | @li wxConstCast() | |
127 | @li wxCreateDynamicObject() | |
128 | @li WXDEBUG_NEW() | |
129 | @li wxDynamicCast() | |
130 | @li wxDynamicCastThis() | |
131 | @li wxStaticCast() | |
132 | @li wx_const_cast() | |
133 | @li wx_reinterpret_cast() | |
134 | @li wx_static_cast() | |
135 | @li wx_truncate_cast() | |
136 | ||
137 | ||
138 | @section page_macro_cat_debugging Debugging | |
139 | ||
140 | Useful macros and functions for error checking and defensive programming. | |
141 | wxWidgets defines three families of the assert-like macros: the wxASSERT and | |
142 | wxFAIL macros only do anything if __WXDEBUG__ is defined (in other words, in | |
143 | the debug build) but disappear completely in the release build. On the other | |
144 | hand, the wxCHECK macros stay event in release builds but a check failure | |
145 | doesn't generate any user-visible effects then. Finally, the compile time | |
146 | assertions don't happen during the run-time but result in the compilation error | |
147 | messages if the condition they check fail. | |
148 | ||
149 | @header{wx/debug.h} | |
150 | ||
151 | @li wxASSERT() | |
152 | @li wxASSERT_MIN_BITSIZE() | |
153 | @li wxASSERT_MSG() | |
154 | @li wxCOMPILE_TIME_ASSERT() | |
155 | @li wxCOMPILE_TIME_ASSERT2() | |
156 | @li wxFAIL() | |
157 | @li wxFAIL_MSG() | |
158 | @li wxCHECK() | |
159 | @li wxCHECK_MSG() | |
160 | @li wxCHECK_RET() | |
161 | @li wxCHECK2() | |
162 | @li wxCHECK2_MSG() | |
163 | ||
164 | */ | |
165 |