X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a323d3bda70a87bdfe11c835617185dd8060724c..5e4835243a9d77a73e2fe928110edfb6786f7980:/wxPython/src/gtk/calendar.py diff --git a/wxPython/src/gtk/calendar.py b/wxPython/src/gtk/calendar.py index f20a55db56..71b85d2a05 100644 --- a/wxPython/src/gtk/calendar.py +++ b/wxPython/src/gtk/calendar.py @@ -1,284 +1,559 @@ # This file was created automatically by SWIG. -import calendarc +# Don't modify this file, modify the SWIG interface instead. + +""" +Classes for an interactive Calendar control. +""" + +import _calendar + +import _misc +import _core +wx = _core +__docfilter__ = wx.__DocFilter(globals()) +CAL_SUNDAY_FIRST = _calendar.CAL_SUNDAY_FIRST +CAL_MONDAY_FIRST = _calendar.CAL_MONDAY_FIRST +CAL_SHOW_HOLIDAYS = _calendar.CAL_SHOW_HOLIDAYS +CAL_NO_YEAR_CHANGE = _calendar.CAL_NO_YEAR_CHANGE +CAL_NO_MONTH_CHANGE = _calendar.CAL_NO_MONTH_CHANGE +CAL_SEQUENTIAL_MONTH_SELECTION = _calendar.CAL_SEQUENTIAL_MONTH_SELECTION +CAL_SHOW_SURROUNDING_WEEKS = _calendar.CAL_SHOW_SURROUNDING_WEEKS +CAL_HITTEST_NOWHERE = _calendar.CAL_HITTEST_NOWHERE +CAL_HITTEST_HEADER = _calendar.CAL_HITTEST_HEADER +CAL_HITTEST_DAY = _calendar.CAL_HITTEST_DAY +CAL_HITTEST_INCMONTH = _calendar.CAL_HITTEST_INCMONTH +CAL_HITTEST_DECMONTH = _calendar.CAL_HITTEST_DECMONTH +CAL_HITTEST_SURROUNDING_WEEK = _calendar.CAL_HITTEST_SURROUNDING_WEEK +CAL_BORDER_NONE = _calendar.CAL_BORDER_NONE +CAL_BORDER_SQUARE = _calendar.CAL_BORDER_SQUARE +CAL_BORDER_ROUND = _calendar.CAL_BORDER_ROUND +class CalendarDateAttr(object): + """ + A set of customization attributes for a calendar date, which can be + used to control the look of the Calendar object. + """ + def __repr__(self): + return "<%s.%s; proxy of C++ wxCalendarDateAttr instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) + def __init__(self, *args, **kwargs): + """ + __init__(self, Colour colText=wxNullColour, Colour colBack=wxNullColour, + Colour colBorder=wxNullColour, Font font=wxNullFont, + int border=CAL_BORDER_NONE) -> CalendarDateAttr + + Create a CalendarDateAttr. + """ + newobj = _calendar.new_CalendarDateAttr(*args, **kwargs) + self.this = newobj.this + self.thisown = 1 + del newobj.thisown + def SetTextColour(*args, **kwargs): + """SetTextColour(self, Colour colText)""" + return _calendar.CalendarDateAttr_SetTextColour(*args, **kwargs) + + def SetBackgroundColour(*args, **kwargs): + """SetBackgroundColour(self, Colour colBack)""" + return _calendar.CalendarDateAttr_SetBackgroundColour(*args, **kwargs) + + def SetBorderColour(*args, **kwargs): + """SetBorderColour(self, Colour col)""" + return _calendar.CalendarDateAttr_SetBorderColour(*args, **kwargs) -from misc import * + def SetFont(*args, **kwargs): + """SetFont(self, Font font)""" + return _calendar.CalendarDateAttr_SetFont(*args, **kwargs) -from windows import * + def SetBorder(*args, **kwargs): + """SetBorder(self, int border)""" + return _calendar.CalendarDateAttr_SetBorder(*args, **kwargs) -from gdi import * + def SetHoliday(*args, **kwargs): + """SetHoliday(self, bool holiday)""" + return _calendar.CalendarDateAttr_SetHoliday(*args, **kwargs) -from fonts import * + def HasTextColour(*args, **kwargs): + """HasTextColour(self) -> bool""" + return _calendar.CalendarDateAttr_HasTextColour(*args, **kwargs) -from clip_dnd import * + def HasBackgroundColour(*args, **kwargs): + """HasBackgroundColour(self) -> bool""" + return _calendar.CalendarDateAttr_HasBackgroundColour(*args, **kwargs) -from controls import * + def HasBorderColour(*args, **kwargs): + """HasBorderColour(self) -> bool""" + return _calendar.CalendarDateAttr_HasBorderColour(*args, **kwargs) -from events import * + def HasFont(*args, **kwargs): + """HasFont(self) -> bool""" + return _calendar.CalendarDateAttr_HasFont(*args, **kwargs) -from utils import * -import wx + def HasBorder(*args, **kwargs): + """HasBorder(self) -> bool""" + return _calendar.CalendarDateAttr_HasBorder(*args, **kwargs) -def EVT_CALENDAR(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_DOUBLECLICKED, fn) + def IsHoliday(*args, **kwargs): + """IsHoliday(self) -> bool""" + return _calendar.CalendarDateAttr_IsHoliday(*args, **kwargs) -def EVT_CALENDAR_SEL_CHANGED(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_SEL_CHANGED, fn) + def GetTextColour(*args, **kwargs): + """GetTextColour(self) -> Colour""" + return _calendar.CalendarDateAttr_GetTextColour(*args, **kwargs) -def EVT_CALENDAR_DAY(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_DAY_CHANGED, fn) + def GetBackgroundColour(*args, **kwargs): + """GetBackgroundColour(self) -> Colour""" + return _calendar.CalendarDateAttr_GetBackgroundColour(*args, **kwargs) -def EVT_CALENDAR_MONTH(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_MONTH_CHANGED, fn) + def GetBorderColour(*args, **kwargs): + """GetBorderColour(self) -> Colour""" + return _calendar.CalendarDateAttr_GetBorderColour(*args, **kwargs) -def EVT_CALENDAR_YEAR(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_YEAR_CHANGED, fn) + def GetFont(*args, **kwargs): + """GetFont(self) -> Font""" + return _calendar.CalendarDateAttr_GetFont(*args, **kwargs) -def EVT_CALENDAR_WEEKDAY_CLICKED(win, id, fn): - win.Connect(id, -1, wxEVT_CALENDAR_WEEKDAY_CLICKED, fn) + def GetBorder(*args, **kwargs): + """GetBorder(self) -> int""" + return _calendar.CalendarDateAttr_GetBorder(*args, **kwargs) -class wxCalendarDateAttrPtr : - def __init__(self,this): +class CalendarDateAttrPtr(CalendarDateAttr): + def __init__(self, this): self.this = this - self.thisown = 0 - def SetTextColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetTextColour,(self,) + _args, _kwargs) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetBorderColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetBorderColour,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetFont,(self,) + _args, _kwargs) - return val - def SetBorder(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetBorder,(self,) + _args, _kwargs) - return val - def SetHoliday(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_SetHoliday,(self,) + _args, _kwargs) - return val - def HasTextColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_HasTextColour,(self,) + _args, _kwargs) - return val - def HasBackgroundColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_HasBackgroundColour,(self,) + _args, _kwargs) - return val - def HasBorderColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_HasBorderColour,(self,) + _args, _kwargs) - return val - def HasFont(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_HasFont,(self,) + _args, _kwargs) - return val - def HasBorder(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_HasBorder,(self,) + _args, _kwargs) - return val - def IsHoliday(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_IsHoliday,(self,) + _args, _kwargs) - return val - def GetTextColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_GetTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetBorderColour(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_GetBorderColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetFont(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) ; val.thisown = 1 - return val - def GetBorder(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarDateAttr_GetBorder,(self,) + _args, _kwargs) - return val + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = CalendarDateAttr +_calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr) + +class CalendarEvent(_core.CommandEvent): def __repr__(self): - return "" % (self.this,) -class wxCalendarDateAttr(wxCalendarDateAttrPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(calendarc.new_wxCalendarDateAttr,_args,_kwargs) + return "<%s.%s; proxy of C++ wxCalendarEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) + def __init__(self, *args, **kwargs): + """__init__(self, CalendarCtrl cal, wxEventType type) -> CalendarEvent""" + newobj = _calendar.new_CalendarEvent(*args, **kwargs) + 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 wxCalendarDateAttrBorder(*_args,**_kwargs): - val = wxCalendarDateAttrPtr(apply(calendarc.new_wxCalendarDateAttrBorder,_args,_kwargs)) - val.thisown = 1 - return val + def 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)) -class wxCalendarEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDate(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarEvent_GetDate,(self,) + _args, _kwargs) - if val: val = wxDateTimePtr(val) - return val - def GetWeekDay(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarEvent_GetWeekDay,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCalendarEvent(wxCalendarEventPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(calendarc.new_wxCalendarEvent,_args,_kwargs) - self.thisown = 1 + def PyGetDate(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetDate()) - - -class wxCalendarCtrlPtr(wxControlPtr): - def __init__(self,this): +class CalendarEventPtr(CalendarEvent): + def __init__(self, this): self.this = this - self.thisown = 0 - def Create(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_Create,(self,) + _args, _kwargs) - return val - def SetDate(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetDate,(self,) + _args, _kwargs) - return val - def GetDate(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetDate,(self,) + _args, _kwargs) - if val: val = wxDateTimePtr(val) - return val - def SetLowerDateLimit(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetLowerDateLimit,(self,) + _args, _kwargs) - return val - def GetLowerDateLimit(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetLowerDateLimit,(self,) + _args, _kwargs) - if val: val = wxDateTimePtr(val) - return val - def SetUpperDateLimit(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetUpperDateLimit,(self,) + _args, _kwargs) - return val - def GetUpperDateLimit(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetUpperDateLimit,(self,) + _args, _kwargs) - if val: val = wxDateTimePtr(val) - return val - def SetDateRange(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetDateRange,(self,) + _args, _kwargs) - return val - def EnableYearChange(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_EnableYearChange,(self,) + _args, _kwargs) - return val - def EnableMonthChange(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_EnableMonthChange,(self,) + _args, _kwargs) - return val - def EnableHolidayDisplay(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_EnableHolidayDisplay,(self,) + _args, _kwargs) - return val - def SetHeaderColours(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetHeaderColours,(self,) + _args, _kwargs) - return val - def GetHeaderColourFg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHeaderColourFg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetHeaderColourBg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHeaderColourBg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def SetHighlightColours(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetHighlightColours,(self,) + _args, _kwargs) - return val - def GetHighlightColourFg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHighlightColourFg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetHighlightColourBg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHighlightColourBg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def SetHolidayColours(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetHolidayColours,(self,) + _args, _kwargs) - return val - def GetHolidayColourFg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHolidayColourFg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetHolidayColourBg(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetHolidayColourBg,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetAttr(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_GetAttr,(self,) + _args, _kwargs) - if val: val = wxCalendarDateAttrPtr(val) - return val - def SetAttr(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetAttr,(self,) + _args, _kwargs) - return val - def SetHoliday(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_SetHoliday,(self,) + _args, _kwargs) - return val - def ResetAttr(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_ResetAttr,(self,) + _args, _kwargs) - return val - def HitTest(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_HitTest,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_Enable,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(calendarc.wxCalendarCtrl_Show,(self,) + _args, _kwargs) - return val + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = CalendarEvent +_calendar.CalendarEvent_swigregister(CalendarEventPtr) + +wxEVT_CALENDAR_DOUBLECLICKED = _calendar.wxEVT_CALENDAR_DOUBLECLICKED +wxEVT_CALENDAR_SEL_CHANGED = _calendar.wxEVT_CALENDAR_SEL_CHANGED +wxEVT_CALENDAR_DAY_CHANGED = _calendar.wxEVT_CALENDAR_DAY_CHANGED +wxEVT_CALENDAR_MONTH_CHANGED = _calendar.wxEVT_CALENDAR_MONTH_CHANGED +wxEVT_CALENDAR_YEAR_CHANGED = _calendar.wxEVT_CALENDAR_YEAR_CHANGED +wxEVT_CALENDAR_WEEKDAY_CLICKED = _calendar.wxEVT_CALENDAR_WEEKDAY_CLICKED +EVT_CALENDAR = wx.PyEventBinder( wxEVT_CALENDAR_DOUBLECLICKED, 1) +EVT_CALENDAR_SEL_CHANGED = wx.PyEventBinder( wxEVT_CALENDAR_SEL_CHANGED, 1) +EVT_CALENDAR_DAY = wx.PyEventBinder( wxEVT_CALENDAR_DAY_CHANGED, 1) +EVT_CALENDAR_MONTH = wx.PyEventBinder( wxEVT_CALENDAR_MONTH_CHANGED, 1) +EVT_CALENDAR_YEAR = wx.PyEventBinder( wxEVT_CALENDAR_YEAR_CHANGED, 1) +EVT_CALENDAR_WEEKDAY_CLICKED = wx.PyEventBinder( wxEVT_CALENDAR_WEEKDAY_CLICKED, 1) + +class CalendarCtrl(_core.Control): + """ + The calendar control allows the user to pick a date interactively. + + The CalendarCtrl displays a window containing several parts: the + control to pick the month and the year at the top (either or both of + them may be disabled) and a month area below them which shows all the + days in the month. The user can move the current selection using the + keyboard and select the date (generating EVT_CALENDAR event) by + pressing or double clicking it. + + It has advanced possibilities for the customization of its + display. All global settings (such as colours and fonts used) can, of + course, be changed. But also, the display style for each day in the + month can be set independently using CalendarDateAttr class. + + An item without custom attributes is drawn with the default colours + and font and without border, but setting custom attributes with + 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. + + 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. + """ def __repr__(self): - return "" % (self.this,) -class wxCalendarCtrl(wxCalendarCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(calendarc.new_wxCalendarCtrl,_args,_kwargs) + return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) + def __init__(self, *args, **kwargs): + """ + __init__(self, Window parent, int id=-1, DateTime date=DefaultDateTime, + Point pos=DefaultPosition, Size size=DefaultSize, + long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS, + String name=CalendarNameStr) -> CalendarCtrl + + Create and show a calendar control. + """ + newobj = _calendar.new_CalendarCtrl(*args, **kwargs) + self.this = newobj.this self.thisown = 1 + del newobj.thisown self._setOORInfo(self) - - -def wxPreCalendarCtrl(*_args,**_kwargs): - val = wxCalendarCtrlPtr(apply(calendarc.new_wxPreCalendarCtrl,_args,_kwargs)) + def Create(*args, **kwargs): + """ + Create(self, Window parent, int id, DateTime date=DefaultDateTime, + Point pos=DefaultPosition, Size size=DefaultSize, + long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS, + String name=CalendarNameStr) -> bool + + Acutally create the GUI portion of the CalendarCtrl for 2-phase + creation. + """ + return _calendar.CalendarCtrl_Create(*args, **kwargs) + + def SetDate(*args, **kwargs): + """ + SetDate(self, DateTime date) + + Sets the current date. + """ + return _calendar.CalendarCtrl_SetDate(*args, **kwargs) + + def GetDate(*args, **kwargs): + """ + GetDate(self) -> DateTime + + Gets the currently selected date. + """ + return _calendar.CalendarCtrl_GetDate(*args, **kwargs) + + def SetLowerDateLimit(*args, **kwargs): + """ + SetLowerDateLimit(self, DateTime date=DefaultDateTime) -> bool + + set the range in which selection can occur + """ + return _calendar.CalendarCtrl_SetLowerDateLimit(*args, **kwargs) + + def SetUpperDateLimit(*args, **kwargs): + """ + SetUpperDateLimit(self, DateTime date=DefaultDateTime) -> bool + + set the range in which selection can occur + """ + return _calendar.CalendarCtrl_SetUpperDateLimit(*args, **kwargs) + + def GetLowerDateLimit(*args, **kwargs): + """ + GetLowerDateLimit(self) -> DateTime + + get the range in which selection can occur + """ + return _calendar.CalendarCtrl_GetLowerDateLimit(*args, **kwargs) + + def GetUpperDateLimit(*args, **kwargs): + """ + GetUpperDateLimit(self) -> DateTime + + get the range in which selection can occur + """ + return _calendar.CalendarCtrl_GetUpperDateLimit(*args, **kwargs) + + def SetDateRange(*args, **kwargs): + """ + SetDateRange(self, DateTime lowerdate=DefaultDateTime, DateTime upperdate=DefaultDateTime) -> bool + + set the range in which selection can occur + """ + return _calendar.CalendarCtrl_SetDateRange(*args, **kwargs) + + def EnableYearChange(*args, **kwargs): + """ + EnableYearChange(self, bool enable=True) + + This function should be used instead of changing CAL_NO_YEAR_CHANGE + style bit directly. It allows or disallows the user to change the year + interactively. + """ + return _calendar.CalendarCtrl_EnableYearChange(*args, **kwargs) + + def EnableMonthChange(*args, **kwargs): + """ + EnableMonthChange(self, bool enable=True) + + This function should be used instead of changing CAL_NO_MONTH_CHANGE + style bit. It allows or disallows the user to change the month + interactively. Note that if the month can not be changed, the year can + not be changed either. + """ + return _calendar.CalendarCtrl_EnableMonthChange(*args, **kwargs) + + def EnableHolidayDisplay(*args, **kwargs): + """ + EnableHolidayDisplay(self, bool display=True) + + This function should be used instead of changing CAL_SHOW_HOLIDAYS + style bit directly. It enables or disables the special highlighting of + the holidays. + """ + return _calendar.CalendarCtrl_EnableHolidayDisplay(*args, **kwargs) + + def SetHeaderColours(*args, **kwargs): + """ + SetHeaderColours(self, Colour colFg, Colour colBg) + + Header colours are used for painting the weekdays at the top. + """ + return _calendar.CalendarCtrl_SetHeaderColours(*args, **kwargs) + + def GetHeaderColourFg(*args, **kwargs): + """ + GetHeaderColourFg(self) -> Colour + + Header colours are used for painting the weekdays at the top. + """ + return _calendar.CalendarCtrl_GetHeaderColourFg(*args, **kwargs) + + def GetHeaderColourBg(*args, **kwargs): + """ + GetHeaderColourBg(self) -> Colour + + Header colours are used for painting the weekdays at the top. + """ + return _calendar.CalendarCtrl_GetHeaderColourBg(*args, **kwargs) + + def SetHighlightColours(*args, **kwargs): + """ + SetHighlightColours(self, Colour colFg, Colour colBg) + + Highlight colour is used for the currently selected date. + """ + return _calendar.CalendarCtrl_SetHighlightColours(*args, **kwargs) + + def GetHighlightColourFg(*args, **kwargs): + """ + GetHighlightColourFg(self) -> Colour + + Highlight colour is used for the currently selected date. + """ + return _calendar.CalendarCtrl_GetHighlightColourFg(*args, **kwargs) + + def GetHighlightColourBg(*args, **kwargs): + """ + GetHighlightColourBg(self) -> Colour + + Highlight colour is used for the currently selected date. + """ + return _calendar.CalendarCtrl_GetHighlightColourBg(*args, **kwargs) + + def SetHolidayColours(*args, **kwargs): + """ + SetHolidayColours(self, Colour colFg, Colour colBg) + + Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is + used). + """ + return _calendar.CalendarCtrl_SetHolidayColours(*args, **kwargs) + + def GetHolidayColourFg(*args, **kwargs): + """ + GetHolidayColourFg(self) -> Colour + + Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is + used). + """ + return _calendar.CalendarCtrl_GetHolidayColourFg(*args, **kwargs) + + def GetHolidayColourBg(*args, **kwargs): + """ + GetHolidayColourBg(self) -> Colour + + Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is + used). + """ + return _calendar.CalendarCtrl_GetHolidayColourBg(*args, **kwargs) + + def GetAttr(*args, **kwargs): + """ + GetAttr(self, size_t day) -> CalendarDateAttr + + Returns the attribute for the given date (should be in the range + 1...31). The returned value may be None + """ + return _calendar.CalendarCtrl_GetAttr(*args, **kwargs) + + def SetAttr(*args, **kwargs): + """ + SetAttr(self, size_t day, CalendarDateAttr attr) + + Associates the attribute with the specified date (in the range + 1...31). If the attribute passed is None, the items attribute is + cleared. + """ + return _calendar.CalendarCtrl_SetAttr(*args, **kwargs) + + def SetHoliday(*args, **kwargs): + """ + SetHoliday(self, size_t day) + + Marks the specified day as being a holiday in the current month. + """ + return _calendar.CalendarCtrl_SetHoliday(*args, **kwargs) + + def ResetAttr(*args, **kwargs): + """ + ResetAttr(self, size_t day) + + Clears any attributes associated with the given day (in the range + 1...31). + """ + return _calendar.CalendarCtrl_ResetAttr(*args, **kwargs) + + def HitTest(*args, **kwargs): + """ + HitTest(Point pos) -> (result, date, weekday) + + 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. + """ + return _calendar.CalendarCtrl_HitTest(*args, **kwargs) + + def GetMonthControl(*args, **kwargs): + """ + GetMonthControl(self) -> Control + + Get the currently shown control for month. + """ + return _calendar.CalendarCtrl_GetMonthControl(*args, **kwargs) + + def GetYearControl(*args, **kwargs): + """ + GetYearControl(self) -> Control + + Get the currently shown control for year. + """ + return _calendar.CalendarCtrl_GetYearControl(*args, **kwargs) + + def GetClassDefaultAttributes(*args, **kwargs): + """ + 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): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = CalendarCtrl +_calendar.CalendarCtrl_swigregister(CalendarCtrlPtr) +cvar = _calendar.cvar +CalendarNameStr = cvar.CalendarNameStr + +def PreCalendarCtrl(*args, **kwargs): + """ + PreCalendarCtrl() -> CalendarCtrl + + Precreate a CalendarCtrl for 2-phase creation. + """ + val = _calendar.new_PreCalendarCtrl(*args, **kwargs) val.thisown = 1 - val._setOORInfo(val) return val +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 + 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 - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxCAL_SUNDAY_FIRST = calendarc.wxCAL_SUNDAY_FIRST -wxCAL_MONDAY_FIRST = calendarc.wxCAL_MONDAY_FIRST -wxCAL_SHOW_HOLIDAYS = calendarc.wxCAL_SHOW_HOLIDAYS -wxCAL_NO_YEAR_CHANGE = calendarc.wxCAL_NO_YEAR_CHANGE -wxCAL_NO_MONTH_CHANGE = calendarc.wxCAL_NO_MONTH_CHANGE -wxCAL_SEQUENTIAL_MONTH_SELECTION = calendarc.wxCAL_SEQUENTIAL_MONTH_SELECTION -wxCAL_SHOW_SURROUNDING_WEEKS = calendarc.wxCAL_SHOW_SURROUNDING_WEEKS -wxCAL_HITTEST_NOWHERE = calendarc.wxCAL_HITTEST_NOWHERE -wxCAL_HITTEST_HEADER = calendarc.wxCAL_HITTEST_HEADER -wxCAL_HITTEST_DAY = calendarc.wxCAL_HITTEST_DAY -wxCAL_HITTEST_INCMONTH = calendarc.wxCAL_HITTEST_INCMONTH -wxCAL_HITTEST_DECMONTH = calendarc.wxCAL_HITTEST_DECMONTH -wxCAL_HITTEST_SURROUNDING_WEEK = calendarc.wxCAL_HITTEST_SURROUNDING_WEEK -wxCAL_BORDER_NONE = calendarc.wxCAL_BORDER_NONE -wxCAL_BORDER_SQUARE = calendarc.wxCAL_BORDER_SQUARE -wxCAL_BORDER_ROUND = calendarc.wxCAL_BORDER_ROUND -wxEVT_CALENDAR_DOUBLECLICKED = calendarc.wxEVT_CALENDAR_DOUBLECLICKED -wxEVT_CALENDAR_SEL_CHANGED = calendarc.wxEVT_CALENDAR_SEL_CHANGED -wxEVT_CALENDAR_DAY_CHANGED = calendarc.wxEVT_CALENDAR_DAY_CHANGED -wxEVT_CALENDAR_MONTH_CHANGED = calendarc.wxEVT_CALENDAR_MONTH_CHANGED -wxEVT_CALENDAR_YEAR_CHANGED = calendarc.wxEVT_CALENDAR_YEAR_CHANGED -wxEVT_CALENDAR_WEEKDAY_CLICKED = calendarc.wxEVT_CALENDAR_WEEKDAY_CLICKED - - -#-------------- USER INCLUDE ----------------------- - - -# Stuff these names into the wx namespace so wxPyConstructObject can find them - -wx.wxCalendarEventPtr = wxCalendarEventPtr