]> 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 64a43d13f848f060b7feca9b2c180144fedbb564..cebc5cfc2b08980c58f377884b84006305116cd8 100644 (file)
@@ -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 
@@ -122,7 +163,8 @@ class CalendarDateAttrPtr(CalendarDateAttr):
         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):
@@ -131,14 +173,6 @@ class CalendarEvent(_core.CommandEvent):
         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)
@@ -149,11 +183,11 @@ class CalendarEvent(_core.CommandEvent):
 
     def PySetDate(self, date):
         """takes datetime.datetime or datetime.date object"""
-        self.SetDate(_py2wx(date))
+        self.SetDate(_pydate2wxdate(date))
 
     def PyGetDate(self):
         """returns datetime.date object"""
-        return _wx2py(self.GetDate())
+        return _wxdate2pydate(self.GetDate())
 
 
 class CalendarEventPtr(CalendarEvent):
@@ -197,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
-    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
@@ -476,19 +510,19 @@ class CalendarCtrl(_core.Control):
     GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes)
     def PySetDate(self, date):
         """takes datetime.datetime or datetime.date object"""
-        self.SetDate(_py2wx(date))
+        self.SetDate(_pydate2wxdate(date))
 
     def PyGetDate(self):
         """returns datetime.date object"""
-        return _wx2py(self.GetDate())
+        return _wxdate2pydate(self.GetDate())
 
     def PySetLowerDateLimit(self, date):
         """takes datetime.datetime or datetime.date object"""
-        self.SetLowerDateLimit(_py2wx(date))
+        self.SetLowerDateLimit(_pydate2wxdate(date))
 
     def PySetUpperDateLimit(self, date):
         """takes datetime.datetime or datetime.date object"""
-        self.SetUpperDateLimit(_py2wx(date))
+        self.SetUpperDateLimit(_pydate2wxdate(date))
 
     def PySetDateRange(self, lowerdate, upperdate):
         """takes datetime.datetime or datetime.date objects"""
@@ -497,11 +531,11 @@ class CalendarCtrl(_core.Control):
 
     def PyGetLowerDateLimit(self):
         """returns datetime.date object"""
-        return _wx2py(self.GetLowerDateLimit())
+        return _wxdate2pydate(self.GetLowerDateLimit())
 
     def PyGetUpperDateLimit(self):
         """returns datetime.date object"""
-        return _wx2py(self.GetUpperDateLimit())
+        return _wxdate2pydate(self.GetUpperDateLimit())
 
 
 class CalendarCtrlPtr(CalendarCtrl):
@@ -540,17 +574,20 @@ def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs):
     """
     return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs)
 
-def _py2wx(date):
+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 _wx2py(date):
+def _wxdate2pydate(date):
     import datetime
     assert isinstance(date, wx.DateTime)
-    ymd = map(int, date.FormatISODate().split('-'))
-    return datetime.date(*ymd)
+    if date.IsValid():
+        ymd = map(int, date.FormatISODate().split('-'))
+        return datetime.date(*ymd)
+    else:
+        return None