X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9a4f2295344414e2ee4e3ec27fa5292918dff27..661698e54f2bc599dc1a961ffbae08ccdd6b9b97:/include/wx/osx/core/private.h diff --git a/include/wx/osx/core/private.h b/include/wx/osx/core/private.h index cd1e534472..fb1d230c32 100644 --- a/include/wx/osx/core/private.h +++ b/include/wx/osx/core/private.h @@ -32,7 +32,24 @@ #define wxOSX_10_6_AND_LATER(x) #endif -#if !wxUSE_GUI || wxOSX_USE_COCOA_OR_CARBON +// platform specific Clang analyzer support +#ifndef NS_RETURNS_RETAINED +# if WX_HAS_CLANG_FEATURE(attribute_ns_returns_retained) +# define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) +# else +# define NS_RETURNS_RETAINED +# endif +#endif + +#ifndef CF_RETURNS_RETAINED +# if WX_HAS_CLANG_FEATURE(attribute_cf_returns_retained) +# define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) +# else +# define CF_RETURNS_RETAINED +# endif +#endif + +#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON // Carbon functions are currently still used in wxOSX/Cocoa too (including // wxBase part of it). @@ -47,6 +64,11 @@ WXDLLIMPEXP_BASE wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef add WXDLLIMPEXP_BASE OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef ); WXDLLIMPEXP_BASE wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname ); +// keycode utils from app.cpp + +WXDLLIMPEXP_BASE CGKeyCode wxCharCodeWXToOSX(wxKeyCode code); +WXDLLIMPEXP_BASE long wxMacTranslateKey(unsigned char key, unsigned char code); + #endif #if wxUSE_GUI @@ -100,7 +122,9 @@ WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithCFData( CFDataRe WXDLLIMPEXP_CORE CGDataConsumerRef wxMacCGDataConsumerCreateWithCFData( CFMutableDataRef data ); WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithMemoryBuffer( const wxMemoryBuffer& buf ); -CGColorSpaceRef WXDLLIMPEXP_CORE wxMacGetGenericRGBColorSpace(void); +WXDLLIMPEXP_CORE CGColorSpaceRef wxMacGetGenericRGBColorSpace(void); + +WXDLLIMPEXP_CORE double wxOSXGetMainScreenContentScaleFactor(); class wxWindowMac; // to @@ -193,13 +217,15 @@ protected : class WXDLLIMPEXP_CORE wxWidgetImpl : public wxObject { public : - wxWidgetImpl( wxWindowMac* peer , bool isRootControl = false ); + wxWidgetImpl( wxWindowMac* peer , bool isRootControl = false, bool isUserPane = false ); wxWidgetImpl(); virtual ~wxWidgetImpl(); void Init(); bool IsRootControl() const { return m_isRootControl; } + + bool IsUserPane() const { return m_isUserPane; } wxWindowMac* GetWXPeer() const { return m_wxPeer; } @@ -235,7 +261,7 @@ public : virtual void GetPosition( int &x, int &y ) const = 0; virtual void GetSize( int &width, int &height ) const = 0; virtual void SetControlSize( wxWindowVariant variant ) = 0; - virtual float GetContentScaleFactor() const + virtual double GetContentScaleFactor() const { return 1.0; } @@ -258,6 +284,8 @@ public : virtual bool NeedsFrame() const; virtual void SetNeedsFrame( bool needs ); + + virtual void SetDrawingEnabled(bool enabled); virtual bool CanFocus() const = 0; // return true if successful @@ -277,13 +305,16 @@ public : virtual void SetCursor( const wxCursor & cursor ) = 0; virtual void CaptureMouse() = 0; virtual void ReleaseMouse() = 0; + + virtual void SetDropTarget( wxDropTarget * WXUNUSED(dropTarget) ) {} virtual wxInt32 GetValue() const = 0; virtual void SetValue( wxInt32 v ) = 0; virtual wxBitmap GetBitmap() const = 0; virtual void SetBitmap( const wxBitmap& bitmap ) = 0; virtual void SetBitmapPosition( wxDirection dir ) = 0; - virtual void SetupTabs( const wxNotebook ¬ebook ) =0; + virtual void SetupTabs( const wxNotebook& WXUNUSED(notebook) ) {} + virtual int TabHitTest( const wxPoint & WXUNUSED(pt), long *flags ) {*flags=1; return -1;}; virtual void GetBestRect( wxRect *r ) const = 0; virtual bool IsEnabled() const = 0; virtual void Enable( bool enable ) = 0; @@ -312,9 +343,16 @@ public : // static methods for associating native controls and their implementations + // finds the impl associated with this native control static wxWidgetImpl* FindFromWXWidget(WXWidget control); + // finds the impl associated with this native control, if the native control itself is not known + // also checks whether its parent is eg a registered scrollview, ie whether the control is a native subpart + // of a known control + static wxWidgetImpl* + FindBestFromWXWidget(WXWidget control); + static void RemoveAssociations( wxWidgetImpl* impl); static void Associate( WXWidget control, wxWidgetImpl *impl ); @@ -520,6 +558,7 @@ public : static void Convert( wxPoint *pt , wxWidgetImpl *from , wxWidgetImpl *to ); protected : bool m_isRootControl; + bool m_isUserPane; wxWindowMac* m_wxPeer; bool m_needsFocusRect; bool m_needsFrame; @@ -623,6 +662,9 @@ public : virtual void GetSelection( long* from, long* to ) const = 0 ; virtual void WriteText( const wxString& str ) = 0 ; + virtual bool CanClipMaxLength() const { return false; } + virtual void SetMaxLength(unsigned long WXUNUSED(len)) {} + virtual bool GetStyle( long position, wxTextAttr& style); virtual void SetStyle( long start, long end, const wxTextAttr& style ) ; virtual void Copy() ; @@ -672,16 +714,18 @@ public : virtual ~wxComboWidgetImpl() {} - virtual int GetSelectedItem() const { return -1; }; - virtual void SetSelectedItem(int WXUNUSED(item)) {}; + virtual int GetSelectedItem() const { return -1; } + virtual void SetSelectedItem(int WXUNUSED(item)) {} - virtual int GetNumberOfItems() const { return -1; }; + virtual int GetNumberOfItems() const { return -1; } virtual void InsertItem(int WXUNUSED(pos), const wxString& WXUNUSED(item)) {} virtual void RemoveItem(int WXUNUSED(pos)) {} virtual void Clear() {} + virtual void Popup() {} + virtual void Dismiss() {} virtual wxString GetStringAtIndex(int WXUNUSED(pos)) const { return wxEmptyString; } @@ -831,7 +875,7 @@ public : virtual void ScreenToWindow( int *x, int *y ) = 0; virtual void WindowToScreen( int *x, int *y ) = 0; - + virtual bool IsActive() = 0; wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; } @@ -853,6 +897,8 @@ public : virtual void SetModified(bool WXUNUSED(modified)) { } virtual bool IsModified() const { return false; } + virtual void SetRepresentedFilename(const wxString& WXUNUSED(filename)) { } + #if wxOSX_USE_IPHONE virtual CGFloat GetWindowLevel() const { return 0.0; } #else