#define WX_OPAQUE_TYPE( name ) struct wxOpaque##name
-typedef unsigned char WXCOLORREF[6];
-typedef void* WXCGIMAGEREF;
typedef void* WXHBITMAP;
typedef void* WXHCURSOR;
-typedef void* WXHRGN;
typedef void* WXRECTPTR;
typedef void* WXPOINTPTR;
typedef void* WXHWND;
typedef void* WXEVENTHANDLERREF;
typedef void* WXEVENTHANDLERCALLREF;
typedef void* WXAPPLEEVENTREF;
-typedef void* WXHDC;
typedef void* WXHMENU;
+
typedef unsigned int WXUINT;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
-typedef WX_OPAQUE_TYPE(CIconHandle ) * WXHICON ;
typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ;
typedef WX_OPAQUE_TYPE(ControlRef ) * WXWidget ;
typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ;
typedef void* WXDisplay;
-// a few native types
+/*
+ * core frameworks
+ */
typedef const void * CFTypeRef;
typedef struct __CFRunLoopSource * CFRunLoopSourceRef;
-typedef struct CGColor *CGColorRef;
+#define DECLARE_WXMAC_OPAQUE_CGREF( name ) typedef struct name* name##Ref;
+
+DECLARE_WXMAC_OPAQUE_CGREF( CGColor );
+DECLARE_WXMAC_OPAQUE_CGREF( CGImage );
+DECLARE_WXMAC_OPAQUE_CGREF( CGContext );
+
+typedef CGColorRef WXCOLORREF;
+typedef CGImageRef WXCGIMAGEREF;
+typedef CGContextRef WXHDC;
+
+/*
+ * carbon
+ */
+
+typedef const struct __HIShape * HIShapeRef;
+typedef struct __HIShape * HIMutableShapeRef;
#define DECLARE_WXMAC_OPAQUE_REF( name ) typedef struct Opaque##name* name;
DECLARE_WXMAC_OPAQUE_REF( PasteboardRef );
+DECLARE_WXMAC_OPAQUE_REF( IconRef );
+
+typedef IconRef WXHICON ;
+typedef HIShapeRef WXHRGN;
#endif