X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b85cc38e225fbde542282220d769d3414fca4de..71aba8333cc915afff9e740c944f7fa7247abacb:/wxPython/src/utils.i?ds=sidebyside diff --git a/wxPython/src/utils.i b/wxPython/src/utils.i index f90583d8af..0f4a5a537d 100644 --- a/wxPython/src/utils.i +++ b/wxPython/src/utils.i @@ -35,7 +35,7 @@ // Import some definitions of other classes, etc. %import _defs.i -%pragma(python) code = "import string" +%pragma(python) code = "import wx" //--------------------------------------------------------------------------- @@ -46,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 @@ -60,9 +60,10 @@ 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 }; //--------------------------------------------------------------------------- @@ -448,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(); @@ -527,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); @@ -562,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 @@ -757,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 @@ -1064,9 +1105,6 @@ wxLongLong wxGetLocalTimeMillis(); //--------------------------------------------------------------------------- %init %{ - // These are no longer needed since utils is back in the core -// wxClassInfo::CleanUpClasses(); -// wxClassInfo::InitializeClasses(); %} //---------------------------------------------------------------------------