Provide native implementation of wx{Date,Time}PickerCtrl for wxOSX/Cocoa.

Use NSDatePicker to implement both of these controls. Almost all of
wxDatePickerCtrl styles are not supported in the native version but the basic
functionality does work and looks much better than the generic version (which
is still available as wxDatePickerCtrlGeneric if needed) under Mac.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-12-20 21:27:14 +00:00
parent 36d07f78e4
commit fceac6bbfe
17 changed files with 732 additions and 23 deletions

View File

@@ -3691,11 +3691,14 @@ COND_TOOLKIT_OSX_CARBON_ADVANCED_PLATFORM_HDR = \
COND_TOOLKIT_OSX_COCOA_ADVANCED_PLATFORM_HDR = \
wx/generic/animate.h \
wx/osx/dataview.h \
wx/osx/datectrl.h \
wx/osx/datetimectrl.h \
wx/osx/dvrenderer.h \
wx/osx/dvrenderers.h \
wx/osx/joystick.h \
wx/osx/sound.h \
wx/osx/taskbarosx.h \
wx/osx/timectrl.h \
wx/osx/core/joystick.h \
wx/osx/cocoa/dataview.h
@COND_TOOLKIT_OSX_COCOA@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_OSX_COCOA_ADVANCED_PLATFORM_HDR)
@@ -6247,7 +6250,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = \
monodll_commandlinkbutton.o \
monodll_datecontrols.o \
monodll_datectrl.o \
monodll_datetimectrl.o \
monodll_msw_datetimectrl.o \
monodll_msw_hyperlink.o \
monodll_timectrl.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
@@ -6258,7 +6261,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = \
monodll_commandlinkbutton.o \
monodll_datecontrols.o \
monodll_datectrl.o \
monodll_datetimectrl.o \
monodll_msw_datetimectrl.o \
monodll_msw_hyperlink.o \
monodll_timectrl.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
@@ -8205,7 +8208,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = \
monolib_commandlinkbutton.o \
monolib_datecontrols.o \
monolib_datectrl.o \
monolib_datetimectrl.o \
monolib_msw_datetimectrl.o \
monolib_msw_hyperlink.o \
monolib_timectrl.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
@@ -8216,7 +8219,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = \
monolib_commandlinkbutton.o \
monolib_datecontrols.o \
monolib_datectrl.o \
monolib_datetimectrl.o \
monolib_msw_datetimectrl.o \
monolib_msw_hyperlink.o \
monolib_timectrl.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
@@ -12005,7 +12008,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 = \
advdll_commandlinkbutton.o \
advdll_datecontrols.o \
advdll_datectrl.o \
advdll_datetimectrl.o \
advdll_msw_datetimectrl.o \
advdll_msw_hyperlink.o \
advdll_timectrl.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2)
@@ -12016,7 +12019,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 = \
advdll_commandlinkbutton.o \
advdll_datecontrols.o \
advdll_datectrl.o \
advdll_datetimectrl.o \
advdll_msw_datetimectrl.o \
advdll_msw_hyperlink.o \
advdll_timectrl.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2)
@@ -12123,7 +12126,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 = \
advlib_commandlinkbutton.o \
advlib_datecontrols.o \
advlib_datectrl.o \
advlib_datetimectrl.o \
advlib_msw_datetimectrl.o \
advlib_msw_hyperlink.o \
advlib_timectrl.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3)
@@ -12134,7 +12137,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 = \
advlib_commandlinkbutton.o \
advlib_datecontrols.o \
advlib_datectrl.o \
advlib_datetimectrl.o \
advlib_msw_datetimectrl.o \
advlib_msw_hyperlink.o \
advlib_timectrl.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3)
@@ -13407,12 +13410,16 @@ COND_TOOLKIT_OSX_CARBON___ADVANCED_PLATFORM_SRC_OBJECTS = \
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_taskbarcmn.o \
monodll_animateg.o \
monodll_datetimectrl_osx.o \
monodll_datectrl_osx.o \
monodll_sound_osx.o \
monodll_timectrl_osx.o \
monodll_carbon_sound.o \
monodll_core_sound.o \
monodll_cocoa_aboutdlg.o \
monodll_dataview_osx.o \
monodll_cocoa_dataview.o \
monodll_cocoa_datetimectrl.o \
monodll_osx_cocoa_taskbar.o \
monodll_hidjoystick.o
@COND_TOOLKIT_OSX_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS)
@@ -13595,12 +13602,16 @@ COND_TOOLKIT_OSX_CARBON___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_taskbarcmn.o \
monolib_animateg.o \
monolib_datetimectrl_osx.o \
monolib_datectrl_osx.o \
monolib_sound_osx.o \
monolib_timectrl_osx.o \
monolib_carbon_sound.o \
monolib_core_sound.o \
monolib_cocoa_aboutdlg.o \
monolib_dataview_osx.o \
monolib_cocoa_dataview.o \
monolib_cocoa_datetimectrl.o \
monolib_osx_cocoa_taskbar.o \
monolib_hidjoystick.o
@COND_TOOLKIT_OSX_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_0)
@@ -13881,12 +13892,16 @@ COND_TOOLKIT_OSX_CARBON___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_taskbarcmn.o \
advdll_animateg.o \
advdll_datetimectrl_osx.o \
advdll_datectrl_osx.o \
advdll_sound_osx.o \
advdll_timectrl_osx.o \
advdll_carbon_sound.o \
advdll_core_sound.o \
advdll_cocoa_aboutdlg.o \
advdll_dataview_osx.o \
advdll_cocoa_dataview.o \
advdll_cocoa_datetimectrl.o \
advdll_osx_cocoa_taskbar.o \
advdll_hidjoystick.o
@COND_TOOLKIT_OSX_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_8)
@@ -13971,12 +13986,16 @@ COND_TOOLKIT_OSX_CARBON___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_taskbarcmn.o \
advlib_animateg.o \
advlib_datetimectrl_osx.o \
advlib_datectrl_osx.o \
advlib_sound_osx.o \
advlib_timectrl_osx.o \
advlib_carbon_sound.o \
advlib_core_sound.o \
advlib_cocoa_aboutdlg.o \
advlib_dataview_osx.o \
advlib_cocoa_dataview.o \
advlib_cocoa_datetimectrl.o \
advlib_osx_cocoa_taskbar.o \
advlib_hidjoystick.o
@COND_TOOLKIT_OSX_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_9)
@@ -20906,6 +20925,15 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@monodll_hidjoystick.o: $(srcdir)/src/osx/core/hidjoystick.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/hidjoystick.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_datetimectrl_osx.o: $(srcdir)/src/osx/datetimectrl_osx.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/datetimectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_datectrl_osx.o: $(srcdir)/src/osx/datectrl_osx.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/datectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_timectrl_osx.o: $(srcdir)/src/osx/timectrl_osx.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/timectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_core_sound.o: $(srcdir)/src/osx/core/sound.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/sound.cpp
@@ -20918,6 +20946,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_cocoa_dataview.o: $(srcdir)/src/osx/cocoa/dataview.mm $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dataview.mm
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_cocoa_datetimectrl.o: $(srcdir)/src/osx/cocoa/datetimectrl.mm $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/datetimectrl.mm
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monodll_osx_cocoa_taskbar.o: $(srcdir)/src/osx/cocoa/taskbar.mm $(MONODLL_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/taskbar.mm
@@ -21020,10 +21051,10 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_msw_hyperlink.o: $(srcdir)/src/msw/hyperlink.cpp $(MONODLL_ODEP)
@@ -26294,6 +26325,15 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@monolib_hidjoystick.o: $(srcdir)/src/osx/core/hidjoystick.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/hidjoystick.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_datetimectrl_osx.o: $(srcdir)/src/osx/datetimectrl_osx.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/datetimectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_datectrl_osx.o: $(srcdir)/src/osx/datectrl_osx.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/datectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_timectrl_osx.o: $(srcdir)/src/osx/timectrl_osx.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/timectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_core_sound.o: $(srcdir)/src/osx/core/sound.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/sound.cpp
@@ -26306,6 +26346,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_cocoa_dataview.o: $(srcdir)/src/osx/cocoa/dataview.mm $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dataview.mm
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_cocoa_datetimectrl.o: $(srcdir)/src/osx/cocoa/datetimectrl.mm $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/datetimectrl.mm
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@monolib_osx_cocoa_taskbar.o: $(srcdir)/src/osx/cocoa/taskbar.mm $(MONOLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/taskbar.mm
@@ -26408,10 +26451,10 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_msw_hyperlink.o: $(srcdir)/src/msw/hyperlink.cpp $(MONOLIB_ODEP)
@@ -35882,6 +35925,15 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_COCOA@advdll_hidjoystick.o: $(srcdir)/src/osx/core/hidjoystick.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/osx/core/hidjoystick.cpp
@COND_TOOLKIT_OSX_COCOA@advdll_datetimectrl_osx.o: $(srcdir)/src/osx/datetimectrl_osx.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/osx/datetimectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advdll_datectrl_osx.o: $(srcdir)/src/osx/datectrl_osx.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/osx/datectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advdll_timectrl_osx.o: $(srcdir)/src/osx/timectrl_osx.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/osx/timectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advdll_core_sound.o: $(srcdir)/src/osx/core/sound.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/osx/core/sound.cpp
@@ -35894,6 +35946,9 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@advdll_cocoa_dataview.o: $(srcdir)/src/osx/cocoa/dataview.mm $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dataview.mm
@COND_TOOLKIT_OSX_COCOA@advdll_cocoa_datetimectrl.o: $(srcdir)/src/osx/cocoa/datetimectrl.mm $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/datetimectrl.mm
@COND_TOOLKIT_OSX_COCOA@advdll_osx_cocoa_taskbar.o: $(srcdir)/src/osx/cocoa/taskbar.mm $(ADVDLL_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/taskbar.mm
@@ -35996,10 +36051,10 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@advdll_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp
@COND_TOOLKIT_MSW_WXUNIV_0@advdll_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_MSW_WXUNIV_0@advdll_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_WINCE_WXUNIV_0@advdll_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@advdll_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_MSW_WXUNIV_0@advdll_msw_hyperlink.o: $(srcdir)/src/msw/hyperlink.cpp $(ADVDLL_ODEP)
@@ -36269,6 +36324,15 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_COCOA@advlib_hidjoystick.o: $(srcdir)/src/osx/core/hidjoystick.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/osx/core/hidjoystick.cpp
@COND_TOOLKIT_OSX_COCOA@advlib_datetimectrl_osx.o: $(srcdir)/src/osx/datetimectrl_osx.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/osx/datetimectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advlib_datectrl_osx.o: $(srcdir)/src/osx/datectrl_osx.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/osx/datectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advlib_timectrl_osx.o: $(srcdir)/src/osx/timectrl_osx.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/osx/timectrl_osx.cpp
@COND_TOOLKIT_OSX_COCOA@advlib_core_sound.o: $(srcdir)/src/osx/core/sound.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/osx/core/sound.cpp
@@ -36281,6 +36345,9 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@advlib_cocoa_dataview.o: $(srcdir)/src/osx/cocoa/dataview.mm $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/dataview.mm
@COND_TOOLKIT_OSX_COCOA@advlib_cocoa_datetimectrl.o: $(srcdir)/src/osx/cocoa/datetimectrl.mm $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/datetimectrl.mm
@COND_TOOLKIT_OSX_COCOA@advlib_osx_cocoa_taskbar.o: $(srcdir)/src/osx/cocoa/taskbar.mm $(ADVLIB_ODEP)
@COND_TOOLKIT_OSX_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/taskbar.mm
@@ -36383,10 +36450,10 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@advlib_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp
@COND_TOOLKIT_MSW_WXUNIV_0@advlib_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_MSW_WXUNIV_0@advlib_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_WINCE_WXUNIV_0@advlib_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@advlib_msw_datetimectrl.o: $(srcdir)/src/msw/datetimectrl.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_WINCE_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/datetimectrl.cpp
@COND_TOOLKIT_MSW_WXUNIV_0@advlib_msw_hyperlink.o: $(srcdir)/src/msw/hyperlink.cpp $(ADVLIB_ODEP)

View File

@@ -3118,12 +3118,16 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="ADVANCED_OSX_COCOA_SRC" hints="files">
src/common/taskbarcmn.cpp
src/generic/animateg.cpp
src/osx/datetimectrl_osx.cpp
src/osx/datectrl_osx.cpp
src/osx/sound_osx.cpp
src/osx/timectrl_osx.cpp
src/osx/carbon/sound.cpp
src/osx/core/sound.cpp
src/osx/cocoa/aboutdlg.mm
src/osx/dataview_osx.cpp
src/osx/cocoa/dataview.mm
src/osx/cocoa/datetimectrl.mm
src/osx/cocoa/taskbar.mm
src/osx/core/hidjoystick.cpp
</set>
@@ -3131,11 +3135,14 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="ADVANCED_OSX_COCOA_HDR" hints="files">
wx/generic/animate.h
wx/osx/dataview.h
wx/osx/datectrl.h
wx/osx/datetimectrl.h
wx/osx/dvrenderer.h
wx/osx/dvrenderers.h
wx/osx/joystick.h
wx/osx/sound.h
wx/osx/taskbarosx.h
wx/osx/timectrl.h
wx/osx/core/joystick.h
wx/osx/cocoa/dataview.h
</set>

View File

@@ -460,6 +460,10 @@ MSW:
- Fixed regression with initial focus in the dialogs in 2.9.3.
- Added support for wxEXEC_MAKE_GROUP_LEADER to wxExecute (tteras).
OSX:
- Provide native implementations of wxDatePickerCtrl and wxTimePickerCtrl.
2.9.3: (released 2011-12-14)
------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -83,6 +83,10 @@ public:
#elif defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
#include "wx/msw/datectrl.h"
#define wxHAS_NATIVE_DATEPICKCTRL
#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__)
#include "wx/osx/datectrl.h"
#define wxHAS_NATIVE_DATEPICKCTRL
#else
#include "wx/generic/datectrl.h"

View File

@@ -35,10 +35,10 @@ public:
virtual wxDateTime GetValue() const = 0;
};
// Only MSW currently has any code to share between wxDatePickerCtrl and
// wxTimePickerCtrl, under the other platforms this class is trivial.
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
#include "wx/msw/datetimectrl.h"
#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__)
#include "wx/osx/datetimectrl.h"
#else
typedef wxDateTimePickerCtrlBase wxDateTimePickerCtrl;
#endif

View File

@@ -0,0 +1,71 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/core/private/datetime.h
// Purpose:
// Author: Vadim Zeitlin
// Created: 2011-12-19
// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_
#define _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_
#if wxUSE_DATEPICKCTRL
#include "wx/osx/private.h"
#include "wx/datetime.h"
enum wxDateTimeWidgetKind
{
wxDateTimeWidget_YearMonthDay,
wxDateTimeWidget_HourMinuteSecond
};
// ----------------------------------------------------------------------------
// wxDateTimeWidgetImpl: peer class for wxDateTimePickerCtrl.
// ----------------------------------------------------------------------------
class wxDateTimeWidgetImpl
#if wxOSX_USE_COCOA
: public wxWidgetCocoaImpl
#elif wxOSX_USE_CARBON
: public wxMacControl
#else
#error "Unsupported platform"
#endif
{
public:
static wxDateTimeWidgetImpl*
CreateDateTimePicker(wxDateTimePickerCtrl* wxpeer,
const wxDateTime& dt,
const wxPoint& pos,
const wxSize& size,
long style,
wxDateTimeWidgetKind kind);
virtual void SetDateTime(const wxDateTime& dt) = 0;
virtual wxDateTime GetDateTime() const = 0;
virtual void SetDateRange(const wxDateTime& dt1, const wxDateTime& dt2) = 0;
virtual bool GetDateRange(wxDateTime* dt1, wxDateTime* dt2) = 0;
virtual ~wxDateTimeWidgetImpl() { }
protected:
#if wxOSX_USE_COCOA
wxDateTimeWidgetImpl(wxDateTimePickerCtrl* wxpeer, WXWidget view)
: wxWidgetCocoaImpl(wxpeer, view)
{
}
#elif wxOSX_USE_CARBON
// There is no Carbon implementation of this control yet so we don't need
// any ctor for it yet but it should be added here if Carbon version is
// written later.
#endif
};
#endif // wxUSE_DATEPICKCTRL
#endif // _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_

55
include/wx/osx/datectrl.h Normal file
View File

@@ -0,0 +1,55 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/datectrl.h
// Purpose: Declaration of wxOSX-specific wxDatePickerCtrl class.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_OSX_DATECTRL_H_
#define _WX_OSX_DATECTRL_H_
// ----------------------------------------------------------------------------
// wxDatePickerCtrl
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase
{
public:
// Constructors.
wxDatePickerCtrl() { }
wxDatePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDatePickerCtrlNameStr)
{
Create(parent, id, dt, pos, size, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDatePickerCtrlNameStr);
// Implement the base class pure virtuals.
virtual void SetRange(const wxDateTime& dt1, const wxDateTime& dt2);
virtual bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const;
virtual void OSXGenerateEvent(const wxDateTime& dt);
private:
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDatePickerCtrl);
};
#endif // _WX_OSX_DATECTRL_H_

View File

@@ -0,0 +1,34 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/datetimectrl.h
// Purpose: Declaration of wxOSX-specific wxDateTimePickerCtrl class.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_OSX_DATETIMECTRL_H_
#define _WX_OSX_DATETIMECTRL_H_
class wxDateTimeWidgetImpl;
// ----------------------------------------------------------------------------
// wxDateTimePickerCtrl
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_ADV wxDateTimePickerCtrl : public wxDateTimePickerCtrlBase
{
public:
// Implement the base class pure virtuals.
virtual void SetValue(const wxDateTime& dt);
virtual wxDateTime GetValue() const;
// Implementation only.
virtual void OSXGenerateEvent(const wxDateTime& dt) = 0;
protected:
wxDateTimeWidgetImpl* GetDateTimePeer() const;
};
#endif // _WX_OSX_DATETIMECTRL_H_

51
include/wx/osx/timectrl.h Normal file
View File

@@ -0,0 +1,51 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/timectrl.h
// Purpose: Declaration of wxOSX-specific wxTimePickerCtrl class.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_OSX_TIMECTRL_H_
#define _WX_OSX_TIMECTRL_H_
// ----------------------------------------------------------------------------
// wxTimePickerCtrl
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_ADV wxTimePickerCtrl : public wxTimePickerCtrlBase
{
public:
// Constructors.
wxTimePickerCtrl() { }
wxTimePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTP_DEFAULT,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxTimePickerCtrlNameStr)
{
Create(parent, id, dt, pos, size, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTP_DEFAULT,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxTimePickerCtrlNameStr);
virtual void OSXGenerateEvent(const wxDateTime& dt);
private:
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTimePickerCtrl);
};
#endif // _WX_OSX_TIMECTRL_H_

View File

@@ -58,6 +58,10 @@ public:
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
#include "wx/msw/timectrl.h"
#define wxHAS_NATIVE_TIMEPICKERCTRL
#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__)
#include "wx/osx/timectrl.h"
#define wxHAS_NATIVE_TIMEPICKERCTRL
#else
#include "wx/generic/timectrl.h"

View File

@@ -25,21 +25,29 @@
style is not supported by the generic version.
@style{wxDP_DROPDOWN}
Creates a control with a month calendar drop-down part from which
the user can select a date.
the user can select a date. This style is not supported in OSX/Cocoa
native version.
@style{wxDP_DEFAULT}
Creates a control with the style that is best supported for the
current platform (currently wxDP_SPIN under Windows and
wxDP_DROPDOWN elsewhere).
current platform (currently wxDP_SPIN under Windows and OSX/Cocoa
and wxDP_DROPDOWN elsewhere).
@style{wxDP_ALLOWNONE}
With this style, the control allows the user to not enter any valid
date at all. Without it - the default - the control always has some
valid date.
valid date. This style is not supported in OSX/Cocoa native version.
@style{wxDP_SHOWCENTURY}
Forces display of the century in the default date format. Without
this style the century could be displayed, or not, depending on the
default date representation in the system.
default date representation in the system. This style is not
supported in OSX/Cocoa native version currently.
@endStyleTable
As can be seen from the remarks above, most of the control style are only
supported in the native MSW implementation. In portable code it's
recommended to use @c wxDP_DEFAULT style only, possibly combined with @c
wxDP_SHOWCENTURY (this is also the style used by default if none is
specified).
@beginEventEmissionTable{wxDateEvent}
@event{EVT_DATE_CHANGED(id, func)}
This event fires when the user changes the current selection in the

View File

@@ -0,0 +1,179 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/cocoa/datetimectrl.mm
// Purpose: Implementation of wxDateTimePickerCtrl for Cocoa.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// Version: $Id$
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_DATEPICKCTRL
#include "wx/datetimectrl.h"
#include "wx/datectrl.h"
#include "wx/osx/core/private/datetimectrl.h"
#include "wx/osx/cocoa/private/date.h"
using namespace wxOSXImpl;
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// Cocoa wrappers
// ----------------------------------------------------------------------------
@interface wxNSDatePicker : NSDatePicker
{
}
@end
@implementation wxNSDatePicker
+ (void)initialize
{
static BOOL initialized = NO;
if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
}
@end
// ----------------------------------------------------------------------------
// Peer-specific subclass
// ----------------------------------------------------------------------------
namespace
{
class wxDateTimeWidgetCocoaImpl : public wxDateTimeWidgetImpl
{
public:
wxDateTimeWidgetCocoaImpl(wxDateTimePickerCtrl* peer, wxNSDatePicker* w)
: wxDateTimeWidgetImpl(peer, w)
{
}
virtual void SetDateTime(const wxDateTime& dt)
{
[View() setDateValue: NSDateFromWX(dt)];
}
virtual wxDateTime GetDateTime() const
{
return NSDateToWX([View() dateValue]);
}
virtual void SetDateRange(const wxDateTime& dt1, const wxDateTime& dt2)
{
// Note that passing nil is ok here so we don't need to test for the
// dates validity.
[View() setMinDate: NSDateFromWX(dt1)];
[View() setMaxDate: NSDateFromWX(dt2)];
}
virtual bool GetDateRange(wxDateTime* dt1, wxDateTime* dt2)
{
bool hasLimits = false;
if ( dt1 )
{
*dt1 = NSDateToWX([View() minDate]);
hasLimits = true;
}
if ( dt2 )
{
*dt2 = NSDateToWX([View() maxDate]);
hasLimits = true;
}
return hasLimits;
}
virtual void controlAction(WXWidget WXUNUSED(slf),
void* WXUNUSED(cmd),
void* WXUNUSED(sender))
{
wxWindow* const wxpeer = GetWXPeer();
if ( wxpeer )
{
static_cast<wxDateTimePickerCtrl*>(wxpeer)->
OSXGenerateEvent(GetDateTime());
}
}
private:
wxNSDatePicker* View() const
{
return static_cast<wxNSDatePicker *>(m_osxView);
}
};
} // anonymous namespace
// ----------------------------------------------------------------------------
// CreateDateTimePicker() implementation
// ----------------------------------------------------------------------------
/* static */
wxDateTimeWidgetImpl*
wxDateTimeWidgetImpl::CreateDateTimePicker(wxDateTimePickerCtrl* wxpeer,
const wxDateTime& dt,
const wxPoint& pos,
const wxSize& size,
long style,
wxDateTimeWidgetKind kind)
{
NSRect r = wxOSXGetFrameForControl(wxpeer, pos, size);
wxNSDatePicker* v = [[wxNSDatePicker alloc] initWithFrame:r];
NSDatePickerElementFlags elements = 0;
switch ( kind )
{
case wxDateTimeWidget_YearMonthDay:
elements = NSYearMonthDayDatePickerElementFlag;
break;
case wxDateTimeWidget_HourMinuteSecond:
elements = NSHourMinuteSecondDatePickerElementFlag;
break;
}
wxASSERT_MSG( elements, "Unknown date time widget kind" );
[v setDatePickerElements: elements];
[v setDatePickerStyle: NSTextFieldAndStepperDatePickerStyle];
if ( dt.IsValid() )
{
[v setDateValue: NSDateFromWX(dt)];
}
wxDateTimeWidgetImpl* c = new wxDateTimeWidgetCocoaImpl(wxpeer, v);
c->SetFlipped(false);
return c;
}
#endif // wxUSE_DATEPICKCTRL

90
src/osx/datectrl_osx.cpp Normal file
View File

@@ -0,0 +1,90 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/osx/datectrl_osx.cpp
// Purpose: Implementation of wxDatePickerCtrl for OS X.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_DATEPICKCTRL && wxOSX_USE_COCOA
#include "wx/datectrl.h"
#include "wx/dateevt.h"
#include "wx/osx/core/private/datetimectrl.h"
// ============================================================================
// wxDatePickerCtrl implementation
// ============================================================================
wxIMPLEMENT_DYNAMIC_CLASS(wxDatePickerCtrl, wxControl);
bool
wxDatePickerCtrl::Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
DontCreatePeer();
if ( !wxDatePickerCtrlBase::Create(parent, id, pos, size,
style, validator, name) )
return false;
wxOSXWidgetImpl* const peer = wxDateTimeWidgetImpl::CreateDateTimePicker
(
this,
dt,
pos,
size,
style,
wxDateTimeWidget_YearMonthDay
);
if ( !peer )
return false;
SetPeer(peer);
MacPostControlCreate(pos, size);
return true;
}
void wxDatePickerCtrl::SetRange(const wxDateTime& dt1, const wxDateTime& dt2)
{
GetDateTimePeer()->SetDateRange(dt1, dt2);
}
bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
{
return GetDateTimePeer()->GetDateRange(dt1, dt2);
}
void wxDatePickerCtrl::OSXGenerateEvent(const wxDateTime& dt)
{
wxDateEvent event(this, dt, wxEVT_DATE_CHANGED);
HandleWindowEvent(event);
}
#endif // wxUSE_DATEPICKCTRL && wxOSX_USE_COCOA

View File

@@ -0,0 +1,55 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/osx/datetimectrl_osx.cpp
// Purpose: Implementation of wxDateTimePickerCtrl for OS X.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL
#ifndef WX_PRECOMP
#endif // WX_PRECOMP
#include "wx/datetimectrl.h"
#include "wx/osx/core/private/datetimectrl.h"
// ============================================================================
// wxDateTimePickerCtrl implementation
// ============================================================================
wxDateTimeWidgetImpl* wxDateTimePickerCtrl::GetDateTimePeer() const
{
return static_cast<wxDateTimeWidgetImpl*>(GetPeer());
}
void wxDateTimePickerCtrl::SetValue(const wxDateTime& dt)
{
GetDateTimePeer()->SetDateTime(dt);
}
wxDateTime wxDateTimePickerCtrl::GetValue() const
{
return GetDateTimePeer()->GetDateTime();
}
#endif // wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL

80
src/osx/timectrl_osx.cpp Normal file
View File

@@ -0,0 +1,80 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/osx/timectrl_osx.cpp
// Purpose: Implementation of wxTimePickerCtrl for OS X.
// Author: Vadim Zeitlin
// Created: 2011-12-18
// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_TIMEPICKCTRL && wxOSX_USE_COCOA
#include "wx/timectrl.h"
#include "wx/dateevt.h"
#include "wx/osx/core/private/datetimectrl.h"
// ============================================================================
// wxTimePickerCtrl implementation
// ============================================================================
wxIMPLEMENT_DYNAMIC_CLASS(wxTimePickerCtrl, wxControl);
bool
wxTimePickerCtrl::Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& dt,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
DontCreatePeer();
if ( !wxTimePickerCtrlBase::Create(parent, id, pos, size,
style, validator, name) )
return false;
wxOSXWidgetImpl* const peer = wxDateTimeWidgetImpl::CreateDateTimePicker
(
this,
dt,
pos,
size,
style,
wxDateTimeWidget_HourMinuteSecond
);
if ( !peer )
return false;
SetPeer(peer);
MacPostControlCreate(pos, size);
return true;
}
void wxTimePickerCtrl::OSXGenerateEvent(const wxDateTime& dt)
{
wxDateEvent event(this, dt, wxEVT_TIME_CHANGED);
HandleWindowEvent(event);
}
#endif // wxUSE_TIMEPICKCTRL && wxOSX_USE_COCOA