]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/mac/calendar.py
wxCheckListBox doesn't require wxUSE_OWNER_DRAWN when using WXUNIVERSAL
[wxWidgets.git] / wxPython / src / mac / calendar.py
index 8680354bb4e433769310f13f729a5c66e0e65a7a..cebc5cfc2b08980c58f377884b84006305116cd8 100644 (file)
@@ -7,6 +7,47 @@ Classes for an interactive Calendar control.
 
 import _calendar
 
 
 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 
 import _misc
 import _core
 wx = _core 
@@ -122,7 +163,8 @@ class CalendarDateAttrPtr(CalendarDateAttr):
         self.__class__ = CalendarDateAttr
 _calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr)
 
         self.__class__ = CalendarDateAttr
 _calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr)
 
-class CalendarEvent(_core.CommandEvent):
+class CalendarEvent(_core.DateEvent):
+    """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):
     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):
@@ -131,14 +173,6 @@ class CalendarEvent(_core.CommandEvent):
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
-    def GetDate(*args, **kwargs):
-        """GetDate(self) -> DateTime"""
-        return _calendar.CalendarEvent_GetDate(*args, **kwargs)
-
-    def SetDate(*args, **kwargs):
-        """SetDate(self, DateTime date)"""
-        return _calendar.CalendarEvent_SetDate(*args, **kwargs)
-
     def SetWeekDay(*args, **kwargs):
         """SetWeekDay(self, int wd)"""
         return _calendar.CalendarEvent_SetWeekDay(*args, **kwargs)
     def SetWeekDay(*args, **kwargs):
         """SetWeekDay(self, int wd)"""
         return _calendar.CalendarEvent_SetWeekDay(*args, **kwargs)
@@ -147,6 +181,14 @@ class CalendarEvent(_core.CommandEvent):
         """GetWeekDay(self) -> int"""
         return _calendar.CalendarEvent_GetWeekDay(*args, **kwargs)
 
         """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):
 
 class CalendarEventPtr(CalendarEvent):
     def __init__(self, this):
@@ -189,7 +231,7 @@ class CalendarCtrl(_core.Control):
     SetAttr allows to modify its appearance. Just create a custom
     attribute object and set it for the day you want to be displayed
     specially A day may be marked as being a holiday, (even if it is not
     SetAttr allows to modify its appearance. Just create a custom
     attribute object and set it for the day you want to be displayed
     specially A day may be marked as being a holiday, (even if it is not
-    recognized as one by wx.DateTime) by using the SetHoliday method.
+    recognized as one by `wx.DateTime`) by using the SetHoliday method.
 
     As the attributes are specified for each day, they may change when the
     month is changed, so you will often want to update them in an
 
     As the attributes are specified for each day, they may change when the
     month is changed, so you will often want to update them in an
@@ -466,6 +508,35 @@ class CalendarCtrl(_core.Control):
         return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs)
 
     GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes)
         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):
 
 class CalendarCtrlPtr(CalendarCtrl):
     def __init__(self, this):
@@ -503,4 +574,20 @@ def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs):
     """
     return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs)
 
     """
     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
+