]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/utils.i
SWIGged updates for wxGTK
[wxWidgets.git] / wxPython / src / utils.i
index ada7c8ad1137bc1a4f157ec81e37d18aaca7525c..b40a1044a778a062f5602c468757a1f92dda67c0 100644 (file)
@@ -14,7 +14,7 @@
 %module utils
 
 %{
-#include "export.h"
+#include "helpers.h"
 #include <wx/config.h>
 #include <wx/fileconf.h>
 #include <wx/datetime.h>
@@ -23,8 +23,7 @@
 //---------------------------------------------------------------------------
 %{
     // Put some wx default wxChar* values into wxStrings.
-    static const wxChar* wxDateFormatStr = wxT("sashWindow");
-    DECLARE_DEF_STRING(DateFormatStr);
+    DECLARE_DEF_STRING2(DateFormatStr, wxT("%c"));
     static const wxString wxPyEmptyString(wxT(""));
 
 %}
@@ -36,7 +35,7 @@
 // Import some definitions of other classes, etc.
 %import _defs.i
 
-%pragma(python) code = "import string"
+%pragma(python) code = "import wx"
 
 
 //---------------------------------------------------------------------------
@@ -47,7 +46,7 @@
         if (ret) {
             PyTuple_SET_ITEM(ret, 0, PyInt_FromLong(flag));
 #if wxUSE_UNICODE
-           PyTuple_SET_ITEM(ret, 1, PyUnicode_FromUnicode(str.c_str(), str.Len()));
+           PyTuple_SET_ITEM(ret, 1, PyUnicode_FromWideChar(str.c_str(), str.Len()));
 #else
             PyTuple_SET_ITEM(ret, 1, PyString_FromStringAndSize(str.c_str(), str.Len()));
 #endif
 
 enum
 {
-    wxCONFIG_USE_LOCAL_FILE = 1,
-    wxCONFIG_USE_GLOBAL_FILE = 2,
-    wxCONFIG_USE_RELATIVE_PATH = 4
+    wxCONFIG_USE_LOCAL_FILE,
+    wxCONFIG_USE_GLOBAL_FILE,
+    wxCONFIG_USE_RELATIVE_PATH,
+    wxCONFIG_USE_NO_ESCAPE_CHARACTERS
 };
 
 //---------------------------------------------------------------------------
@@ -449,6 +449,10 @@ public:
         // return the wxDateTime object for the current time
     static inline wxDateTime Now();
 
+        // return the wxDateTime object for the current time with millisecond
+        // precision (if available on this platform)
+    static wxDateTime UNow();
+
         // return the wxDateTime object for today midnight: i.e. as Now() but
         // with time set to 0
     static inline wxDateTime Today();
@@ -528,8 +532,8 @@ public:
     // calendar calculations
 
         // set to the given week day in the same week as this one
-    wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday);
-    wxDateTime GetWeekDayInSameWeek(WeekDay weekday);
+    wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday, WeekFlags flags = Monday_First);
+    wxDateTime GetWeekDayInSameWeek(WeekDay weekday, WeekFlags flags = Monday_First);
 
         // set to the next week day following this one
     wxDateTime& SetToNextWeekDay(WeekDay weekday);
@@ -563,8 +567,8 @@ public:
         // sets the date to the given day of the given week in the year,
         // returns TRUE on success and FALSE if given date doesn't exist (e.g.
         // numWeek is > 53)
-    bool SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday = Mon);
-    wxDateTime GetWeek(wxDateTime_t numWeek, WeekDay weekday = Mon);
+    bool SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday = Mon, WeekFlags flags = Monday_First);
+    wxDateTime GetWeek(wxDateTime_t numWeek, WeekDay weekday = Mon, WeekFlags flags = Monday_First);
 
         // sets the date to the last day of the given (or current) month or the
         // given (or current) year
@@ -758,48 +762,84 @@ public:
 
     %pragma(python) addtoclass = "
     def __add__(self, other):
-        if string.find(other.this, 'wxTimeSpan') != -1:
+        if isinstance(other, wxTimeSpanPtr):
             return self.__add__TS(other)
-        if string.find(other.this, 'wxDateSpan') != -1:
+        if isinstance(other, wxDateSpanPtr):
             return self.__add__DS(other)
         raise TypeError, 'Invalid r.h.s. type for __add__'
     def __sub__(self, other):
-        if string.find(other.this, 'wxDateTime') != -1:
+        if isinstance(other, wxDateTimePtr):
             return self.__sub__DT(other)
-        if string.find(other.this, 'wxTimeSpan') != -1:
+        if isinstance(other, wxTimeSpanPtr):
             return self.__sub__TS(other)
-        if string.find(other.this, 'wxDateSpan') != -1:
+        if isinstance(other, wxDateSpanPtr):
             return self.__sub__DS(other)
         raise TypeError, 'Invalid r.h.s. type for __sub__'
 "
 
     // ------------------------------------------------------------------------
-    // conversion to/from text: all conversions from text return the pointer to
-    // the next character following the date specification (i.e. the one where
-    // the scan had to stop) or NULL on failure.
+    // conversion from text: all conversions from text return -1 on failure,
+    // or the index in the string where the next character following the date
+    // specification (i.e. the one where the scan had to stop) is located.
+
+    %addmethods {
 
         // parse a string in RFC 822 format (found e.g. in mail headers and
         // having the form "Wed, 10 Feb 1999 19:07:07 +0100")
-    wxString ParseRfc822Date(const wxString& date);
+        int ParseRfc822Date(const wxString& date) {
+            const wxChar* rv;
+            const wxChar* _date = date;
+            rv = self->ParseRfc822Date(_date);
+            if (rv == NULL) return -1;
+            return rv - _date;
+        }
+
 
         // parse a date/time in the given format (see strptime(3)), fill in
         // the missing (in the string) fields with the values of dateDef (by
         // default, they will not change if they had valid values or will
         // default to Today() otherwise)
-    wxString ParseFormat(const wxString& date,
-                            const wxString& format = wxPyDateFormatStr,
-                            const wxDateTime& dateDef = wxDefaultDateTime);
+        int ParseFormat(const wxString& date,
+                        const wxString& format = wxPyDateFormatStr,
+                        const wxDateTime& dateDef = wxDefaultDateTime) {
+            const wxChar* rv;
+            const wxChar* _date = date;
+            rv = self->ParseFormat(_date, format, dateDef);
+            if (rv == NULL) return -1;
+            return rv - _date;
+        }
 
         // parse a string containing the date/time in "free" format, this
         // function will try to make an educated guess at the string contents
-    wxString ParseDateTime(const wxString& datetime);
+        int ParseDateTime(const wxString& datetime) {
+            const wxChar* rv;
+            const wxChar* _datetime = datetime;
+            rv = self->ParseDateTime(_datetime);
+            if (rv == NULL) return -1;
+            return rv - _datetime;
+        }
+
 
         // parse a string containing the date only in "free" format (less
         // flexible than ParseDateTime)
-    wxString ParseDate(const wxString& date);
+        int ParseDate(const wxString& date) {
+            const wxChar* rv;
+            const wxChar* _date = date;
+            rv = self->ParseDate(_date);
+            if (rv == NULL) return -1;
+            return rv - _date;
+        }
 
         // parse a string containing the time only in "free" format
-    wxString ParseTime(const wxString& time);
+        int ParseTime(const wxString& time) {
+            const wxChar* rv;
+            const wxChar* _time = time;
+            rv = self->ParseTime(_time);
+            if (rv == NULL) return -1;
+            return rv - _time;
+        }
+    }
+
 
         // this function accepts strftime()-like format string (default
         // argument corresponds to the preferred date and time representation
@@ -1065,8 +1105,9 @@ wxLongLong wxGetLocalTimeMillis();
 //---------------------------------------------------------------------------
 
 %init %{
-    wxClassInfo::CleanUpClasses();
-    wxClassInfo::InitializeClasses();
+    // These are no longer needed since utils is back in the core
+//      wxClassInfo::CleanUpClasses();
+//      wxClassInfo::InitializeClasses();
 %}
 
 //---------------------------------------------------------------------------