]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/iphone/private.h
Split wxTextCompleter into a base class and wxTextCompleterSimple.
[wxWidgets.git] / include / wx / osx / iphone / private.h
index e30519729ff12275858366feebdd4527555cc9e7..a65f3ee2bf93269acd3129c9451ab4b6e8f4f954 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
 
 #if wxUSE_GUI
 
+OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
+                               CGContextRef    inContext,
+                               const CGRect *  inBounds,
+                               CGImageRef      inImage) ;
+
+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 );
@@ -43,12 +49,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;
 
@@ -59,6 +68,51 @@ public :
 
     void                RemoveFromParent();
     void                Embed( wxWidgetImpl *parent );
+
+    void                SetDefaultButton( bool isDefault );
+    void                PerformClick();
+    virtual void        SetLabel(const wxString& title, wxFontEncoding encoding);
+
+    void                SetCursor( const wxCursor & cursor );
+    void                CaptureMouse();
+    void                ReleaseMouse();
+
+    wxInt32             GetValue() const;
+    void                SetValue( wxInt32 v );
+
+    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;
+    void                Enable( bool enable );
+    bool                ButtonClickDidStateChange() { return true ;}
+    void                SetMinimum( wxInt32 v );
+    void                SetMaximum( wxInt32 v );
+    wxInt32             GetMinimum() const;
+    wxInt32             GetMaximum() const;
+    void                PulseGauge();
+    void                SetScrollThumb( wxInt32 value, wxInt32 thumbSize );
+
+    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);
+
+    // 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        controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent);
+    virtual void         controlTextDidChange();
 protected:
     WXWidget m_osxView;
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetIPhoneImpl)
@@ -69,59 +123,93 @@ 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__
+
+    WXDLLIMPEXP_CORE CGRect wxToNSRect( UIView* parent, const wxRect& r );
+    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 ,
+        bool adjustForOrigin = true );
+
+    @interface wxUIButton : UIButton
+    {
+    }
+
+    @end
+
+    @interface wxUIView : UIView
+    {
+    }
+
+    @end // wxUIView
+
+
+    void WXDLLIMPEXP_CORE wxOSXIPhoneClassAddWXMethods(Class c);
+
+#endif
 
 #endif // wxUSE_GUI