]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Applied patch [ 619705 ] Fixes wxApp::GetComCtl32Version
[wxWidgets.git] / include / wx / defs.h
index 536c6d9697bd09aceb3b62ac70d46e7ba0e5bd9d..bde449e9c80410e5d4d54b288c7772f2e7e8201a 100644 (file)
     #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100)
         // Watcom 11+ supports bool
         #define HAVE_BOOL
+    #elif defined(__DIGITALMARS__) 
+        // DigitalMars supports bool
+        #define HAVE_BOOL
     #elif defined(__GNUWIN32__) || defined(__MINGW32__) || defined(__CYGWIN__)
         // Cygwin supports bool
         #define HAVE_BOOL
     #elif defined(__VISAGECPP__)
         #if __IBMCPP__ < 400
             typedef unsigned long bool;
+            #define true ((bool)1)
+            #define false ((bool)0)
         #endif
         #define HAVE_BOOL
     #endif // compilers
@@ -236,6 +241,8 @@ typedef int wxWindowID;
     #elif defined(__MWERKS__) && (__MWERKS__ >= 0x2400)
         // Metrowerks CW6 or higher has explicit
         #define HAVE_EXPLICIT
+    #elif defined(__DIGITALMARS__)
+        #define HAVE_EXPLICIT
     #endif
 #endif // !HAVE_EXPLICIT
 
@@ -1018,6 +1025,7 @@ enum wxBorder
 #define wxFRAME_NO_TASKBAR      0x0002  // No taskbar button (MSW only)
 #define wxFRAME_TOOL_WINDOW     0x0004  // No taskbar button, no system menu
 #define wxFRAME_FLOAT_ON_PARENT 0x0008  // Always above its parent
+#define wxFRAME_SHAPED          0x0010  // Create a window that is able to be shaped
 
 // deprecated versions defined for compatibility reasons
 #define wxRESIZE_BOX            wxMAXIMIZE_BOX
@@ -1853,7 +1861,7 @@ typedef void*       WXPOINTPTR ;
 typedef void*       WXHWND ;
 typedef void*       WXEVENTREF ;
 typedef void*          WXEVENTHANDLERREF ;
-typedef void*       WXEVENTHANDLERCALLREF ; 
+typedef void*       WXEVENTHANDLERCALLREF ;
 typedef void*       WXAPPLEEVENTREF ;
 typedef void*       WXHDC ;
 typedef void*       WXHMENU ;
@@ -1898,27 +1906,27 @@ typedef ControlHandle   WXWidget;
 
 #ifdef __WXCOCOA__
 
-#if defined(__OBJC__)
-    #include <objc/objc.h>
-    #define DECLARE_WXCOCOA_OBJC_CLASS(klass) \
-    @class klass;                   typedef klass *WX_##klass
-#elif defined(wxI_LIKE_OBJC_ID)
-    #define DECLARE_WXCOCOA_OBJC_CLASS(klass) \
-    typedef id WX_##klass
-#else // the goal is to get rid of this secion at some time!
-    #define DECLARE_WXCOCOA_OBJC_CLASS(klass) \
-    typedef void *WX_##klass
-#endif
+// NOTE: typedef struct objc_object *id;
+// IOW, we're declaring these using the id type without using that name,
+// since "id" is used extensively not only within wxWindows itself, but
+// also in wxWindows application code.  The following works fine when
+// compiling C++ code, and works without typesafety for Obj-C++ code
+#define DECLARE_WXCOCOA_OBJC_CLASS(klass) \
+typedef struct objc_object *WX_##klass
 
 DECLARE_WXCOCOA_OBJC_CLASS(NSApplication);
 DECLARE_WXCOCOA_OBJC_CLASS(NSBox);
 DECLARE_WXCOCOA_OBJC_CLASS(NSButton);
 DECLARE_WXCOCOA_OBJC_CLASS(NSControl);
+DECLARE_WXCOCOA_OBJC_CLASS(NSEvent);
+DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager);
 DECLARE_WXCOCOA_OBJC_CLASS(NSMenu);
 DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem);
 DECLARE_WXCOCOA_OBJC_CLASS(NSPanel);
 DECLARE_WXCOCOA_OBJC_CLASS(NSTableView);
+DECLARE_WXCOCOA_OBJC_CLASS(NSTextContainer);
 DECLARE_WXCOCOA_OBJC_CLASS(NSTextField);
+DECLARE_WXCOCOA_OBJC_CLASS(NSTextStorage);
 DECLARE_WXCOCOA_OBJC_CLASS(NSWindow);
 DECLARE_WXCOCOA_OBJC_CLASS(NSView);
 typedef WX_NSView WXWidget; // wxWindows BASE definition