// Author: Stefan Csomor
// Modified by:
// Created: 1998-01-01
-// RCS-ID: $Id: private.h 53819 2008-05-29 14:11:45Z SC $
+// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#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).
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
class wxComboBox;
class wxNotebook;
class wxTextCtrl;
+class wxSearchCtrl;
WXDLLIMPEXP_CORE wxWindowMac * wxFindWindowFromWXWidget(WXWidget inControl );
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; }
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
+ {
+ return 1.0;
+ }
// the native coordinates may have an 'aura' for shadows etc, if this is the case the layout
// inset indicates on which insets the real control is drawn
virtual bool NeedsFrame() const;
virtual void SetNeedsFrame( bool needs );
+
+ virtual void SetDrawingEnabled(bool enabled);
virtual bool CanFocus() const = 0;
// return true if successful
virtual void SetDefaultButton( bool isDefault ) = 0;
virtual void PerformClick() = 0;
virtual void SetLabel( const wxString& title, wxFontEncoding encoding ) = 0;
+#if wxUSE_MARKUP && wxOSX_USE_COCOA
+ virtual void SetLabelMarkup( const wxString& WXUNUSED(markup) ) { }
+#endif
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;
long style,
long extraStyle) ;
- static wxWidgetImplType* CreateSearchControl( wxTextCtrl* wxpeer,
+ static wxWidgetImplType* CreateSearchControl( wxSearchCtrl* wxpeer,
wxWindowMac* parent,
wxWindowID id,
const wxString& content,
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;
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() ;
virtual wxSize GetBestSize() const { return wxDefaultSize; }
+ virtual bool SetHint(const wxString& WXUNUSED(hint)) { return false; }
private:
wxTextEntry * const m_entry;
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; }
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
+ virtual CGWindowLevel GetWindowLevel() const { return kCGNormalWindowLevel; }
+#endif
+ virtual void RestoreWindowLevel() {}
protected :
wxNonOwnedWindow* m_wxPeer;
DECLARE_ABSTRACT_CLASS(wxNonOwnedWindowImpl)