X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ac9e3f1f1c4ba844c5598aa577e51d128dd5921b..fcc9c05e7a71901e282e39bf4ed7f1d2b4641889:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 1555231826..ecfb32f0ef 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -36,7 +36,9 @@ !defined(__WXPALMOS__)&& \ !defined(__WXGTK__) && \ !defined(__WXPM__) && \ - !defined(__WXMAC__) && \ + !defined(__WXOSX_CARBON__) && \ + !defined(__WXOSX_COCOA__) && \ + !defined(__WXOSX_IPHONE__) && \ !defined(__WXCOCOA__) && \ !defined(__X__) && \ !defined(__WXMGL__) && \ @@ -580,6 +582,17 @@ typedef short int WXTYPE; #define wxDEPRECATED(x) x #endif +/* + explicitly specifying inline allows gcc < 3.4 to + 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__) + #define wxDEPRECATED_CONSTRUCTOR(x) x +#else + #define wxDEPRECATED_CONSTRUCTOR(x) wxDEPRECATED( inline x) +#endif + /* Macro which marks the function as being deprecated but also defines it inline. @@ -611,15 +624,42 @@ typedef short int WXTYPE; #include #endif -/* delete pointer if it is not NULL and NULL it afterwards */ -/* (checking that it's !NULL before passing it to delete is just a */ -/* a question of style, because delete will do it itself anyhow, but it might */ -/* be considered as an error by some overzealous debugging implementations of */ -/* the library, so we do it ourselves) */ -#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; } +#ifdef __cplusplus + // delete pointer if it is not NULL and NULL it afterwards + template + inline void wxDELETE(T*& ptr) + { + typedef char TypeIsCompleteCheck[sizeof(T)]; + + if ( ptr != NULL ) + { + delete ptr; + ptr = NULL; + } + } + + // delete an array and NULL it (see comments above) + template + inline void wxDELETEA(T*& ptr) + { + typedef char TypeIsCompleteCheck[sizeof(T)]; -/* delete an array and NULL it (see comments above) */ -#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = NULL; } + if ( ptr != NULL ) + { + delete [] ptr; + ptr = NULL; + } + } + + // trivial implementation of std::swap() for primitive types + template + inline void wxSwap(T& first, T& second) + { + T tmp(first); + first = second; + second = tmp; + } +#endif /*__cplusplus*/ /* size of statically declared array */ #define WXSIZEOF(array) (sizeof(array)/sizeof(array[0])) @@ -1101,19 +1141,21 @@ typedef wxUint32 wxDword; #endif -/* Make sure ssize_t is defined (a signed type the same size as size_t) */ -/* HAVE_SSIZE_T should be defined for compiliers that already have it */ +/* Make sure ssize_t is defined (a signed type the same size as size_t). */ +/* (HAVE_SSIZE_T is not already defined by configure) */ +#ifndef HAVE_SSIZE_T #ifdef __MINGW32__ - #if defined(_SSIZE_T_) && !defined(HAVE_SSIZE_T) + #if defined(_SSIZE_T_) || defined(_SSIZE_T_DEFINED) #define HAVE_SSIZE_T #endif -#endif -#if defined(__PALMOS__) && !defined(HAVE_SSIZE_T) +#elif defined(__PALMOS__) #define HAVE_SSIZE_T -#endif -#if wxCHECK_WATCOM_VERSION(1,4) +#elif wxCHECK_WATCOM_VERSION(1,4) #define HAVE_SSIZE_T #endif +#endif /* !HAVE_SSIZE_T */ + +/* If we really don't have ssize_t, provide our own version. */ #ifdef HAVE_SSIZE_T #ifdef __UNIX__ #include @@ -1515,7 +1557,7 @@ enum wxAlignment enum wxSizerFlagBits { /* for compatibility only, default now, don't use explicitly any more */ -#if WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_8 wxADJUST_MINSIZE = 0, #endif wxFIXED_MINSIZE = 0x8000, @@ -1844,8 +1886,10 @@ enum wxBorder #define wxAPPLY 0x00000020 #define wxCLOSE 0x00000040 -#define wxYES_DEFAULT 0x00000000 /* has no effect (default) */ -#define wxNO_DEFAULT 0x00000080 +#define wxOK_DEFAULT 0x00000000 /* has no effect (default) */ +#define wxYES_DEFAULT 0x00000000 /* has no effect (default) */ +#define wxNO_DEFAULT 0x00000080 /* only valid with wxYES_NO */ +#define wxCANCEL_DEFAULT 0x80000000 /* only valid with wxCANCEL */ #define wxICON_EXCLAMATION 0x00000100 #define wxICON_HAND 0x00000200 @@ -2026,6 +2070,24 @@ enum wxID_ZOOM_OUT, wxID_UNDELETE, wxID_REVERT_TO_SAVED, + wxID_CDROM, + wxID_CONVERT, + wxID_EXECUTE, + wxID_FLOPPY, + wxID_HARDDISK, + wxID_BOTTOM, + wxID_FIRST, + wxID_LAST, + wxID_TOP, + wxID_INFO, + wxID_JUMP_TO, + wxID_NETWORK, + wxID_SELECT_COLOR, + wxID_SELECT_FONT, + wxID_SORT_ASCENDING, + wxID_SORT_DESCENDING, + wxID_SPELL_CHECK, + wxID_STRIKETHROUGH, /* System menu IDs (used by wxUniv): */ wxID_SYSTEM_MENU = 5200, @@ -2604,6 +2666,21 @@ enum wxUpdateUI wxUPDATE_UI_FROMIDLE = 0x0002 /* Invoked from On(Internal)Idle */ }; + +/* ---------------------------------------------------------------------------- */ +/* wxList types */ +/* ---------------------------------------------------------------------------- */ + +/* type of compare function for list sort operation (as in 'qsort'): it should + return a negative value, 0 or positive value if the first element is less + than, equal or greater than the second */ + +typedef int (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2); + +/* wxList iterator function */ +typedef int (* LINKAGEMODE wxListIterateFunction)(void *current); + + /* ---------------------------------------------------------------------------- */ /* miscellaneous */ /* ---------------------------------------------------------------------------- */ @@ -2655,7 +2732,6 @@ typedef void* WXEVENTREF; typedef void* WXEVENTHANDLERREF; typedef void* WXEVENTHANDLERCALLREF; typedef void* WXAPPLEEVENTREF; -typedef void* WXHMENU; typedef unsigned int WXUINT; typedef unsigned long WXDWORD; @@ -2665,6 +2741,8 @@ typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ; #if wxOSX_USE_CARBON typedef WX_OPAQUE_TYPE(ControlRef ) * WXWidget ; typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ; +typedef struct __AGLPixelFormatRec *WXGLPixelFormat; +typedef struct __AGLContextRec *WXGLContext; #endif typedef void* WXDisplay; @@ -2701,9 +2779,13 @@ typedef struct __HIShape * HIMutableShapeRef; DECLARE_WXMAC_OPAQUE_REF( PasteboardRef ) DECLARE_WXMAC_OPAQUE_REF( IconRef ) +DECLARE_WXMAC_OPAQUE_REF( MenuRef ) typedef IconRef WXHICON ; typedef HIShapeRef WXHRGN; +#if wxOSX_USE_CARBON +typedef MenuRef WXHMENU; +#endif #endif @@ -2802,6 +2884,8 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSTextStorage); DECLARE_WXCOCOA_OBJC_CLASS(NSThread); DECLARE_WXCOCOA_OBJC_CLASS(NSWindow); DECLARE_WXCOCOA_OBJC_CLASS(NSView); +DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLContext); +DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLPixelFormat); #ifndef __WXMAC__ typedef WX_NSView WXWidget; /* wxWidgets BASE definition */ #endif @@ -2815,6 +2899,9 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSString); typedef WX_NSWindow WXWindow; typedef WX_NSView WXWidget; +typedef WX_NSMenu WXHMENU; +typedef WX_NSOpenGLPixelFormat WXGLPixelFormat; +typedef WX_NSOpenGLContext WXGLContext; #elif wxOSX_USE_IPHONE @@ -3167,6 +3254,11 @@ typedef const void* WXWidget; classname(const classname&); \ classname& operator=(const classname&); +#define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ + private: \ + classname(const classname&); \ + classname& operator=(const classname&); + #define DECLARE_NO_ASSIGN_CLASS(classname) \ private: \ classname& operator=(const classname&);