#############################################################################
## Name: DateTime.xsp
## Purpose: XS++ for Wx::DateTime
## Author: Mattia Barbon
## Modified by:
## Created: 22/ 9/2002
## RCS-ID:
## Copyright: (c) 2002 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
#include <wx/datetime.h>
%module{Wx};
%{
#define wxDateTime__TimeZone wxDateTime::TimeZone
#define Month wxDateTime::Month
#define WeekDay wxDateTime::WeekDay
#define WeekFlags wxDateTime::WeekFlags
#define wxDateTime_t wxDateTime::wxDateTime_t
#define Monday_First wxDateTime::Monday_First
%}
%typemap{Month}{simple};
%typemap{WeekDay}{simple};
%typemap{WeekFlags}{simple};
%typemap{wxDateTime_t}{simple};
%typemap{const wxDateTime::TimeZone&}{parsed}{%wxDateTime::TimeZone%};
%name{Wx::DateTime} class wxDateTime
{
wxDateTime();
%name{newFromTimeT} wxDateTime( time_t time );
%name{newFromDMY} wxDateTime( wxDateTime_t day,
Month month = wxDateTime::Inv_Month,
int year = wxDateTime::Inv_Year, wxDateTime_t hour = 0,
wxDateTime_t minute = 0, wxDateTime_t second = 0,
wxDateTime_t millisec = 0 );
~wxDateTime();
#define wxPL_DATETIME_FORMAT wxT("%c")
wxString Format( const wxChar* format = wxPL_DATETIME_FORMAT,
const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxString FormatDate();
int GetYear( const wxDateTime::TimeZone& tz = wxDateTime::Local );
Month GetMonth( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetDay( const wxDateTime::TimeZone& tz = wxDateTime::Local );
WeekDay GetWeekDay( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetHour( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetMinute( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetSecond( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetMillisecond( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetDayOfYear( const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetWeekOfYear( WeekFlags flags = Monday_First, const wxDateTime::TimeZone& tz = wxDateTime::Local );
wxDateTime_t GetWeekOfMonth( WeekFlags flags = Monday_First, const wxDateTime::TimeZone& tz = wxDateTime::Local );
%name{SetTimeT} wxDateTime& Set( time_t time )
%code{% RETVAL = &(THIS->Set( time )); %};
%name{SetJDN} wxDateTime& Set( double jdn )
%code{% RETVAL = &(THIS->Set( jdn )); %};
%name{SetHMS} wxDateTime& Set( wxDateTime_t hour, wxDateTime_t minute = 0,
wxDateTime_t second = 0,
wxDateTime_t msec = 0 )
%code{% RETVAL = &(THIS->Set( hour, minute, second, msec )); %};
%name{Set} wxDateTime& Set( wxDateTime_t day,
Month month = wxDateTime::Inv_Month,
int year = wxDateTime::Inv_Year,
wxDateTime_t hour, wxDateTime_t minute = 0,
wxDateTime_t second = 0,
wxDateTime_t msec = 0 )
%code{% RETVAL = &(THIS->Set( day, month, year,
hour, minute, second, msec ));
%};
wxDateTime& SetYear( int year );
wxDateTime& SetMonth( Month month );
wxDateTime& SetDay( wxDateTime_t day );
wxDateTime& SetHour( wxDateTime_t hour );
wxDateTime& SetMinute( wxDateTime_t minute );
wxDateTime& SetSecond( wxDateTime_t second );
wxDateTime& SetMillisecond( wxDateTime_t millisecond );
};
%{
void
wxDateTime::GetAmPmStrings()
PPCODE:
wxString am, pm;
THIS->GetAmPmStrings( &am, &pm );
SV* ams = wxPli_wxString_2_sv( aTHX_ am, sv_newmortal() ),
* pms = wxPli_wxString_2_sv( aTHX_ pm, sv_newmortal() );
EXTEND( SP, 2 );
PUSHs( ams );
PUSHs( pms );
%}
# %code{% RETVAL = &(THIS->SetYear( year ));%};
# %code{% RETVAL = &(THIS->SetMonth( month ));%};
# %code{% RETVAL = &(THIS->SetDay( day ));%};