X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dfbb58858530d18c34c532019d64d45122dfc798..f78e4942ec0f3f6abd2992502e2d6c5c2e8e55f6:/wxPython/src/gtk/calendar.py diff --git a/wxPython/src/gtk/calendar.py b/wxPython/src/gtk/calendar.py index 180dda2bdd..765aeefc46 100644 --- a/wxPython/src/gtk/calendar.py +++ b/wxPython/src/gtk/calendar.py @@ -7,6 +7,47 @@ Classes for an interactive Calendar control. import _calendar +def _swig_setattr_nondynamic(self,class_type,name,value,static=1): + if (name == "this"): + if isinstance(value, class_type): + self.__dict__[name] = value.this + if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown + del value.thisown + return + method = class_type.__swig_setmethods__.get(name,None) + if method: return method(self,value) + if (not static) or hasattr(self,name) or (name == "thisown"): + self.__dict__[name] = value + else: + raise AttributeError("You cannot add attributes to %s" % self) + +def _swig_setattr(self,class_type,name,value): + return _swig_setattr_nondynamic(self,class_type,name,value,0) + +def _swig_getattr(self,class_type,name): + method = class_type.__swig_getmethods__.get(name,None) + if method: return method(self) + raise AttributeError,name + +import types +try: + _object = types.ObjectType + _newclass = 1 +except AttributeError: + class _object : pass + _newclass = 0 +del types + + +def _swig_setattr_nondynamic_method(set): + def set_attr(self,name,value): + if hasattr(self,name) or (name in ("this", "thisown")): + set(self,name,value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + return set_attr + + import _misc import _core wx = _core @@ -123,6 +164,7 @@ class CalendarDateAttrPtr(CalendarDateAttr): _calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr) class CalendarEvent(_core.CommandEvent): + """Proxy of C++ CalendarEvent class""" def __repr__(self): return "<%s.%s; proxy of C++ wxCalendarEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) def __init__(self, *args, **kwargs): @@ -147,6 +189,14 @@ class CalendarEvent(_core.CommandEvent): """GetWeekDay(self) -> int""" return _calendar.CalendarEvent_GetWeekDay(*args, **kwargs) + def PySetDate(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetDate(_pydate2wxdate(date)) + + def PyGetDate(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetDate()) + class CalendarEventPtr(CalendarEvent): def __init__(self, this): @@ -449,10 +499,52 @@ class CalendarCtrl(_core.Control): return _calendar.CalendarCtrl_GetYearControl(*args, **kwargs) def GetClassDefaultAttributes(*args, **kwargs): - """GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes""" + """ + GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes + + Get the default attributes for this class. This is useful if you want + to use the same font or colour in your own control as in a standard + control -- which is a much better idea than hard coding specific + colours or fonts which might look completely out of place on the + user's system, especially if it uses themes. + + The variant parameter is only relevant under Mac currently and is + ignore under other platforms. Under Mac, it will change the size of + the returned font. See `wx.Window.SetWindowVariant` for more about + this. + """ return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs) GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes) + def PySetDate(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetDate(_pydate2wxdate(date)) + + def PyGetDate(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetDate()) + + def PySetLowerDateLimit(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetLowerDateLimit(_pydate2wxdate(date)) + + def PySetUpperDateLimit(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetUpperDateLimit(_pydate2wxdate(date)) + + def PySetDateRange(self, lowerdate, upperdate): + """takes datetime.datetime or datetime.date objects""" + self.PySetLowerDateLimit(lowerdate) + self.PySetUpperDateLimit(upperdate) + + def PyGetLowerDateLimit(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetLowerDateLimit()) + + def PyGetUpperDateLimit(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetUpperDateLimit()) + class CalendarCtrlPtr(CalendarCtrl): def __init__(self, this): @@ -474,7 +566,36 @@ def PreCalendarCtrl(*args, **kwargs): return val def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs): - """CalendarCtrl_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes""" + """ + CalendarCtrl_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes + + Get the default attributes for this class. This is useful if you want + to use the same font or colour in your own control as in a standard + control -- which is a much better idea than hard coding specific + colours or fonts which might look completely out of place on the + user's system, especially if it uses themes. + + The variant parameter is only relevant under Mac currently and is + ignore under other platforms. Under Mac, it will change the size of + the returned font. See `wx.Window.SetWindowVariant` for more about + this. + """ return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs) +def _pydate2wxdate(date): + import datetime + assert isinstance(date, (datetime.datetime, datetime.date)) + tt = date.timetuple() + dmy = (tt[2], tt[1]-1, tt[0]) + return wx.DateTimeFromDMY(*dmy) + +def _wxdate2pydate(date): + import datetime + assert isinstance(date, wx.DateTime) + if date.IsValid(): + ymd = map(int, date.FormatISODate().split('-')) + return datetime.date(*ymd) + else: + return None +