The rounded corners look really dumb at this size.
[wxWidgets.git] / src / osx / iphone / slider.mm
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        src/osx/iphone/slider.mm
3 // Purpose:     wxSlider
4 // Author:      Stefan Csomor
5 // Modified by:
6 // Created:     1998-01-01
7 // Copyright:   (c) Stefan Csomor
8 // Licence:       wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 #include "wx/wxprec.h"
12
13 #if wxUSE_SLIDER
14
15 #include "wx/slider.h"
16 #include "wx/osx/private.h"
17
18 @interface wxUISlider : UISlider
19 {
20 }
21 @end
22
23 @implementation wxUISlider
24
25 + (void)initialize
26 {
27     static BOOL initialized = NO;
28     if (!initialized)
29     {
30         initialized = YES;
31         wxOSXIPhoneClassAddWXMethods(self);
32     }
33 }
34
35 @end
36
37 class wxSliderIPhoneImpl : public wxWidgetIPhoneImpl
38 {
39 public :
40     wxSliderIPhoneImpl(wxWindowMac* peer , UISlider* w) :
41         wxWidgetIPhoneImpl(peer, w)
42     {
43         m_control=w;
44     }
45
46     ~wxSliderIPhoneImpl()
47     {
48     }
49     
50     void controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent)
51     {
52         if ( controlEvent == UIControlEventValueChanged )
53             GetWXPeer()->TriggerScrollEvent(wxEVT_SCROLL_THUMBTRACK);
54         else 
55             wxWidgetIPhoneImpl::controlAction(sender,controlEvent,rawEvent);
56     }
57
58     void SetMaximum(wxInt32 m)
59     {
60         [m_control setMaximumValue:m];
61     }
62     
63     void SetMinimum(wxInt32 m)
64     {
65         [m_control setMinimumValue:m];
66     }
67     
68     void SetValue(wxInt32 n)
69     {
70         [m_control setValue:n];
71     }
72
73     wxInt32  GetValue() const
74     {
75         return [m_control value];
76     }
77     
78 private:
79     UISlider* m_control;
80 };
81
82 wxWidgetImplType* wxWidgetImpl::CreateSlider( wxWindowMac* wxpeer,
83                                     wxWindowMac* WXUNUSED(parent),
84                                     wxWindowID WXUNUSED(id),
85                                     wxInt32 value,
86                                     wxInt32 minimum,
87                                     wxInt32 maximum,
88                                     const wxPoint& pos,
89                                     const wxSize& size,
90                                     long style,
91                                     long WXUNUSED(extraStyle))
92 {
93     CGRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
94     UISlider* v = [[UISlider alloc] initWithFrame:r];
95
96     [v setMinimumValue: minimum];
97     [v setMaximumValue: maximum];
98     [v setValue: (double) value];
99
100     wxWidgetIPhoneImpl* c = new wxSliderIPhoneImpl( wxpeer, v );
101     return c;
102 }
103
104 #endif // wxUSE_SLIDER