X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9330ded5ddbf86a22dbd90c6ef0f3ed2f5f211b0..b771d06bade79af05559648a0cb13c59dcc0f8a8:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index e179b9ff8b..ac41fea3a4 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -474,19 +474,19 @@ typedef short int WXTYPE; /* ---------------------------------------------------------------------------- */ /* Printf-like attribute definitions to obtain warnings with GNU C/C++ */ -#ifndef ATTRIBUTE_PRINTF +#ifndef WX_ATTRIBUTE_PRINTF # if defined(__GNUC__) && !wxUSE_UNICODE -# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) +# define WX_ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) # else -# define ATTRIBUTE_PRINTF(m, n) +# define WX_ATTRIBUTE_PRINTF(m, n) # endif -# define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) -# define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) -# define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) -# define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) -# define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) -#endif /* !defined(ATTRIBUTE_PRINTF) */ +# define WX_ATTRIBUTE_PRINTF_1 WX_ATTRIBUTE_PRINTF(1, 2) +# define WX_ATTRIBUTE_PRINTF_2 WX_ATTRIBUTE_PRINTF(2, 3) +# define WX_ATTRIBUTE_PRINTF_3 WX_ATTRIBUTE_PRINTF(3, 4) +# define WX_ATTRIBUTE_PRINTF_4 WX_ATTRIBUTE_PRINTF(4, 5) +# define WX_ATTRIBUTE_PRINTF_5 WX_ATTRIBUTE_PRINTF(5, 6) +#endif /* !defined(WX_ATTRIBUTE_PRINTF) */ /* Macro to issue warning when using deprecated functions with gcc3 or MSVC7: */ @@ -503,7 +503,7 @@ typedef short int WXTYPE; handle the deprecation attribute even in the constructor. doesn't seem to work on Apple's gcc 4.0.1 unless using -O0 */ -#if defined( __DARWIN__ ) && !defined(__WXDEBUG__) +#if wxCHECK_GCC_VERSION(3, 4) || defined( __DARWIN__ ) #define wxDEPRECATED_CONSTRUCTOR(x) x #else #define wxDEPRECATED_CONSTRUCTOR(x) wxDEPRECATED( inline x) @@ -530,8 +530,16 @@ typedef short int WXTYPE; # define wxDEPRECATED_BUT_USED_INTERNALLY(x) wxDEPRECATED(x) #endif -/* everybody gets the assert and other debug macros */ -#include "wx/debug.h" +/* + Combination of the two variants above: should be used for deprecated + functions which are defined inline and are used by wxWidgets itself. + */ +#ifdef WXBUILDING +# define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) func { body } +#else +# define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) \ + wxDEPRECATED(func) { body } +#endif /* NULL declaration: it must be defined as 0 for C++ programs (in particular, */ /* it must not be defined as "(void *)0" which is standard for C but completely */ @@ -541,6 +549,10 @@ typedef short int WXTYPE; #endif #ifdef __cplusplus + +// everybody gets the assert and other debug macros +#include "wx/debug.h" + // delete pointer if it is not NULL and NULL it afterwards template inline void wxDELETE(T*& ptr) @@ -1166,8 +1178,8 @@ inline void *wxUIntToPtr(wxUIntPtr p) /* base floating point types */ -/* wxFloat32: 32 bit IEEE float ( 1 sign, 8 exponent bits, 23 fraction bits */ -/* wxFloat64: 64 bit IEEE float ( 1 sign, 11 exponent bits, 52 fraction bits */ +/* wxFloat32: 32 bit IEEE float ( 1 sign, 8 exponent bits, 23 fraction bits ) */ +/* wxFloat64: 64 bit IEEE float ( 1 sign, 11 exponent bits, 52 fraction bits ) */ /* wxDouble: native fastest representation that has at least wxFloat64 */ /* precision, so use the IEEE types for storage, and this for */ /* calculations */ @@ -1839,7 +1851,7 @@ enum wxKeyType /* ---------------------------------------------------------------------------- */ /* Standard menu IDs */ -enum +enum wxStandardID { /* These ids delimit the range used by automatically-generated ids @@ -2002,6 +2014,16 @@ enum wxID_ICONIZE_FRAME, wxID_RESTORE_FRAME, + /* MDI window menu ids */ + wxID_MDI_WINDOW_FIRST = 5230, + wxID_MDI_WINDOW_CASCADE = wxID_MDI_WINDOW_FIRST, + wxID_MDI_WINDOW_TILE_HORZ, + wxID_MDI_WINDOW_TILE_VERT, + wxID_MDI_WINDOW_ARRANGE_ICONS, + wxID_MDI_WINDOW_PREV, + wxID_MDI_WINDOW_NEXT, + wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT, + /* IDs used by generic file dialog (13 consecutive starting from this value) */ wxID_FILEDLGG = 5900, @@ -2084,6 +2106,8 @@ enum wxHitTest #define wxSIZE_NO_ADJUSTMENTS 0x0008 /* Change the window position even if it seems to be already correct */ #define wxSIZE_FORCE 0x0010 +/* Emit size event even if size didn't change */ +#define wxSIZE_FORCE_EVENT 0x0020 /* ---------------------------------------------------------------------------- */ /* GDI descriptions */ @@ -2186,13 +2210,20 @@ enum wxDataFormatId /* Virtual keycodes */ enum wxKeyCode { - WXK_BACK = 8, + WXK_BACK = 8, // backspace WXK_TAB = 9, WXK_RETURN = 13, WXK_ESCAPE = 27, + + /* values from 33 to 126 are reserved for the standard ASCII characters */ + WXK_SPACE = 32, WXK_DELETE = 127, + /* values from 128 to 255 are reserved for ASCII extended characters + (note that there isn't a real widely used standard for the meaning + of these values; avoid them in portable apps!) */ + /* These are, by design, not compatible with unicode characters. If you want to get a unicode character from a key event, use wxKeyEvent::GetUnicodeKey instead. */ @@ -2608,16 +2639,24 @@ typedef void* WXDisplay; typedef const void * CFTypeRef; -typedef const struct __CFString * CFStringRef; +// typedef const struct __CFString * CFStringRef; + +#define DECLARE_WXOSX_OPAQUE_CFREF( name ) typedef struct __##name* name##Ref; +#define DECLARE_WXOSX_OPAQUE_CONST_CFREF( name ) typedef const struct __##name* name##Ref; + +DECLARE_WXOSX_OPAQUE_CONST_CFREF( CFString ) typedef struct __CFString * CFMutableStringRef; -typedef struct __CFRunLoopSource * CFRunLoopSourceRef; +DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoopSource ) +DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFont ) +DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFontDescriptor ) -#define DECLARE_WXMAC_OPAQUE_CGREF( name ) typedef struct name* name##Ref; +#define DECLARE_WXOSX_OPAQUE_CGREF( name ) typedef struct name* name##Ref; -DECLARE_WXMAC_OPAQUE_CGREF( CGColor ) -DECLARE_WXMAC_OPAQUE_CGREF( CGImage ) -DECLARE_WXMAC_OPAQUE_CGREF( CGContext ) +DECLARE_WXOSX_OPAQUE_CGREF( CGColor ) +DECLARE_WXOSX_OPAQUE_CGREF( CGImage ) +DECLARE_WXOSX_OPAQUE_CGREF( CGContext ) +DECLARE_WXOSX_OPAQUE_CGREF( CGFont ) typedef CGColorRef WXCOLORREF; typedef CGImageRef WXCGIMAGEREF; @@ -2718,6 +2757,8 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSColorPanel); DECLARE_WXCOCOA_OBJC_CLASS(NSControl); DECLARE_WXCOCOA_OBJC_CLASS(NSCursor); DECLARE_WXCOCOA_OBJC_CLASS(NSEvent); +DECLARE_WXCOCOA_OBJC_CLASS(NSFont); +DECLARE_WXCOCOA_OBJC_CLASS(NSFontDescriptor); DECLARE_WXCOCOA_OBJC_CLASS(NSFontPanel); DECLARE_WXCOCOA_OBJC_CLASS(NSImage); DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager); @@ -3102,22 +3143,35 @@ typedef const void* WXWidget; #include "wx/features.h" /* --------------------------------------------------------------------------- */ -/* macro to define a class without copy ctor nor assignment operator */ +/* macros to define a class without copy ctor nor assignment operator */ /* --------------------------------------------------------------------------- */ -#define DECLARE_NO_COPY_CLASS(classname) \ +#define wxDECLARE_NO_COPY_CLASS(classname) \ private: \ classname(const classname&); \ - classname& operator=(const classname&); + classname& operator=(const classname&) + +#define wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ + private: \ + classname(const classname&); \ + classname& operator=(const classname&) -#define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ - private: \ - classname(const classname&); \ - classname& operator=(const classname&); +#define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2) \ + private: \ + classname(const classname&); \ + classname& operator=(const classname&) -#define DECLARE_NO_ASSIGN_CLASS(classname) \ +#define wxDECLARE_NO_ASSIGN_CLASS(classname) \ private: \ - classname& operator=(const classname&); + classname& operator=(const classname&) + +// deprecated variants _not_ requiring a semicolon after them +#define DECLARE_NO_COPY_CLASS(classname) \ + wxDECLARE_NO_COPY_CLASS(classname); +#define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ + wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg); +#define DECLARE_NO_ASSIGN_CLASS(classname) \ + wxDECLARE_NO_ASSIGN_CLASS(classname); /* --------------------------------------------------------------------------- */ /* If a manifest is being automatically generated, add common controls 6 to it */