]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/calendar.i
Extended the wx.calendar.CalendarCtrl class with methods that get/set
[wxWidgets.git] / wxPython / src / calendar.i
index f3154a5a75a2c7492d1bbb31fd34035b90721b29..e9bfb8bc4def6ec885d116ee36f16558dc44c503 100644 (file)
@@ -13,7 +13,8 @@
 %define DOCSTRING
 "Classes for an interactive Calendar control."
 %enddef
-%module(docstring=DOCSTRING) calendar
+
+%module(package="wx", docstring=DOCSTRING) calendar
 
 
 %{
@@ -118,6 +119,15 @@ public:
     void SetWeekDay(const wxDateTime::WeekDay wd);
     wxDateTime::WeekDay GetWeekDay() const;
 
+    %pythoncode {
+    def PySetDate(self, date):
+        """takes datetime.datetime or datetime.date object"""
+        self.SetDate(_py2wx(date))
+
+    def PyGetDate(self):
+        """returns datetime.date object"""
+        return _wx2py(self.GetDate())
+    }
 };
 
 
@@ -211,6 +221,8 @@ event.
 ");       
 
        
+MustHaveApp(wxCalendarCtrl);
+
 class wxCalendarCtrl : public wxControl
 {
 public:
@@ -406,9 +418,54 @@ The result codes are:
 
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
-};
 
+    %pythoncode {
+    def PySetDate(self, date):
+        """takes datetime.datetime or datetime.date object"""
+        self.SetDate(_py2wx(date))
+
+    def PyGetDate(self):
+        """returns datetime.date object"""
+        return _wx2py(self.GetDate())
+
+    def PySetLowerDateLimit(self, date):
+        """takes datetime.datetime or datetime.date object"""
+        self.SetLowerDateLimit(_py2wx(date))
+
+    def PySetUpperDateLimit(self, date):
+        """takes datetime.datetime or datetime.date object"""
+        self.SetUpperDateLimit(_py2wx(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 _wx2py(self.GetLowerDateLimit())
+
+    def PyGetUpperDateLimit(self):
+        """returns datetime.date object"""
+        return _wx2py(self.GetUpperDateLimit())
+    }
+};
+
+%pythoncode {
+def _py2wx(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):
+    import datetime
+    assert isinstance(date, wx.DateTime)
+    ymd = map(int, date.FormatISODate().split('-'))
+    return datetime.date(*ymd)
+}
+    
 //---------------------------------------------------------------------------
 
 %init %{