+
+ void Release()
+ {
+ if ( m_release && m_ref != NULL )
+ CFRelease( m_ref ) ;
+ m_ref = NULL ;
+ }
+
+ refType Detach()
+ {
+ refType val = m_ref ;
+ m_release = false ;
+ m_ref = NULL ;
+ return val ;
+ }
+
+ void Set( refType ref , bool release = true )
+ {
+ Release() ;
+ m_release = release ;
+ m_ref = ref ;
+ }
+
+ operator refType () const { return m_ref; }
+
+private :
+ refType m_ref ;
+ bool m_release ;
+
+ DECLARE_NO_COPY_CLASS( wxMacCFRefHolder )
+} ;
+
+#if wxUSE_GUI
+/*
+GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ;
+void wxMacDestroyGWorld( GWorldPtr gw ) ;
+PicHandle wxMacCreatePict( GWorldPtr gw , GWorldPtr mask = NULL ) ;
+CIconHandle wxMacCreateCIcon(GWorldPtr image , GWorldPtr mask , short dstDepth , short iconSize ) ;
+void wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green , int blue ) ;
+CTabHandle wxMacCreateColorTable( int numColors ) ;
+*/
+void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 ) ;
+void wxMacReleaseBitmapButton( ControlButtonContentInfo*info ) ;
+
+#define MAC_WXCOLORREF(a) (*((RGBColor*)&(a)))
+#define MAC_WXHBITMAP(a) (GWorldPtr(a))
+#define MAC_WXHMETAFILE(a) (PicHandle(a))
+#define MAC_WXHICON(a) (IconRef(a))
+#define MAC_WXHCURSOR(a) (CursHandle(a))
+#define MAC_WXHRGN(a) (RgnHandle(a))
+#define MAC_WXHWND(a) (WindowPtr(a))
+#define MAC_WXRECPTR(a) ((Rect*)a)
+#define MAC_WXPOINTPTR(a) ((Point*)a)
+#define MAC_WXHMENU(a) ((MenuHandle)a)
+
+struct wxOpaqueWindowRef
+{
+ wxOpaqueWindowRef( WindowRef ref ) { m_data = ref ; }
+ operator WindowRef() { return m_data ; }
+private :
+ WindowRef m_data ;
+} ;
+
+void wxMacRectToNative( const wxRect *wx , Rect *n ) ;
+void wxMacNativeToRect( const Rect *n , wxRect* wx ) ;
+void wxMacPointToNative( const wxPoint* wx , Point *n ) ;
+void wxMacNativeToPoint( const Point *n , wxPoint* wx ) ;
+
+wxWindow * wxFindControlFromMacControl(ControlRef inControl ) ;
+wxTopLevelWindowMac* wxFindWinFromMacWindow( WindowRef inWindow ) ;
+wxMenu* wxFindMenuFromMacMenu(MenuRef inMenuRef) ;
+
+int wxMacCommandToId( UInt32 macCommandId ) ;
+UInt32 wxIdToMacCommand( int wxId ) ;
+wxMenu* wxFindMenuFromMacCommand( const HICommand &macCommandId , wxMenuItem* &item ) ;
+
+extern wxWindow* g_MacLastWindow ;
+pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ;
+Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size , bool adjustForOrigin = true ) ;
+
+ControlActionUPP GetwxMacLiveScrollbarActionProc() ;
+
+class wxMacControl
+{
+public :
+ wxMacControl( wxWindow* peer , bool isRootControl = false ) ;
+ wxMacControl( wxWindow* peer , ControlRef control ) ;
+ wxMacControl( wxWindow* peer , WXWidget control ) ;
+ virtual ~wxMacControl() ;
+
+ void Init() ;
+