1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/osx/iphone/private.h
3 // Purpose: Private declarations: as this header is only included by
4 // wxWidgets itself, it may contain identifiers which don't start
6 // Author: Stefan Csomor
9 // RCS-ID: $Id: private.h 53819 2008-05-29 14:11:45Z SC $
10 // Copyright: (c) Stefan Csomor
11 // Licence: wxWindows licence
12 /////////////////////////////////////////////////////////////////////////////
14 #ifndef _WX_PRIVATE_IPHONE_H_
15 #define _WX_PRIVATE_IPHONE_H_
18 #import <UIKit/UIKit.h>
23 OSStatus WXDLLIMPEXP_CORE
wxMacDrawCGImage(
24 CGContextRef inContext
,
25 const CGRect
* inBounds
,
28 WX_UIImage WXDLLIMPEXP_CORE
wxOSXGetUIImageFromCGImage( CGImageRef image
);
30 class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl
: public wxWidgetImpl
33 wxWidgetIPhoneImpl( wxWindowMac
* peer
, WXWidget w
, bool isRootControl
= false ) ;
34 wxWidgetIPhoneImpl() ;
35 ~wxWidgetIPhoneImpl();
39 virtual bool IsVisible() const ;
40 virtual void SetVisibility( bool visible
);
46 virtual void ScrollRect( const wxRect
*rect
, int dx
, int dy
);
48 virtual WXWidget
GetWXWidget() const { return m_osxView
; }
50 virtual void SetBackgroundColour( const wxColour
& col
) ;
51 virtual bool SetBackgroundStyle(wxBackgroundStyle style
) ;
53 virtual void GetContentArea( int &left
, int &top
, int &width
, int &height
) const;
54 virtual void Move(int x
, int y
, int width
, int height
);
55 virtual void GetPosition( int &x
, int &y
) const;
56 virtual void GetSize( int &width
, int &height
) const;
57 virtual void SetControlSize( wxWindowVariant variant
);
59 virtual void SetNeedsDisplay( const wxRect
* where
= NULL
);
60 virtual bool GetNeedsDisplay() const;
62 virtual bool CanFocus() const;
63 // return true if successful
64 virtual bool SetFocus();
65 virtual bool HasFocus() const;
67 void RemoveFromParent();
68 void Embed( wxWidgetImpl
*parent
);
70 void SetDefaultButton( bool isDefault
);
72 virtual void SetLabel(const wxString
& title
, wxFontEncoding encoding
);
74 void SetCursor( const wxCursor
& cursor
);
78 wxInt32
GetValue() const;
79 void SetValue( wxInt32 v
);
81 virtual wxBitmap
GetBitmap() const;
82 virtual void SetBitmap( const wxBitmap
& bitmap
);
83 virtual void SetBitmapPosition( wxDirection dir
);
85 void SetupTabs( const wxNotebook
¬ebook
);
86 void GetBestRect( wxRect
*r
) const;
87 bool IsEnabled() const;
88 void Enable( bool enable
);
89 bool ButtonClickDidStateChange() { return true ;}
90 void SetMinimum( wxInt32 v
);
91 void SetMaximum( wxInt32 v
);
92 wxInt32
GetMinimum() const;
93 wxInt32
GetMaximum() const;
95 void SetScrollThumb( wxInt32 value
, wxInt32 thumbSize
);
97 void SetFont( const wxFont
& font
, const wxColour
& foreground
, long windowStyle
, bool ignoreBlack
= true );
99 void InstallEventHandler( WXWidget control
= NULL
);
101 virtual void DoNotifyFocusEvent(bool receivedFocus
, wxWidgetImpl
* otherWindow
);
103 // thunk connected calls
105 virtual void drawRect(CGRect
* rect
, WXWidget slf
, void* _cmd
);
106 virtual void touchEvent(WX_NSSet touches
, WX_UIEvent event
, WXWidget slf
, void* _cmd
);
107 virtual bool becomeFirstResponder(WXWidget slf
, void* _cmd
);
108 virtual bool resignFirstResponder(WXWidget slf
, void* _cmd
);
112 virtual void controlAction(void* sender
, wxUint32 controlEvent
, WX_UIEvent rawEvent
);
113 virtual void controlTextDidChange();
116 DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetIPhoneImpl
)
119 class wxNonOwnedWindowIPhoneImpl
: public wxNonOwnedWindowImpl
122 wxNonOwnedWindowIPhoneImpl( wxNonOwnedWindow
* nonownedwnd
) ;
123 wxNonOwnedWindowIPhoneImpl();
125 virtual ~wxNonOwnedWindowIPhoneImpl();
127 virtual void WillBeDestroyed() ;
128 void Create( wxWindow
* parent
, const wxPoint
& pos
, const wxSize
& size
,
129 long style
, long extraStyle
, const wxString
& name
) ;
130 void Create( wxWindow
* parent
, WXWindow nativeWindow
);
132 WXWindow
GetWXWindow() const;
135 bool Show(bool show
);
136 bool ShowWithEffect(bool show
, wxShowEffect effect
, unsigned timeout
);
139 bool SetTransparent(wxByte alpha
);
140 bool SetBackgroundColour(const wxColour
& col
);
141 void SetExtraStyle( long exStyle
);
142 bool SetBackgroundStyle(wxBackgroundStyle style
);
143 bool CanSetTransparent();
145 void MoveWindow(int x
, int y
, int width
, int height
);
146 void GetPosition( int &x
, int &y
) const;
147 void GetSize( int &width
, int &height
) const;
149 void GetContentArea( int &left
, int &top
, int &width
, int &height
) const;
150 bool SetShape(const wxRegion
& region
);
152 virtual void SetTitle( const wxString
& title
, wxFontEncoding encoding
) ;
154 virtual bool IsMaximized() const;
156 virtual bool IsIconized() const;
158 virtual void Iconize( bool iconize
);
160 virtual void Maximize(bool maximize
);
162 virtual bool IsFullScreen() const;
164 virtual bool ShowFullScreen(bool show
, long style
);
166 virtual void RequestUserAttention(int flags
);
168 virtual void ScreenToWindow( int *x
, int *y
);
170 virtual void WindowToScreen( int *x
, int *y
);
172 // FIXME: Does iPhone have a concept of inactive windows?
173 virtual bool IsActive() { return true; }
175 wxNonOwnedWindow
* GetWXPeer() { return m_wxPeer
; }
177 virtual bool InitialShowEventSent() { return m_initialShowSent
; }
179 WX_UIWindow m_macWindow
;
180 void * m_macFullScreenData
;
181 bool m_initialShowSent
;
182 DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowIPhoneImpl
)
187 WXDLLIMPEXP_CORE CGRect
wxToNSRect( UIView
* parent
, const wxRect
& r
);
188 WXDLLIMPEXP_CORE wxRect
wxFromNSRect( UIView
* parent
, const CGRect
& rect
);
189 WXDLLIMPEXP_CORE CGPoint
wxToNSPoint( UIView
* parent
, const wxPoint
& p
);
190 WXDLLIMPEXP_CORE wxPoint
wxFromNSPoint( UIView
* parent
, const CGPoint
& p
);
192 CGRect WXDLLIMPEXP_CORE
wxOSXGetFrameForControl( wxWindowMac
* window
, const wxPoint
& pos
, const wxSize
&size
,
193 bool adjustForOrigin
= true );
195 @interface wxUIButton
: UIButton
201 @interface wxUIView
: UIView
208 void WXDLLIMPEXP_CORE
wxOSXIPhoneClassAddWXMethods(Class c
);
215 // _WX_PRIVATE_IPHONE_H_