############################################################################# ## Name: ext/calendar/XS/DatePickerCtrl.xsp ## Purpose: XS++ for Wx::DatePickerCtrl ## Author: Mattia Barbon ## Modified by: ## Created: 18/03/2005 ## RCS-ID: $Id: DatePickerCtrl.xsp 2395 2008-05-19 20:39:15Z mbarbon $ ## Copyright: (c) 2005-2008 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# #if WXPERL_W_VERSION_GE( 2, 5, 4 ) #include #include #include #include "cpp/datectrl.h" %typemap{wxCalendarCtrl*}{simple}; %typemap{wxDatePickerCtrl*}{simple}; %typemap{wxDateTime}{reference}; %module{Wx}; %file{cpp/datectrl.h}; %{ #define wxDP_STYLE wxDP_DEFAULT|wxDP_SHOWCENTURY double datepicker_constant( const char* name, int arg ) { // !package: Wx // !parser: sub { $_[0] =~ m<^\s*r\w*\(\s*(\w+)\s*\);\s*(?://(.*))?$> } // !tag: datepicker #define r( n ) \ if( strEQ( name, #n ) ) \ return n; WX_PL_CONSTANT_INIT(); switch( fl ) { case 'D': r( wxDP_DEFAULT ); r( wxDP_SPIN ); r( wxDP_DROPDOWN ); r( wxDP_SHOWCENTURY ); r( wxDP_ALLOWNONE ); break; } #undef r WX_PL_CONSTANT_CLEANUP(); } wxPlConstants datepicker_module( &datepicker_constant ); %} %file{-}; %name{Wx::DatePickerCtrl} class wxDatePickerCtrl { %name{newDefault} wxDatePickerCtrl() %code{% RETVAL = new wxDatePickerCtrl(); wxPli_create_evthandler( aTHX_ RETVAL, CLASS ); %}; %name{newFull} wxDatePickerCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxDateTime& date = wxDefaultDateTimePtr, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_STYLE, const wxValidator& validator = wxDefaultValidatorPtr, const wxString& name = wxDatePickerCtrlNameStr) %code{% RETVAL = new wxDatePickerCtrl( parent, id, *date, pos, size, style, *validator, name ); wxPli_create_evthandler( aTHX_ RETVAL, CLASS ); %}; bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxDateTime& dt = wxDefaultDateTimePtr, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_STYLE, const wxValidator& validator = wxDefaultValidatorPtr, const wxString& name = wxDatePickerCtrlNameStr); void SetValue(const wxDateTime& dt); wxDateTime GetValue() const; void SetRange(const wxDateTime& dt1, const wxDateTime& dt2); #if !defined(wxHAS_NATIVE_DATEPICKCTRL) ## bool SetFormat(const wxChar* format); // documented but not defined... #if !defined(wxHAS_NATIVE_CALENDARCTRL) wxCalendarCtrl* GetCalendar(); #endif #endif }; %{ void new( ... ) PPCODE: BEGIN_OVERLOAD() MATCH_VOIDM_REDISP( newDefault ) MATCH_ANY_REDISP( newFull ) END_OVERLOAD( "Wx::DatePickerCtrl::new" ) void wxDatePickerCtrl::GetRange() PPCODE: wxDateTime dt1, dt2; bool ok = THIS->GetRange( &dt1, &dt2 ); if( !ok ) return; EXTEND( SP, 2 ); PUSHs( wxPli_non_object_2_sv( aTHX_ sv_newmortal(), new wxDateTime( dt1 ), "Wx::DateTime" ) ); PUSHs( wxPli_non_object_2_sv( aTHX_ sv_newmortal(), new wxDateTime( dt2 ), "Wx::DateTime" ) ); %} #endif