]> git.saurik.com Git - wxWidgets.git/blob - src/osx/datectrl_osx.cpp
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / src / osx / datectrl_osx.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: src/osx/datectrl_osx.cpp
3 // Purpose: Implementation of wxDatePickerCtrl for OS X.
4 // Author: Vadim Zeitlin
5 // Created: 2011-12-18
6 // RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
7 // Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 // ============================================================================
12 // declarations
13 // ============================================================================
14
15 // ----------------------------------------------------------------------------
16 // headers
17 // ----------------------------------------------------------------------------
18
19 // for compilers that support precompilation, includes "wx.h".
20 #include "wx/wxprec.h"
21
22 #ifdef __BORLANDC__
23 #pragma hdrstop
24 #endif
25
26 #if wxUSE_DATEPICKCTRL && wxOSX_USE_COCOA
27
28 #include "wx/datectrl.h"
29 #include "wx/dateevt.h"
30
31 #include "wx/osx/core/private/datetimectrl.h"
32
33 // ============================================================================
34 // wxDatePickerCtrl implementation
35 // ============================================================================
36
37 wxIMPLEMENT_DYNAMIC_CLASS(wxDatePickerCtrl, wxControl);
38
39 bool
40 wxDatePickerCtrl::Create(wxWindow *parent,
41 wxWindowID id,
42 const wxDateTime& dt,
43 const wxPoint& pos,
44 const wxSize& size,
45 long style,
46 const wxValidator& validator,
47 const wxString& name)
48 {
49 DontCreatePeer();
50
51 if ( !wxDatePickerCtrlBase::Create(parent, id, pos, size,
52 style, validator, name) )
53 return false;
54
55 wxOSXWidgetImpl* const peer = wxDateTimeWidgetImpl::CreateDateTimePicker
56 (
57 this,
58 dt,
59 pos,
60 size,
61 style,
62 wxDateTimeWidget_YearMonthDay
63 );
64 if ( !peer )
65 return false;
66
67 SetPeer(peer);
68
69 MacPostControlCreate(pos, size);
70
71 return true;
72 }
73
74 void wxDatePickerCtrl::SetRange(const wxDateTime& dt1, const wxDateTime& dt2)
75 {
76 GetDateTimePeer()->SetDateRange(dt1, dt2);
77 }
78
79 bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
80 {
81 return GetDateTimePeer()->GetDateRange(dt1, dt2);
82 }
83
84 void wxDatePickerCtrl::OSXGenerateEvent(const wxDateTime& dt)
85 {
86 wxDateEvent event(this, dt, wxEVT_DATE_CHANGED);
87 HandleWindowEvent(event);
88 }
89
90 #endif // wxUSE_DATEPICKCTRL && wxOSX_USE_COCOA