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_
17 #include "wx/osx/core/private.h"
20 #import <UIKit/UIKit.h>
25 OSStatus WXDLLIMPEXP_CORE
wxMacDrawCGImage(
26 CGContextRef inContext
,
27 const CGRect
* inBounds
,
30 WX_UIImage WXDLLIMPEXP_CORE
wxOSXCreateUIImageFromCGImage( CGImageRef image
);
32 class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl
: public wxWidgetImpl
35 wxWidgetIPhoneImpl( wxWindowMac
* peer
, WXWidget w
, bool isRootControl
= false ) ;
36 wxWidgetIPhoneImpl() ;
37 ~wxWidgetIPhoneImpl();
41 virtual bool IsVisible() const ;
42 virtual void SetVisibility( bool visible
);
48 virtual void ScrollRect( const wxRect
*rect
, int dx
, int dy
);
50 virtual WXWidget
GetWXWidget() const { return m_osxView
; }
52 virtual void SetBackgroundColour( const wxColour
& col
) ;
54 virtual void GetContentArea( int &left
, int &top
, int &width
, int &height
) const;
55 virtual void Move(int x
, int y
, int width
, int height
);
56 virtual void GetPosition( int &x
, int &y
) const;
57 virtual void GetSize( int &width
, int &height
) const;
58 virtual void SetControlSize( wxWindowVariant variant
);
60 virtual void SetNeedsDisplay( const wxRect
* where
= NULL
);
61 virtual bool GetNeedsDisplay() const;
63 virtual bool CanFocus() const;
64 // return true if successful
65 virtual bool SetFocus();
66 virtual bool HasFocus() const;
68 void RemoveFromParent();
69 void Embed( wxWidgetImpl
*parent
);
71 void SetDefaultButton( bool isDefault
);
73 virtual void SetLabel(const wxString
& title
, wxFontEncoding encoding
);
75 void SetCursor( const wxCursor
& cursor
);
79 wxInt32
GetValue() const;
80 void SetValue( wxInt32 v
);
82 virtual wxBitmap
GetBitmap() const;
83 virtual void SetBitmap( const wxBitmap
& bitmap
);
84 virtual void SetBitmapPosition( wxDirection dir
);
86 void SetupTabs( const wxNotebook
¬ebook
);
87 void GetBestRect( wxRect
*r
) const;
88 bool IsEnabled() const;
89 void Enable( bool enable
);
90 bool ButtonClickDidStateChange() { return true ;}
91 void SetMinimum( wxInt32 v
);
92 void SetMaximum( wxInt32 v
);
93 wxInt32
GetMinimum() const;
94 wxInt32
GetMaximum() const;
96 void SetScrollThumb( wxInt32 value
, wxInt32 thumbSize
);
98 void SetFont( const wxFont
& font
, const wxColour
& foreground
, long windowStyle
, bool ignoreBlack
= true );
100 void InstallEventHandler( WXWidget control
= NULL
);
102 virtual void DoNotifyFocusEvent(bool receivedFocus
, wxWidgetImpl
* otherWindow
);
104 // thunk connected calls
106 virtual void drawRect(CGRect
* rect
, WXWidget slf
, void* _cmd
);
107 virtual void touchEvent(WX_NSSet touches
, WX_UIEvent event
, WXWidget slf
, void* _cmd
);
108 virtual bool becomeFirstResponder(WXWidget slf
, void* _cmd
);
109 virtual bool resignFirstResponder(WXWidget slf
, void* _cmd
);
113 virtual void touchUpInsideAction(void* sender
, WX_UIEvent evt
, WXWidget slf
, void* _cmd
);
117 DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetIPhoneImpl
)
120 class wxNonOwnedWindowIPhoneImpl
: public wxNonOwnedWindowImpl
123 wxNonOwnedWindowIPhoneImpl( wxNonOwnedWindow
* nonownedwnd
) ;
124 wxNonOwnedWindowIPhoneImpl();
126 virtual ~wxNonOwnedWindowIPhoneImpl();
128 virtual void Destroy() ;
129 void Create( wxWindow
* parent
, const wxPoint
& pos
, const wxSize
& size
,
130 long style
, long extraStyle
, const wxString
& name
) ;
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 wxNonOwnedWindow
* GetWXPeer() { return m_wxPeer
; }
174 WX_UIWindow m_macWindow
;
175 void * m_macFullScreenData
;
176 DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowIPhoneImpl
)
181 WXDLLIMPEXP_CORE CGRect
wxToNSRect( UIView
* parent
, const wxRect
& r
);
182 WXDLLIMPEXP_CORE wxRect
wxFromNSRect( UIView
* parent
, const CGRect
& rect
);
183 WXDLLIMPEXP_CORE CGPoint
wxToNSPoint( UIView
* parent
, const wxPoint
& p
);
184 WXDLLIMPEXP_CORE wxPoint
wxFromNSPoint( UIView
* parent
, const CGPoint
& p
);
186 CGRect WXDLLIMPEXP_CORE
wxOSXGetFrameForControl( wxWindowMac
* window
, const wxPoint
& pos
, const wxSize
&size
,
187 bool adjustForOrigin
= true );
189 @interface wxUIButton
: UIButton
195 void WXDLLIMPEXP_CORE
wxOSXIPhoneClassAddWXMethods(Class c
);
202 // _WX_PRIVATE_IPHONE_H_