]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/iphone/private.h
Use SelectAll() instead of SetSelection(-1, -1).
[wxWidgets.git] / include / wx / osx / iphone / private.h
index 0782922cb9d9065972c075071bfed073aa3b7a7d..ff78c42c36919675c37e280ae9595b88c692490c 100644 (file)
@@ -6,7 +6,7 @@
 // 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
 /////////////////////////////////////////////////////////////////////////////
 #ifndef _WX_PRIVATE_IPHONE_H_
 #define _WX_PRIVATE_IPHONE_H_
 
-#include "wx/osx/core/private.h"
-
 #ifdef __OBJC__
     #import <UIKit/UIKit.h>
 #endif
 
+#include <CoreText/CTFont.h>
+#include <CoreText/CTStringAttributes.h>
+#include <CoreText/CTLine.h>
+
+
 #if wxUSE_GUI
 
 OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
@@ -27,22 +30,23 @@ OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
                                const CGRect *  inBounds,
                                CGImageRef      inImage) ;
 
-WX_UIImage WXDLLIMPEXP_CORE wxOSXCreateUIImageFromCGImage( CGImageRef image );
+WX_UIImage WXDLLIMPEXP_CORE wxOSXGetUIImageFromCGImage( CGImageRef image );
+wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size);
 
 class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl
 {
 public :
-    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, bool isRootControl = false ) ;    
-    wxWidgetIPhoneImpl() ;    
-    ~wxWidgetIPhoneImpl();    
-    
+    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, bool isRootControl = false, bool isUserPane = false ) ;
+    wxWidgetIPhoneImpl() ;
+    ~wxWidgetIPhoneImpl();
+
     void Init();
-    
+
     virtual bool        IsVisible() const ;
     virtual void        SetVisibility( bool visible );
-    
+
     virtual void        Raise();
-    
+
     virtual void        Lower();
 
     virtual void        ScrollRect( const wxRect *rect, int dx, int dy );
@@ -50,13 +54,15 @@ public :
     virtual WXWidget    GetWXWidget() const { return m_osxView; }
 
     virtual void        SetBackgroundColour( const wxColour& col ) ;
+    virtual bool        SetBackgroundStyle(wxBackgroundStyle style) ;
 
     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 );
-
+    virtual float       GetContentScaleFactor() const ;
+    
     virtual void        SetNeedsDisplay( const wxRect* where = NULL );
     virtual bool        GetNeedsDisplay() const;
 
@@ -67,7 +73,7 @@ public :
 
     void                RemoveFromParent();
     void                Embed( wxWidgetImpl *parent );
-    
+
     void                SetDefaultButton( bool isDefault );
     void                PerformClick();
     virtual void        SetLabel(const wxString& title, wxFontEncoding encoding);
@@ -78,7 +84,11 @@ public :
 
     wxInt32             GetValue() const;
     void                SetValue( wxInt32 v );
-    void                SetBitmap( const wxBitmap& bitmap );
+
+    virtual wxBitmap    GetBitmap() const;
+    virtual void        SetBitmap( const wxBitmap& bitmap );
+    virtual void        SetBitmapPosition( wxDirection dir );
+
     void                SetupTabs( const wxNotebook &notebook );
     void                GetBestRect( wxRect *r ) const;
     bool                IsEnabled() const;
@@ -94,20 +104,20 @@ public :
     void                SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true );
 
     void                InstallEventHandler( WXWidget control = NULL );
-    
-    virtual void        DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow); 
+
+    virtual void        DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow);
 
     // thunk connected calls
+
     virtual void        drawRect(CGRect* rect, WXWidget slf, void* _cmd);
     virtual void        touchEvent(WX_NSSet touches, WX_UIEvent event, WXWidget slf, void* _cmd);
     virtual bool        becomeFirstResponder(WXWidget slf, void* _cmd);
     virtual bool        resignFirstResponder(WXWidget slf, void* _cmd);
 
     // action
-    
-    virtual void        touchUpInsideAction(void* sender, WX_UIEvent evt, WXWidget slf, void* _cmd);
 
+    virtual void        controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent);
+    virtual void         controlTextDidChange();
 protected:
     WXWidget m_osxView;
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetIPhoneImpl)
@@ -118,59 +128,66 @@ class wxNonOwnedWindowIPhoneImpl : public wxNonOwnedWindowImpl
 public :
     wxNonOwnedWindowIPhoneImpl( wxNonOwnedWindow* nonownedwnd) ;
     wxNonOwnedWindowIPhoneImpl();
-    
+
     virtual ~wxNonOwnedWindowIPhoneImpl();
-    
-    virtual void Destroy() ;
+
+    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 Raise();
     void Lower();
-    bool Show(bool show);    
+    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);    
+    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;    
+    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 RequestUserAttention(int flags);
-    
+
     virtual void ScreenToWindow( int *x, int *y );
-    
+
     virtual void WindowToScreen( int *x, int *y );
-    
+
+    // FIXME: Does iPhone have a concept of inactive windows?
+    virtual bool IsActive() { return true; }
+
     wxNonOwnedWindow*   GetWXPeer() { return m_wxPeer; }
+
+    virtual bool InitialShowEventSent() { return m_initialShowSent; }
 protected :
     WX_UIWindow          m_macWindow;
     void *              m_macFullScreenData ;
+    bool                m_initialShowSent;
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowIPhoneImpl)
-};    
+};
 
 #ifdef __OBJC__
 
@@ -178,16 +195,23 @@ protected :
     WXDLLIMPEXP_CORE wxRect wxFromNSRect( UIView* parent, const CGRect& rect );
     WXDLLIMPEXP_CORE CGPoint wxToNSPoint( UIView* parent, const wxPoint& p );
     WXDLLIMPEXP_CORE wxPoint wxFromNSPoint( UIView* parent, const CGPoint& p );
-    
-    CGRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size , 
+
+    CGRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size ,
         bool adjustForOrigin = true );
 
     @interface wxUIButton : UIButton
     {
     }
-    
+
     @end
 
+    @interface wxUIView : UIView
+    {
+    }
+
+    @end // wxUIView
+
+
     void WXDLLIMPEXP_CORE wxOSXIPhoneClassAddWXMethods(Class c);
 
 #endif