]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/carbon/private.h
Use /bin/echo for creation of Mac OS X PkgInfo files.
[wxWidgets.git] / include / wx / osx / carbon / private.h
index 2b9a27e04dcd80ca423f2cac736919fa098e6578..071ddbe384a754d5dfd0de9f6cb1cd117a55bb5c 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wx/mac/carbon/private.h
+// Name:        wx/osx/carbon/private.h
 // Purpose:     Private declarations: as this header is only included by
 //              wxWidgets itself, it may contain identifiers which don't start
 //              with "wx".
 #ifndef _WX_PRIVATE_H_
 #define _WX_PRIVATE_H_
 
-#include "wx/defs.h"
-
-#include <Carbon/Carbon.h>
-
-#include "wx/mac/corefoundation/cfstring.h"
-#include "wx/mac/corefoundation/cfdataref.h"
-
 #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
 typedef UInt32 URefCon;
 typedef SInt32 SRefCon;
@@ -28,28 +21,12 @@ typedef SInt32 SRefCon;
 
 #if wxUSE_GUI
 
-#include "wx/listbox.h"
-#include "wx/mac/carbon/dc.h"
-#include "wx/mac/carbon/dcclient.h"
-#include "wx/mac/carbon/dcmemory.h"
+#include "wx/osx/uma.h"
 
-class WXDLLIMPEXP_CORE wxMacCGContextStateSaver
-{
-    DECLARE_NO_COPY_CLASS(wxMacCGContextStateSaver)
-
-public:
-    wxMacCGContextStateSaver( CGContextRef cg )
-    {
-        m_cg = cg;
-        CGContextSaveGState( cg );
-    }
-    ~wxMacCGContextStateSaver()
-    {
-        CGContextRestoreGState( m_cg );
-    }
-private:
-    CGContextRef m_cg;
-};
+#include "wx/listbox.h"
+#include "wx/osx/dc.h"
+#include "wx/osx/dcclient.h"
+#include "wx/osx/dcmemory.h"
 
 // app.h
 
@@ -72,6 +49,7 @@ WXDLLIMPEXP_BASE wxString wxMacFindFolder(short vRefNum,
                                           Boolean createFolder);
 
 template<typename T> EventParamType wxMacGetEventParamType() { wxFAIL_MSG( wxT("Unknown Param Type") ); return 0; }
+template<> inline EventParamType wxMacGetEventParamType<HIShapeRef>() { return typeHIShapeRef; }
 template<> inline EventParamType wxMacGetEventParamType<RgnHandle>() { return typeQDRgnHandle; }
 template<> inline EventParamType wxMacGetEventParamType<ControlRef>() { return typeControlRef; }
 template<> inline EventParamType wxMacGetEventParamType<WindowRef>() { return typeWindowRef; }
@@ -217,30 +195,6 @@ protected :
     bool     m_release;
 };
 
-//
-// helper class for allocating and deallocating Universal Proc Ptrs
-//
-
-template <typename procType, typename uppType , uppType (*newUPP)(procType) , void (*disposeUPP)(uppType) > class wxMacUPP
-{
-public :
-    wxMacUPP( procType WXUNUSED(proc) )
-    {
-        m_upp = NULL;
-        m_upp = (*newUPP)( NULL );
-    }
-    ~wxMacUPP()
-    {
-        if ( m_upp )
-            disposeUPP( m_upp );
-    }
-    operator uppType() { return m_upp; }
-private :
-    uppType m_upp;
-};
-
-typedef wxMacUPP<NMProcPtr,NMUPP,NewNMUPP,DisposeNMUPP> wxMacNMUPP;
-
 #if wxUSE_GUI
 
 class WXDLLIMPEXP_FWD_CORE wxMacToolTipTimer ;
@@ -279,12 +233,6 @@ private :
 
 WXDLLIMPEXP_CORE void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 );
 WXDLLIMPEXP_CORE void wxMacReleaseBitmapButton( ControlButtonContentInfo*info );
-WXDLLIMPEXP_CORE CGImageRef wxMacCreateCGImageFromBitmap( const wxBitmap& bitmap );
-
-WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithCFData( CFDataRef data );
-WXDLLIMPEXP_CORE CGDataConsumerRef wxMacCGDataConsumerCreateWithCFData( CFMutableDataRef data );
-WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithMemoryBuffer( const wxMemoryBuffer& buf );
-
 
 #define MAC_WXHBITMAP(a) (GWorldPtr(a))
 #define MAC_WXHMETAFILE(a) (PicHandle(a))
@@ -309,17 +257,14 @@ WXDLLIMPEXP_CORE void wxMacNativeToRect( const Rect *n , wxRect* wx );
 WXDLLIMPEXP_CORE void wxMacPointToNative( const wxPoint* wx , Point *n );
 WXDLLIMPEXP_CORE void wxMacNativeToPoint( const Point *n , wxPoint* wx );
 
-WXDLLIMPEXP_CORE wxWindow * wxFindControlFromMacControl(ControlRef inControl );
-WXDLLIMPEXP_CORE wxNonOwnedWindow* wxFindWinFromMacWindow( WindowRef inWindow );
 WXDLLIMPEXP_CORE wxMenu* wxFindMenuFromMacMenu(MenuRef inMenuRef);
 
 WXDLLIMPEXP_CORE int wxMacCommandToId( UInt32 macCommandId );
 WXDLLIMPEXP_CORE UInt32 wxIdToMacCommand( int wxId );
 WXDLLIMPEXP_CORE wxMenu* wxFindMenuFromMacCommand( const HICommand &macCommandId , wxMenuItem* &item );
 
-extern wxWindow* g_MacLastWindow;
 WXDLLIMPEXP_CORE pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data );
-WXDLLIMPEXP_CORE Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size , bool adjustForOrigin = true );
+WXDLLIMPEXP_CORE Rect wxMacGetBoundsForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size , bool adjustForOrigin = true );
 
 ControlActionUPP GetwxMacLiveScrollbarActionProc();
 
@@ -331,29 +276,76 @@ enum {
 };
 #endif
 
-class WXDLLIMPEXP_CORE wxMacControl : public wxObject
+class WXDLLIMPEXP_CORE wxMacControl : public wxWidgetImpl
 {
 public :
-    wxMacControl( wxWindow* peer , bool isRootControl = false );
-    wxMacControl( wxWindow* peer , ControlRef control );
-    wxMacControl( wxWindow* peer , WXWidget control );
+    wxMacControl( wxWindowMac* peer , bool isRootControl = false, bool isUserPane = false );
     wxMacControl() ;
     virtual ~wxMacControl();
 
     void Init();
 
-    virtual void Dispose();
-
-    bool Ok() const { return IsOk(); }
-    bool IsOk() const { return GetControlRef() != NULL; }
-
     void SetReferenceInNativeControl();
     static wxMacControl* GetReferenceFromNativeControl(ControlRef control);
 
     virtual ControlRef * GetControlRefAddr() { return &m_controlRef; }
     virtual ControlRef GetControlRef() const { return m_controlRef; }
 
-    virtual void SetReference( URefCon data );
+    virtual WXWidget GetWXWidget() const { return (WXWidget) m_controlRef; }
+
+    virtual bool        IsVisible() const;
+
+    virtual void        Raise();
+
+    virtual void        Lower();
+
+    virtual void        ScrollRect( const wxRect *rect, int dx, int dy );
+
+    virtual void        GetContentArea( int &left , int &top , int &width , int &height ) const;
+    virtual void        Move(int x, int y, int width, int height);
+    virtual void        GetPosition( int &x, int &y ) const;
+    virtual void        GetSize( int &width, int &height ) const;
+    virtual void        SetControlSize( wxWindowVariant variant ) ;
+
+    // where is in native window relative coordinates
+    virtual void        SetNeedsDisplay( const wxRect* where = NULL );
+    virtual bool        GetNeedsDisplay() const;
+
+    virtual bool        CanFocus() const;
+    // return true if successful
+    virtual bool        SetFocus();
+    virtual bool        HasFocus() const;
+
+    void                RemoveFromParent();
+    void                Embed( wxWidgetImpl *parent );
+
+    void                SetDefaultButton( bool isDefault );
+    void                PerformClick();
+    void                SetLabel( const wxString& title, wxFontEncoding encoding );
+
+    void                SetCursor( const wxCursor & cursor );
+    void                CaptureMouse();
+    void                ReleaseMouse();
+
+    wxInt32             GetValue() const;
+    void                SetValue( wxInt32 v );
+    wxBitmap            GetBitmap() const;
+    void                SetBitmap( const wxBitmap& bitmap );
+    void                SetBitmapPosition( wxDirection dir );
+    void                SetupTabs( const wxNotebook &notebook );
+
+    void                GetBestRect( wxRect *r ) const;
+    bool                IsEnabled() const;
+    void                Enable( bool enable );
+    bool                ButtonClickDidStateChange() { return false ;}
+    void                SetMinimum( wxInt32 v );
+    void                SetMaximum( wxInt32 v );
+    void                PulseGauge() ;
+    void                SetScrollThumb( wxInt32 value, wxInt32 thumbSize );
+
+    // temp convenience methods
+
+    void                GetBestRect( Rect *r ) const;
     /*
     void operator= (ControlRef c) { m_controlRef = c; }
     operator ControlRef () { return m_controlRef; }
@@ -369,22 +361,12 @@ public :
 
     virtual OSStatus SendHICommand( UInt32 commandID , OptionBits inOptions = 0 );
 
-    virtual SInt32 GetValue() const;
-    virtual SInt32 GetMaximum() const;
-    virtual SInt32 GetMinimum() const;
-
-    virtual void SetValue( SInt32 v );
-    virtual void SetMinimum( SInt32 v );
-    virtual void SetMaximum( SInt32 v );
+    virtual wxInt32 GetMaximum() const;
+    virtual wxInt32 GetMinimum() const;
 
     virtual void SetValueAndRange( SInt32 value , SInt32 minimum , SInt32 maximum );
     virtual void SetRange( SInt32 minimum , SInt32 maximum );
 
-    virtual OSStatus SetFocus( ControlFocusPart focusPart );
-    virtual bool HasFocus() const;
-    virtual bool NeedsFocusRect() const;
-    virtual void SetNeedsFocusRect( bool needs );
-
     // templated helpers
 
     Size GetDataSize( ControlPartCode inPartCode , ResType inTag ) const
@@ -438,71 +420,43 @@ public :
     }
 
     // Flash the control for the specified amount of time
-    virtual void Flash( ControlPartCode part , UInt32 ticks = 8 );
 
     virtual void VisibilityChanged( bool shown );
     virtual void SuperChangedPosition();
 
 
-    virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle );
+    virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true );
     virtual void SetBackgroundColour( const wxColour& col );
+    virtual bool SetBackgroundStyle(wxBackgroundStyle style);
     virtual ControlPartCode HandleKey(  SInt16 keyCode,  SInt16 charCode, EventModifiers modifiers );
     void SetActionProc( ControlActionUPP   actionProc );
-    void SetViewSize( SInt32 viewSize );
     SInt32 GetViewSize() const;
 
-    virtual bool IsVisible() const;
-    virtual void SetVisibility( bool visible , bool redraw );
-    virtual bool IsEnabled() const;
+    virtual void SetVisibility( bool visible );
+
     virtual bool IsActive() const;
-    virtual void Enable( bool enable );
 
     // invalidates this control and all children
     virtual void InvalidateWithChildren();
     virtual void SetDrawingEnabled( bool enable );
-    virtual bool GetNeedsDisplay() const;
-
-    // where is in native window relative coordinates
-    virtual void SetNeedsDisplay( RgnHandle where );
-    // where is in native window relative coordinates
-    virtual void SetNeedsDisplay( Rect* where = NULL );
-
-    // if rect = NULL, entire view
-    virtual void ScrollRect( wxRect *rect , int dx , int dy );
 
     // in native parent window relative coordinates
-    virtual void GetRect( Rect *r );
-
-    // in native parent window relative coordinates
-    virtual void SetRect( Rect *r );
 
     virtual void GetRectInWindowCoords( Rect *r );
-    virtual void GetBestRect( Rect *r );
-    virtual void SetLabel( const wxString &title );
-    // converts from Toplevel-Content relative to local
-    static void Convert( wxPoint *pt , wxMacControl *convert , wxMacControl *to );
-
-    virtual void GetFeatures( UInt32 *features );
-    virtual OSStatus GetRegion( ControlPartCode partCode , RgnHandle region );
-    virtual OSStatus SetZOrder( bool above , wxMacControl* other );
 
-    bool    IsRootControl() { return m_isRootControl; }
 
-    wxWindow* GetPeer() const
-    {
-         return m_peer;
-    }
+    virtual void GetFeatures( UInt32 *features );
 
-     // to be moved into a tab control class
+    // to be moved into a tab control class
 
     virtual OSStatus SetTabEnabled( SInt16 tabNo , bool enable );
+
+    virtual void InstallEventHandler( WXWidget control = NULL );
 protected :
+    WXEVENTHANDLERREF    m_macControlEventHandler ;
     ControlRef  m_controlRef;
     wxFont      m_font;
     long        m_windowStyle;
-    wxWindow*   m_peer;
-    bool        m_needsFocusRect;
-    bool        m_isRootControl;
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacControl)
 };
 
@@ -607,6 +561,8 @@ public :
     OSStatus SetHeaderDesc( DataBrowserPropertyID property, DataBrowserListViewHeaderDesc *desc );
 
     OSStatus SetDisclosureColumn( DataBrowserPropertyID property , Boolean expandableRows );
+
+    OSStatus GetItemPartBounds( DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect * bounds );
 protected :
 
     static pascal void DataBrowserItemNotificationProc(
@@ -666,36 +622,21 @@ const DataBrowserPropertyID kMinColumnId = 1050;
 
 // base API for high-level databrowser operations
 
-class WXDLLIMPEXP_CORE wxMacListControl
-{
-public:
-    virtual void            MacDelete( unsigned int n ) = 0;
-    virtual void            MacInsert( unsigned int n, const wxArrayStringsAdapter& items, int column = -1 ) = 0;
-    // returns index of newly created line
-    virtual int             MacAppend( const wxString& item ) = 0;
-    virtual void            MacSetString( unsigned int n, const wxString& item ) = 0;
-    virtual void            MacClear() = 0;
-    virtual void            MacDeselectAll() = 0;
-    virtual void            MacSetSelection( unsigned int n, bool select, bool multi ) = 0;
-    virtual int             MacGetSelection() const = 0;
-    virtual int             MacGetSelections( wxArrayInt& aSelections ) const = 0;
-    virtual bool            MacIsSelected( unsigned int n ) const = 0;
-    virtual void            MacScrollTo( unsigned int n ) = 0;
-    virtual wxString        MacGetString( unsigned int n) const = 0;
-    virtual unsigned int    MacGetCount() const = 0;
-
-    virtual void            MacSetClientData( unsigned int n, void * data) = 0;
-    virtual void *          MacGetClientData( unsigned int) const = 0;
-
-    virtual ~wxMacListControl() { }
-};
-
 // base class for databrowser items
 
 enum DataItemType {
     DataItem_Text
 };
 
+/*
+class WXDLLIMPEXP_CORE wxMacDataItem
+{
+public :
+    wxMacDataItem();
+    virtual ~wxMacDataItem();
+} ;
+*/
+
 class WXDLLIMPEXP_CORE wxMacDataItem
 {
 public :
@@ -716,24 +657,11 @@ public :
         DataBrowserItemNotification message,
         DataBrowserItemDataRef itemData ) const;
 
-    void SetLabel( const wxString& str);
-    const wxString& GetLabel() const;
-
     void SetOrder( SInt32 order );
     SInt32 GetOrder() const;
 
-    void SetData( void* data);
-    void* GetData() const;
-
-    void SetColumn( short col );
-    short GetColumn();
-
 protected :
-    wxString    m_label;
-    wxCFStringRef m_cfLabel;
-    void *      m_data;
     SInt32      m_order;
-    DataBrowserPropertyID m_colId;
 
 };
 
@@ -745,18 +673,17 @@ enum ListSortOrder {
 
 typedef wxMacDataItem* wxMacDataItemPtr;
 const wxMacDataItemPtr wxMacDataBrowserRootContainer = NULL;
+typedef void * wxListColumnId ;
 
 WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxMacDataItemPtr, wxArrayMacDataItemPtr, class WXDLLIMPEXP_CORE);
 
-class WXDLLIMPEXP_CORE wxMacDataItemBrowserControl : public wxMacDataBrowserControl, public wxMacListControl
+class WXDLLIMPEXP_CORE wxMacDataItemBrowserControl : public wxMacDataBrowserControl
 {
 public :
     wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style);
     wxMacDataItemBrowserControl() {}
     // create a list item (can be a subclass of wxMacListBoxItem)
 
-    virtual wxMacDataItem* CreateItem();
-
     unsigned int    GetItemCount(const wxMacDataItem* container, bool recurse , DataBrowserItemState state) const;
     void            GetItems(const wxMacDataItem* container, bool recurse ,
                         DataBrowserItemState state, wxArrayMacDataItemPtr &items ) const;
@@ -793,56 +720,23 @@ public :
 
     void            GetSelectionAnchor( wxMacDataItemPtr* first , wxMacDataItemPtr* last) const;
 
-    // item aware methods, to be used in subclasses
-
-    virtual Boolean CompareItems(const wxMacDataItem* itemOneID,
-                        const wxMacDataItem* itemTwoID,
-                        DataBrowserPropertyID sortProperty);
-
-    virtual OSStatus GetSetItemData(wxMacDataItem* itemID,
-                        DataBrowserPropertyID property,
-                        DataBrowserItemDataRef itemData,
-                        Boolean changeValue );
-
-    virtual void    ItemNotification(
-                        const wxMacDataItem* itemID,
-                        DataBrowserItemNotification message,
-                        DataBrowserItemDataRef itemData);
-
-    // as we are getting the same events for human and API selection we have to suppress
-    // events in the latter case, since this will be used from many subclasses we keep it here
-
-    bool            IsSelectionSuppressed() const { return m_suppressSelection; }
-    bool            SuppressSelection( bool suppress );
-
-
-    // wxMacListControl Methods
     // add and remove
 
     virtual void            MacDelete( unsigned int n );
-    virtual void            MacInsert( unsigned int n, const wxArrayStringsAdapter& items, int column = -1 );
-    virtual int             MacAppend( const wxString& item );
+    virtual void            MacInsert( unsigned int n, wxMacDataItem* item);
     virtual void            MacClear();
 
-    // selecting
-
-    virtual void            MacDeselectAll();
-    virtual void            MacSetSelection( unsigned int n, bool select, bool multi = false );
-    virtual int             MacGetSelection() const;
-    virtual int             MacGetSelections( wxArrayInt& aSelections ) const;
-    virtual bool            MacIsSelected( unsigned int n ) const;
+    // accessing content
 
-    // display
+    virtual unsigned int    MacGetCount() const;
 
-    virtual void            MacScrollTo( unsigned int n );
+public :
 
-    // accessing content
+    // as we are getting the same events for human and API selection we have to suppress
+    // events in the latter case, since this will be used from many subclasses we keep it here
 
-    virtual void            MacSetString( unsigned int n, const wxString& item );
-    virtual void            MacSetClientData( unsigned int n, void * data);
-    virtual wxString        MacGetString( unsigned int n) const;
-    virtual void *          MacGetClientData( unsigned int) const;
-    virtual unsigned int    MacGetCount() const;
+    bool            IsSelectionSuppressed() const { return m_suppressSelection; }
+    bool            SuppressSelection( bool suppress );
 
     // client data
 
@@ -906,28 +800,116 @@ public :
 
     virtual ~wxMacListBoxItem();
 
+    virtual OSStatus GetSetData(wxMacDataItemBrowserControl *owner ,
+        DataBrowserPropertyID property,
+        DataBrowserItemDataRef itemData,
+        bool changeValue );
+
     virtual void Notification(wxMacDataItemBrowserControl *owner ,
         DataBrowserItemNotification message,
         DataBrowserItemDataRef itemData ) const;
+protected :
 };
 
-class WXDLLIMPEXP_CORE wxMacDataBrowserListControl : public wxMacDataItemBrowserControl
+class WXDLLIMPEXP_CORE wxMacDataBrowserColumn : public wxListWidgetColumn
+{
+public :
+    wxMacDataBrowserColumn( DataBrowserPropertyID propertyId, DataBrowserPropertyType colType, bool editable )
+        : m_property(propertyId), m_editable(editable), m_type( colType )
+    {
+    }
+    ~wxMacDataBrowserColumn()
+    {
+    }
+    DataBrowserPropertyID GetProperty() const { return m_property ; }
+
+    bool IsEditable() const { return m_editable; }
+
+    DataBrowserPropertyType GetType() const { return m_type; }
+
+protected :
+    DataBrowserPropertyID m_property;
+    bool m_editable;
+    DataBrowserPropertyType m_type;
+} ;
+
+WX_DEFINE_ARRAY_PTR(wxMacDataBrowserColumn *, wxArrayMacDataBrowserColumns);
+
+
+class WXDLLIMPEXP_CORE wxMacDataBrowserCellValue : public wxListWidgetCellValue
+{
+public :
+    wxMacDataBrowserCellValue(DataBrowserItemDataRef data) : m_data(data) {}
+    virtual ~wxMacDataBrowserCellValue() {}
+
+    virtual void Set( CFStringRef value );
+    virtual void Set( const wxString& value );
+    virtual void Set( int value ) ;
+    virtual void Check( bool check );
+
+    virtual int GetIntValue() const ;
+    virtual wxString GetStringValue() const ;
+protected :
+    DataBrowserItemDataRef m_data;
+} ;
+
+
+class WXDLLIMPEXP_CORE wxMacDataBrowserListControl : public wxMacDataItemBrowserControl, public wxListWidgetImpl
 {
 public:
     wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style );
     wxMacDataBrowserListControl() {}
     virtual ~wxMacDataBrowserListControl();
 
-    virtual wxMacDataItem* CreateItem();
+    // wxListWidgetImpl Methods
 
-    virtual void    ItemNotification(
-                        const wxMacDataItem* itemID,
-                        DataBrowserItemNotification message,
-                        DataBrowserItemDataRef itemData);
+    wxListWidgetColumn*     InsertTextColumn( unsigned int pos, const wxString& title, bool editable = false,
+                                wxAlignment just = wxALIGN_LEFT , int defaultWidth = -1) ;
+    wxListWidgetColumn*     InsertCheckColumn( unsigned int pos , const wxString& title, bool editable = false,
+                                wxAlignment just = wxALIGN_LEFT , int defaultWidth = -1) ;
+
+    wxMacDataBrowserColumn* DoInsertColumn( unsigned int pos, DataBrowserPropertyID property,
+                                const wxString& title, bool editable,
+                                DataBrowserPropertyType colType, SInt16 just, int width );
+    // add and remove
+
+    virtual void            ListDelete( unsigned int n );
+    virtual void            ListInsert( unsigned int n );
+    virtual void            ListClear();
+
+    // selecting
+
+    virtual void            ListDeselectAll();
+    virtual void            ListSetSelection( unsigned int n, bool select, bool multi = false );
+    virtual int             ListGetSelection() const;
+    virtual int             ListGetSelections( wxArrayInt& aSelections ) const;
+    virtual bool            ListIsSelected( unsigned int n ) const;
+
+    // display
+
+    virtual void            ListScrollTo( unsigned int n );
+
+    // accessing content
+
+    virtual unsigned int    ListGetCount() const;
+    virtual int             DoListHitTest( const wxPoint& inpoint ) const;
+
+    virtual void            UpdateLine( unsigned int n, wxListWidgetColumn* col = NULL );
+    virtual void            UpdateLineToEnd( unsigned int n) ;
 
     // pointing back
 
-    wxWindow * GetPeer() const;
+    wxMacDataBrowserColumn*     GetColumnFromProperty( DataBrowserPropertyID );
+
+protected:
+    virtual void            ItemNotification(
+                                DataBrowserItemID itemID,
+                                DataBrowserItemNotification message,
+                                DataBrowserItemDataRef itemData);
+
+private:
+    wxArrayMacDataBrowserColumns m_columns;
+    int m_nextColumnId ;
 
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserListControl)
 };
@@ -945,20 +927,6 @@ OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
 
 CGColorRef WXDLLIMPEXP_CORE wxMacCreateCGColorFromHITheme( ThemeBrush brush ) ;
 
-CGColorSpaceRef WXDLLIMPEXP_CORE wxMacGetGenericRGBColorSpace(void);
-
-// toplevel.cpp
-
-class WXDLLIMPEXP_CORE wxMacDeferredWindowDeleter : public wxObject
-{
-public :
-    wxMacDeferredWindowDeleter( WindowRef windowRef );
-    virtual ~wxMacDeferredWindowDeleter();
-
-protected :
-    WindowRef m_macWindow ;
-} ;
-
 #endif // wxUSE_GUI
 
 #define wxMAC_DEFINE_PROC_GETTER( UPP , x ) \
@@ -970,77 +938,14 @@ UPP Get##x()                                \
     return sHandler;                        \
 }
 
-//---------------------------------------------------------------------------
-// wxMac string conversions
-//---------------------------------------------------------------------------
-
-void wxMacSetupConverters();
-void wxMacCleanupConverters();
-
-WXDLLIMPEXP_BASE void wxMacStringToPascal( const wxString&from , StringPtr to );
-WXDLLIMPEXP_BASE wxString wxMacMakeStringFromPascal( ConstStringPtr from );
-
-// filefn.cpp
-
-WXDLLIMPEXP_BASE wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL );
-WXDLLIMPEXP_BASE OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef );
-WXDLLIMPEXP_BASE wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname );
-
-#if wxUSE_GUI
-
-// deprecating QD
-
-void wxMacLocalToGlobal( WindowRef window , Point*pt );
-void wxMacGlobalToLocal( WindowRef window , Point*pt );
-
-#endif
-
 //---------------------------------------------------------------------------
 // cocoa bridging utilities
 //---------------------------------------------------------------------------
 
 bool wxMacInitCocoa();
 
-class WXDLLIMPEXP_CORE wxMacAutoreleasePool
-{
-public :
-    wxMacAutoreleasePool();
-    ~wxMacAutoreleasePool();
-private :
-    void* m_pool;
-};
-
-// NSObject
-
-void wxMacCocoaRelease( void* obj );
-void wxMacCocoaAutorelease( void* obj );
-void wxMacCocoaRetain( void* obj );
-
-#if wxMAC_USE_COCOA
-
-// NSCursor
-
-WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type );
-WX_NSCursor  wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hotSpotX, float hotSpotY );
-void  wxMacCocoaSetCursor( WX_NSCursor cursor );
-void  wxMacCocoaHideCursor();
-void  wxMacCocoaShowCursor();
-
-typedef struct tagClassicCursor
-{
-    wxUint16 bits[16];
-    wxUint16 mask[16];
-    wxInt16 hotspot[2];
-}ClassicCursor;
-
-#else // !wxMAC_USE_COCOA
-
-// non Darwin
-
 typedef Cursor ClassicCursor;
 
-#endif // wxMAC_USE_COCOA
-
 // -------------
 // Common to all
 // -------------
@@ -1062,11 +967,96 @@ const short kwxCursorSize = 11;
 const short kwxCursorSizeNESW = 12;
 const short kwxCursorSizeNWSE = 13;
 const short kwxCursorRoller = 14;
-const short kwxCursorLast = kwxCursorRoller;
+const short kwxCursorWatch = 15;
+const short kwxCursorLast = kwxCursorWatch;
 
 // exposing our fallback cursor map
 
 extern ClassicCursor gMacCursors[];
 
+//
+//
+//
+
+#if wxUSE_GUI
+
+class wxNonOwnedWindowCarbonImpl : public wxNonOwnedWindowImpl
+{
+public :
+    wxNonOwnedWindowCarbonImpl( wxNonOwnedWindow* nonownedwnd) ;
+
+    wxNonOwnedWindowCarbonImpl();
+    virtual ~wxNonOwnedWindowCarbonImpl();
+
+    virtual void WillBeDestroyed() ;
+    void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size,
+    long style, long extraStyle, const wxString& name ) ;
+    void Create( wxWindow* parent, WXWindow nativeWindow );
+
+    WXWindow GetWXWindow() const;
+    void Raise();
+    void Lower();
+    bool Show(bool show);
+    bool ShowWithEffect(bool show, wxShowEffect effect, unsigned timeout);
+
+
+    void Update();
+    bool SetTransparent(wxByte alpha);
+    bool SetBackgroundColour(const wxColour& col );
+    void SetExtraStyle( long exStyle );
+    bool SetBackgroundStyle(wxBackgroundStyle style);
+    bool CanSetTransparent();
+    void MoveWindow(int x, int y, int width, int height);
+    void GetPosition( int &x, int &y ) const;
+    void GetSize( int &width, int &height ) const;
+    void GetContentArea( int &left , int &top , int &width , int &height ) const;
+
+    bool SetShape(const wxRegion& region);
+
+    virtual void SetTitle( const wxString& title, wxFontEncoding encoding ) ;
+
+    virtual bool IsMaximized() const;
+
+    virtual bool IsIconized() const;
+
+    virtual void Iconize( bool iconize );
+
+    virtual void Maximize(bool maximize);
+
+    virtual bool IsFullScreen() const;
+
+    virtual bool ShowFullScreen(bool show, long style);
+
+    virtual void ShowWithoutActivating();
+
+    virtual void RequestUserAttention(int flags);
+
+    virtual void ScreenToWindow( int *x, int *y );
+
+    virtual void WindowToScreen( int *x, int *y );
+    virtual bool IsActive();
+
+
+    bool MacGetUnifiedAppearance() const ;
+    void MacChangeWindowAttributes( wxUint32 attributesToSet , wxUint32 attributesToClear ) ;
+    wxUint32 MacGetWindowAttributes() const ;
+    void MacSetMetalAppearance( bool set ) ;
+    bool MacGetMetalAppearance() const ;
+    void MacSetUnifiedAppearance( bool set );
+
+    WXEVENTHANDLERREF    MacGetEventHandler() { return m_macEventHandler ; }
+
+    wxNonOwnedWindow*   GetWXPeer() { return m_wxPeer; }
+protected :
+    void                MacInstallTopLevelWindowEventHandler();
+
+    WXEVENTHANDLERREF   m_macEventHandler ;
+    WindowRef           m_macWindow;
+    void *              m_macFullScreenData ;
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowCarbonImpl)
+};
+
+#endif // wxUSE_GUI
+
 #endif
     // _WX_PRIVATE_H_