]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_datetime.i
Squash exception on exit bug
[wxWidgets.git] / wxPython / src / _datetime.i
CommitLineData
f6bcfd97 1/////////////////////////////////////////////////////////////////////////////
d14a1e28
RD
2// Name: _datetime.i
3// Purpose: SWIG interface for wxDateTime and etc.
f6bcfd97
BP
4//
5// Author: Robin Dunn
6//
c368d904 7// Created: 25-Nov-1998
f6bcfd97 8// RCS-ID: $Id$
d14a1e28 9// Copyright: (c) 2003 by Total Control Software
f6bcfd97
BP
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
d14a1e28 13// Not a %module
f6bcfd97
BP
14
15
16//---------------------------------------------------------------------------
d14a1e28 17%newgroup
f6bcfd97
BP
18
19%{
d14a1e28 20#include <wx/datetime.h>
b2dc1044 21%}
aeee37c3
RD
22
23MAKE_CONST_WXSTRING(DefaultDateTimeFormat);
24MAKE_CONST_WXSTRING(DefaultTimeSpanFormat);
f6bcfd97 25
f6bcfd97
BP
26//---------------------------------------------------------------------------
27
f6bcfd97 28
a72f4631 29%typemap(in) wxDateTime::TimeZone& (bool temp=false) {
d14a1e28 30 $1 = new wxDateTime::TimeZone((wxDateTime::TZ)PyInt_AsLong($input));
a72f4631 31 temp = true;
f6bcfd97
BP
32}
33%typemap(python,freearg) wxDateTime::TimeZone& {
7722248d 34 if (temp$argnum) delete $1;
f6bcfd97
BP
35}
36
d14a1e28 37
f6bcfd97 38%{
d14a1e28 39#define LOCAL_TZ wxDateTime::Local
f6bcfd97
BP
40%}
41
42
d14a1e28
RD
43// Convert a wxLongLong to a Python Long by getting the hi/lo dwords, then
44// shifting and oring them together
f6bcfd97
BP
45%typemap(python, out) wxLongLong {
46 PyObject *hi, *lo, *shifter, *shifted;
d14a1e28
RD
47 hi = PyLong_FromLong( $1.GetHi() );
48 lo = PyLong_FromLong( $1.GetLo() );
f6bcfd97
BP
49 shifter = PyLong_FromLong(32);
50 shifted = PyNumber_Lshift(hi, shifter);
d14a1e28 51 $result = PyNumber_Or(shifted, lo);
f6bcfd97
BP
52 Py_DECREF(hi);
53 Py_DECREF(lo);
54 Py_DECREF(shifter);
55 Py_DECREF(shifted);
56}
57
58
d14a1e28 59//---------------------------------------------------------------------------
f6bcfd97 60
322913ce
RD
61//typedef unsigned short wxDateTime_t;
62#define wxDateTime_t int
f6bcfd97 63
d14a1e28 64// wxDateTime represents an absolute moment in the time
f6bcfd97
BP
65class wxDateTime {
66public:
f6bcfd97
BP
67
68 enum TZ
69 {
d14a1e28 70 // the time in the current time zone
f6bcfd97
BP
71 Local,
72
d14a1e28
RD
73 // zones from GMT (= Greenwhich Mean Time): they're guaranteed to be
74 // consequent numbers, so writing something like `GMT0 + offset' is
75 // safe if abs(offset) <= 12
76 // underscore stands for minus
f6bcfd97
BP
77 GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7,
78 GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
79 GMT0,
80 GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
81 GMT7, GMT8, GMT9, GMT10, GMT11, GMT12,
82
83 // Europe
84 WET = GMT0, // Western Europe Time
85 WEST = GMT1, // Western Europe Summer Time
86 CET = GMT1, // Central Europe Time
87 CEST = GMT2, // Central Europe Summer Time
88 EET = GMT2, // Eastern Europe Time
89 EEST = GMT3, // Eastern Europe Summer Time
90 MSK = GMT3, // Moscow Time
91 MSD = GMT4, // Moscow Summer Time
92
93 // US and Canada
94 AST = GMT_4, // Atlantic Standard Time
95 ADT = GMT_3, // Atlantic Daylight Time
96 EST = GMT_5, // Eastern Standard Time
97 EDT = GMT_4, // Eastern Daylight Saving Time
98 CST = GMT_6, // Central Standard Time
99 CDT = GMT_5, // Central Daylight Saving Time
100 MST = GMT_7, // Mountain Standard Time
101 MDT = GMT_6, // Mountain Daylight Saving Time
102 PST = GMT_8, // Pacific Standard Time
103 PDT = GMT_7, // Pacific Daylight Saving Time
104 HST = GMT_10, // Hawaiian Standard Time
105 AKST = GMT_9, // Alaska Standard Time
106 AKDT = GMT_8, // Alaska Daylight Saving Time
107
108 // Australia
109
110 A_WST = GMT8, // Western Standard Time
111 A_CST = GMT12 + 1, // Central Standard Time (+9.5)
112 A_EST = GMT10, // Eastern Standard Time
113 A_ESST = GMT11, // Eastern Summer Time
114
115 // Universal Coordinated Time = the new and politically correct name
116 // for GMT
117 UTC = GMT0
118 };
d14a1e28 119
f6bcfd97 120
d14a1e28
RD
121 // the calendar systems we know about: notice that it's valid (for
122 // this classes purpose anyhow) to work with any of these calendars
123 // even with the dates before the historical appearance of the
124 // calendar
f6bcfd97
BP
125 enum Calendar
126 {
127 Gregorian, // current calendar
128 Julian // calendar in use since -45 until the 1582 (or later)
129 };
130
d14a1e28
RD
131 // these values only are used to identify the different dates of
132 // adoption of the Gregorian calendar (see IsGregorian())
133 //
134 // All data and comments taken verbatim from "The Calendar FAQ (v 2.0)"
135