]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/calendar.py
use wxUSE_DATEPICKCTRL
[wxWidgets.git] / wxPython / src / gtk / calendar.py
index dd91a875cd095e625da4017dd81ea730791e9f79..765aeefc4671e7d88087d6e3dfab1080d101433d 100644 (file)
@@ -1,8 +1,53 @@
 # This file was created automatically by SWIG.
 # Don't modify this file, modify the SWIG interface instead.
 
+"""
+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 
@@ -119,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):
@@ -143,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):
@@ -190,44 +244,6 @@ class CalendarCtrl(_core.Control):
     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
     EVT_CALENDAR_MONTH event handler.
-
-    Window Styles
-    -------------
-        ==============================   ============================
-        CAL_SUNDAY_FIRST                 Show Sunday as the first day
-                                         in the week
-        CAL_MONDAY_FIRST                 Show Monday as the first day
-                                         in the week
-        CAL_SHOW_HOLIDAYS                Highlight holidays in the
-                                         calendar
-        CAL_NO_YEAR_CHANGE               Disable the year changing
-        CAL_NO_MONTH_CHANGE              Disable the month (and,
-                                         implicitly, the year) changing
-        CAL_SHOW_SURROUNDING_WEEKS       Show the neighbouring weeks in
-                                         the previous and next months
-        CAL_SEQUENTIAL_MONTH_SELECTION   Use alternative, more compact,
-                                         style for the month and year
-                                         selection controls.
-
-    The default calendar style is CAL_SHOW_HOLIDAYS.
-
-    Events
-    -------
-        ===========================    ==============================
-        EVT_CALENDAR                   A day was double clicked in the
-                                       calendar.
-        EVT_CALENDAR_SEL_CHANGED       The selected date changed.
-        EVT_CALENDAR_DAY               The selected day changed.
-        EVT_CALENDAR_MONTH             The selected month changed.
-        EVT_CALENDAR_YEAR              The selected year changed.
-        EVT_CALENDAR_WEEKDAY_CLICKED   User clicked on the week day
-                                       header
-
-    Note that changing the selected date will result in one of
-    EVT_CALENDAR_DAY, MONTH or YEAR events and an EVT_CALENDAR_SEL_CHANGED
-    event.
-        
-
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -462,15 +478,7 @@ class CalendarCtrl(_core.Control):
 
         Returns 3-tuple with information about the given position on the
         calendar control.  The first value of the tuple is a result code and
-        determines the validity of the remaining two values.  The result codes
-        are:
-
-            ===================    ============================================
-            CAL_HITTEST_NOWHERE    hit outside of anything
-            CAL_HITTEST_HEADER     hit on the header, weekday is valid
-            CAL_HITTEST_DAY        hit on a day in the calendar, date is set.
-            ===================    ============================================
-
+        determines the validity of the remaining two values.
         """
         return _calendar.CalendarCtrl_HitTest(*args, **kwargs)
 
@@ -494,19 +502,49 @@ class CalendarCtrl(_core.Control):
         """
         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 users system, especially if it uses themes.
+        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 SetWindowVariant for more about this.
+        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):
@@ -531,16 +569,33 @@ def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs):
     """
     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 users system, especially if it uses themes.
+    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 SetWindowVariant for more about this.
+    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
+