X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ef4e126a2198e33ad3ec09a0211d5579865d880..c2ca375c5620209d77a88d2d378bdcdedbc82e7e:/include/wx/mac/carbon/private.h diff --git a/include/wx/mac/carbon/private.h b/include/wx/mac/carbon/private.h index dd8276070d..fb5430f738 100644 --- a/include/wx/mac/carbon/private.h +++ b/include/wx/mac/carbon/private.h @@ -43,6 +43,10 @@ #define MAC_OS_X_VERSION_10_4 1040 #endif +#ifndef MAC_OS_X_VERSION_10_5 + #define MAC_OS_X_VERSION_10_5 1050 +#endif + #ifdef __WXMAC_CARBON__ #include "wx/mac/corefoundation/cfstring.h" #endif @@ -60,10 +64,17 @@ inline int FixedToInt( Fixed inFixed ) } #endif +#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 +typedef UInt32 URefCon; +typedef SInt32 SRefCon; +#endif + #if wxUSE_GUI #include "wx/listbox.h" +#ifndef __LP64__ + class wxMacPortStateHelper { DECLARE_NO_COPY_CLASS(wxMacPortStateHelper) @@ -140,6 +151,7 @@ private: GrafPtr m_newPort; ThemeDrawingState m_themeDrawingState; }; +#endif #if wxMAC_USE_CORE_GRAPHICS class WXDLLEXPORT wxMacCGContextStateSaver @@ -169,7 +181,8 @@ class wxMacDrawingHelper public: wxMacDrawingHelper( wxWindowMac * theWindow , bool clientArea = false ); ~wxMacDrawingHelper(); - bool Ok() { return m_ok; } + bool Ok() const { return IsOk(); } + bool IsOk() { return m_ok; } void LocalToWindow( Rect *rect) { OffsetRect( rect , m_origin.h , m_origin.v ); } void LocalToWindow( Point *pt ) { AddPt( m_origin , pt ); } void LocalToWindow( RgnHandle rgn ) { OffsetRgn( rgn , m_origin.h , m_origin.v ); } @@ -474,19 +487,21 @@ Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxS ControlActionUPP GetwxMacLiveScrollbarActionProc(); -class wxMacControl +class wxMacControl : public wxObject { public : wxMacControl( wxWindow* peer , bool isRootControl = false ); wxMacControl( wxWindow* peer , ControlRef control ); wxMacControl( wxWindow* peer , WXWidget control ); + wxMacControl() ; virtual ~wxMacControl(); void Init(); virtual void Dispose(); - bool Ok() const { return GetControlRef() != NULL; } + bool Ok() const { return IsOk(); } + bool IsOk() const { return GetControlRef() != NULL; } void SetReferenceInNativeControl(); static wxMacControl* GetReferenceFromNativeControl(ControlRef control); @@ -494,7 +509,7 @@ public : virtual ControlRef * GetControlRefAddr() { return &m_controlRef; } virtual ControlRef GetControlRef() const { return m_controlRef; } - virtual void SetReference( SInt32 data ); + virtual void SetReference( URefCon data ); /* void operator= (ControlRef c) { m_controlRef = c; } operator ControlRef () { return m_controlRef; } @@ -642,6 +657,7 @@ protected : wxWindow* m_peer; bool m_needsFocusRect; bool m_isRootControl; + DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacControl) }; // ============================================================================ @@ -655,13 +671,14 @@ class wxMacDataBrowserControl : public wxMacControl { public : wxMacDataBrowserControl( wxWindow* peer, const wxPoint& pos, const wxSize& size, long style); + wxMacDataBrowserControl() {} OSStatus SetCallbacks( const DataBrowserCallbacks *callbacks ); OSStatus GetItemCount( DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, - UInt32 *numItems) const; + ItemCount *numItems) const; OSStatus GetItems( DataBrowserItemID container, Boolean recurse, @@ -671,7 +688,7 @@ public : OSStatus AddColumn( DataBrowserListViewColumnDesc *columnDesc, DataBrowserTableViewColumnIndex position ); - + OSStatus RemoveColumn( DataBrowserTableViewColumnIndex position ); OSStatus AutoSizeColumns(); @@ -725,8 +742,8 @@ public : OSStatus GetColumnIDFromIndex( DataBrowserTableViewColumnIndex position, DataBrowserTableViewColumnID* id ); - OSStatus GetColumnPosition( DataBrowserPropertyID column, UInt32 *position) const; - OSStatus SetColumnPosition( DataBrowserPropertyID column, UInt32 position); + OSStatus GetColumnPosition( DataBrowserPropertyID column, DataBrowserTableViewColumnIndex *position) const; + OSStatus SetColumnPosition( DataBrowserPropertyID column, DataBrowserTableViewColumnIndex position); OSStatus GetScrollPosition( UInt32 *top , UInt32 *left ) const; OSStatus SetScrollPosition( UInt32 top , UInt32 left ); @@ -771,14 +788,15 @@ protected : Boolean changeValue ) = 0; static pascal Boolean DataBrowserCompareProc( - ControlRef browser, - DataBrowserItemID itemOneID, - DataBrowserItemID itemTwoID, - DataBrowserPropertyID sortProperty); - - virtual Boolean CompareItems(DataBrowserItemID itemOneID, - DataBrowserItemID itemTwoID, - DataBrowserPropertyID sortProperty) = 0; + ControlRef browser, + DataBrowserItemID itemOneID, + DataBrowserItemID itemTwoID, + DataBrowserPropertyID sortProperty); + + virtual Boolean CompareItems(DataBrowserItemID itemOneID, + DataBrowserItemID itemTwoID, + DataBrowserPropertyID sortProperty) = 0; + DECLARE_ABSTRACT_CLASS(wxMacDataBrowserControl) }; // ============================================================================ @@ -796,7 +814,7 @@ class wxMacListBoxItem; const DataBrowserPropertyID kTextColumnId = 1024; const DataBrowserPropertyID kNumericOrderColumnId = 1025; -// for multi-column controls, we will use this + the column ID to identify the +// for multi-column controls, we will use this + the column ID to identify the // column. We don't use kTextColumnId there, and ideally the two should merge. const DataBrowserPropertyID kMinColumnId = 1050; @@ -825,7 +843,7 @@ public: virtual void * MacGetClientData( unsigned int) const = 0; virtual ~wxMacListControl() { } -}; +}; // base class for databrowser items @@ -852,26 +870,26 @@ public : virtual void Notification(wxMacDataItemBrowserControl *owner , DataBrowserItemNotification message, DataBrowserItemDataRef itemData ) const; - + void SetLabel( const wxString& str); - const wxString& GetLabel() const; + const wxString& GetLabel() const; void SetOrder( SInt32 order ); SInt32 GetOrder() const; void SetData( void* data); void* GetData() const; - + void SetColumn( short col ); - short GetColumn(); - + short GetColumn(); + protected : wxString m_label; wxMacCFStringHolder m_cfLabel; void * m_data; SInt32 m_order; - short m_colId; - + DataBrowserPropertyID m_colId; + }; enum ListSortOrder { @@ -889,7 +907,7 @@ class wxMacDataItemBrowserControl : public wxMacDataBrowserControl, public wxMac { 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(); @@ -897,7 +915,7 @@ public : unsigned int GetItemCount(const wxMacDataItem* container, bool recurse , DataBrowserItemState state) const; void GetItems(const wxMacDataItem* container, bool recurse , DataBrowserItemState state, wxArrayMacDataItemPtr &items ) const; - + unsigned int GetSelectedItemCount( const wxMacDataItem* container, bool recurse ) const; unsigned int GetLineFromItem(const wxMacDataItem *item) const; @@ -910,7 +928,7 @@ public : void InsertColumn(int colId, DataBrowserPropertyType colType, const wxString& title, SInt16 just = teFlushDefault, int defaultWidth = -1); - + int GetColumnWidth(int colId); void SetColumnWidth(int colId, int width); @@ -951,8 +969,8 @@ public : bool IsSelectionSuppressed() const { return m_suppressSelection; } bool SuppressSelection( bool suppress ); - - + + // wxMacListControl Methods // add and remove @@ -986,10 +1004,10 @@ public : virtual wxClientDataType GetClientDataType() const; virtual void SetClientDataType(wxClientDataType clientDataItemsType); - virtual ListSortOrder GetSortOrder() const; - virtual void SetSortOrder(const ListSortOrder sort); + //virtual ListSortOrder GetSortOrder() const; + //virtual void SetSortOrder(const ListSortOrder sort); + - protected: @@ -1016,6 +1034,7 @@ protected: private : bool m_suppressSelection; + DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataItemBrowserControl) }; class wxMacDataItemBrowserSelectionSuppressor @@ -1052,19 +1071,23 @@ class wxMacDataBrowserListControl : public wxMacDataItemBrowserControl { public: wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style ); + wxMacDataBrowserListControl() {} virtual ~wxMacDataBrowserListControl(); + virtual wxMacDataItem* CreateItem(); + // pointing back wxWindow * GetPeer() const; + DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserListControl) }; // ============================================================================ // graphics implementation // ============================================================================ -#if wxMAC_USE_CORE_GRAPHICS +#if wxMAC_USE_CORE_GRAPHICS && !wxUSE_GRAPHICS_CONTEXT class WXDLLEXPORT wxMacCGPath : public wxGraphicPath { @@ -1080,6 +1103,10 @@ public : void AddRectangle( wxCoord x, wxCoord y, wxCoord w, wxCoord h ); void AddCircle( wxCoord x, wxCoord y , wxCoord r ); + // draws a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2) + virtual void AddArcToPoint( wxCoord x1, wxCoord y1 , wxCoord x2, wxCoord y2, wxCoord r ) ; + virtual void AddArc( wxCoord x, wxCoord y, wxCoord r, double startAngle, double endAngle, bool clockwise ) ; + // closes the current subpath void CloseSubpath(); @@ -1109,12 +1136,32 @@ public: CGContextRef GetNativeContext(); void SetNativeContext( CGContextRef cg ); CGPathDrawingMode GetDrawingMode() const { return m_mode; } + + virtual void Translate( wxCoord dx , wxCoord dy ); + virtual void Scale( wxCoord xScale , wxCoord yScale ); + virtual void DrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, wxCoord w, wxCoord h ); + virtual void DrawIcon( const wxIcon &icon, wxCoord x, wxCoord y, wxCoord w, wxCoord h ); + virtual void PushState(); + virtual void PopState(); + + virtual void DrawText( const wxString &str, wxCoord x, wxCoord y, double angle ) ; + + virtual void GetTextExtent( const wxString &str, wxCoord *width, wxCoord *height, + wxCoord *descent, wxCoord *externalLeading ) const ; + + virtual void GetPartialTextExtents(const wxString& text, wxArrayInt& widths) const ; + + virtual void SetFont( const wxFont &font ) ; + + virtual void SetTextColor( const wxColour &col ) ; private: CGContextRef m_cgContext; CGrafPtr m_qdPort; CGPathDrawingMode m_mode; + ATSUStyle m_macATSUIStyle ; wxPen m_pen; wxBrush m_brush; + wxColor m_textForegroundColor ; }; #endif // wxMAC_USE_CORE_GRAPHICS @@ -1128,17 +1175,18 @@ void wxMacMemoryBufferReleaseProc(void *info, const void *data, size_t size); class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData { - DECLARE_NO_COPY_CLASS(wxBitmapRefData) - friend class WXDLLEXPORT wxIcon; friend class WXDLLEXPORT wxCursor; public: wxBitmapRefData(int width , int height , int depth); wxBitmapRefData(); + wxBitmapRefData(const wxBitmapRefData &tocopy); + virtual ~wxBitmapRefData(); void Free(); - bool Ok() const { return m_ok; } + bool Ok() const { return IsOk(); } + bool IsOk() const { return m_ok; } void SetOk( bool isOk) { m_ok = isOk; } void SetWidth( int width ) { m_width = width; } @@ -1232,6 +1280,8 @@ private : ControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, const Point& location , WindowRef window , ControlPartCode *outPart ); +#ifndef __LP64__ + #ifdef WORDS_BIGENDIAN inline Rect* wxMacGetPictureBounds( PicHandle pict , Rect* rect ) { @@ -1245,6 +1295,8 @@ ControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, cons } #endif +#endif + #endif // wxUSE_GUI #define wxMAC_DEFINE_PROC_GETTER( UPP , x ) \ @@ -1272,5 +1324,14 @@ wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathCompon OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef ); wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname ); +#if wxUSE_GUI + +// deprecating QD + +void wxMacLocalToGlobal( WindowRef window , Point*pt ); +void wxMacGlobalToLocal( WindowRef window , Point*pt ); + +#endif + #endif // _WX_PRIVATE_H_