1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
|
#############################################################################
## Name: ext/datetime/XS/DateTime.xsp
## Purpose: XS++ for Wx::DateTime
## Author: Mattia Barbon
## Modified by:
## Created: 22/09/2002
## RCS-ID: $Id: DateTime.xsp 2983 2010-10-09 01:44:20Z mdootson $
## Copyright: (c) 2002, 2006, 2009-2010 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 NameFlags wxDateTime::NameFlags
#define wxDateTime_t wxDateTime::wxDateTime_t
#define Monday_First wxDateTime::Monday_First
#define Name_Full wxDateTime::Name_Full
#define Name_Abbr wxDateTime::Name_Abbr
#define Calendar wxDateTime::Calendar
#define Gregorian wxDateTime::Gregorian
#define Inv_Year wxDateTime::Inv_Year
#define Inv_Month wxDateTime::Inv_Month
#define wxDefaultDateTimePtr (wxDateTime*)&wxDefaultDateTime
#if WXPERL_W_VERSION_LT( 2, 5, 4 )
#define wxDefaultDateTimeFormat _T("%c")
#endif
%}
%typemap{Month}{simple};
%typemap{WeekDay}{simple};
%typemap{WeekFlags}{simple};
%typemap{wxDateTime_t}{simple};
%typemap{Calendar}{simple};
%typemap{wxDefaultDateTime}{simple};
%typemap{wxDefaultDateTimeFormat}{simple};
%typemap{const wxDateTime::TimeZone&}{parsed}{
%cpp_type{%wxDateTime::TimeZone%};
};
%typemap{wxDateTime&}{parsed}{
%cpp_type{%SV*%};
%call_function_code{%$Call%};
%output_code{%$CVar = $PerlVar; SvREFCNT_inc( $PerlVar )%};
};
%name{Wx::DateTime} class wxDateTime
{
wxDateTime();
%name{newFromTimeT} wxDateTime( time_t time );
%name{newFromDMY} wxDateTime( wxDateTime_t day,
Month month = Inv_Month,
int year = Inv_Year, wxDateTime_t hour = 0,
wxDateTime_t minute = 0, wxDateTime_t second = 0,
wxDateTime_t millisec = 0 );
%{
static void
wxDateTime::CLONE()
CODE:
wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
%}
## // thread OK
~wxDateTime()
%code{% wxPli_thread_sv_unregister( aTHX_ "Wx::DateTime", THIS, ST(0) );
delete THIS;
%};
#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 );
%name{SetJDN} wxDateTime& Set( double jdn );
%name{SetHMS} wxDateTime& Set( wxDateTime_t hour, wxDateTime_t minute = 0,
wxDateTime_t second = 0,
wxDateTime_t msec = 0 );
%name{Set} wxDateTime& Set( wxDateTime_t day,
Month month = Inv_Month,
int year = Inv_Year,
wxDateTime_t hour, wxDateTime_t minute = 0,
wxDateTime_t second = 0,
wxDateTime_t msec = 0 );
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 );
wxString FormatISODate();
wxString FormatTime();
wxString FormatISOTime();
#if WXPERL_W_VERSION_LT( 2, 9, 0 )
wxString ParseFormat( wxString date,
wxString format = wxDefaultDateTimeFormat,
const wxDateTime& dateDef = wxDefaultDateTimePtr );
wxString ParseDate( wxString date);
wxString ParseDateTime( wxString date);
wxString ParseTime( wxString date);
wxString ParseRfc822Date( wxString date);
#endif
wxDateTime& SetToCurrent( );
wxDateTime& ResetTime( );
bool IsEqualTo( const wxDateTime& dt );
bool IsEarlierThan( const wxDateTime& dt );
bool IsLaterThan( const wxDateTime& dt );
bool IsBetween( const wxDateTime& dt1, const wxDateTime& dt2 );
bool IsStrictlyBetween( const wxDateTime& dt1, const wxDateTime& dt2 );
bool IsSameDate( const wxDateTime& dt );
bool IsSameTime( const wxDateTime& dt );
bool IsValid( );
# all Add & Subtract methods for Time and Date parts
%name{AddDate} wxDateTime& Add( wxDateSpan& ds );
%name{AddTime} wxDateTime& Add( wxTimeSpan& ds );
# TimeSpan and all needed functions
# DateSpan and all needed functions
};
%{
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 );
wxDateTime*
Today()
CODE:
RETVAL = new wxDateTime( wxDateTime::Today() );
OUTPUT:
RETVAL
wxDateTime*
Now()
CODE:
RETVAL = new wxDateTime( wxDateTime::Now() );
OUTPUT:
RETVAL
wxDateTime*
UNow()
CODE:
RETVAL = new wxDateTime( wxDateTime::UNow() );
OUTPUT:
RETVAL
bool
IsLeapYear( int year, Calendar cal = Gregorian)
CODE:
RETVAL = wxDateTime::IsLeapYear( year, cal );
OUTPUT:
RETVAL
wxString
GetMonthName( Month month, NameFlags flags = Name_Full )
CODE:
RETVAL = wxDateTime::GetMonthName( month, flags );
OUTPUT:
RETVAL
wxString
GetWeekDayName( WeekDay weekday, NameFlags flags = Name_Full )
CODE:
RETVAL = wxDateTime::GetWeekDayName( weekday, flags );
OUTPUT:
RETVAL
wxDateTime_t
GetNumberOfDaysInYear( int year = Inv_Year, Calendar cal = Gregorian )
CODE:
RETVAL = wxDateTime::GetNumberOfDays( year, cal );
OUTPUT:
RETVAL
wxDateTime_t
GetNumberOfDaysInMonth( Month month, int year = Inv_Year, Calendar cal = Gregorian )
CODE:
RETVAL = wxDateTime::GetNumberOfDays( month, year, cal );
OUTPUT:
RETVAL
int
GetCentury( int year = Inv_Year )
CODE:
RETVAL = wxDateTime::GetCentury( year );
OUTPUT:
RETVAL
int
GetCurrentYear( Calendar cal = Gregorian )
CODE:
RETVAL = wxDateTime::GetCurrentYear( cal );
OUTPUT:
RETVAL
int
GetCurrentMonth( Calendar cal = Gregorian )
CODE:
RETVAL = wxDateTime::GetCurrentMonth( cal );
OUTPUT:
RETVAL
%}
|