X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fgtk_toolbox.py;h=02ea6a62a1aa47428d728849a80801f014775622;hb=b2490b64a669fa2ff0806009c19935afa062f22b;hp=fdfcc44c7075ff271a7643ee45c2e61d9c905722;hpb=468fa2b14a13f9847a670165759a317f901204e2;p=doneit diff --git a/src/gtk_toolbox.py b/src/gtk_toolbox.py index fdfcc44..02ea6a6 100644 --- a/src/gtk_toolbox.py +++ b/src/gtk_toolbox.py @@ -312,29 +312,35 @@ class MessageBox2(gtk.MessageDialog): class PopupCalendar(object): - def __init__(self, parent, eventTarget = coroutines.null_sink()): - self._eventTarget = eventTarget - - self.__calendar = gtk.Calendar() - self.__calendar.connect("day-selected-double-click", self._on_date_select) - - self.__popupWindow = gtk.Window(type = gtk.WINDOW_POPUP) - self.__popupWindow.set_title("") - self.__popupWindow.add(self.__calendar) - self.__popupWindow.set_transient_for(parent) - self.__popupWindow.set_modal(True) + def __init__(self, parent, displayDate): + self._displayDate = displayDate + + self._calendar = gtk.Calendar() + self._calendar.select_month(self._displayDate.month, self._displayDate.year) + self._calendar.select_day(self._displayDate.day) + self._calendar.set_display_options( + gtk.CALENDAR_SHOW_HEADING | + gtk.CALENDAR_SHOW_DAY_NAMES | + gtk.CALENDAR_NO_MONTH_CHANGE | + 0 + ) + self._calendar.connect("day-selected", self._on_day_selected) - def get_date(self): - year, month, day = self.__calendar.get_date() - month += 1 # Seems to be 0 indexed - return datetime.date(year, month, day) + self._popupWindow = gtk.Window() + self._popupWindow.set_title("") + self._popupWindow.add(self._calendar) + self._popupWindow.set_transient_for(parent) + self._popupWindow.set_modal(True) def run(self): - self.__popupWindow.show_all() + self._popupWindow.show_all() - def _on_date_select(self, *args): - self.__popupWindow.hide() - self._eventTarget.send((self, self.get_date())) + def _on_day_selected(self, *args): + try: + self._calendar.select_month(self._displayDate.month, self._displayDate.year) + self._calendar.select_day(self._displayDate.day) + except StandardError, e: + warnings.warn(e.message) class EditTaskDialog(object): @@ -514,4 +520,10 @@ if __name__ == "__main__": win.connect("destroy", lambda w: gtk.main_quit()) win.show_all() - gtk.main() + + if False: + cal = PopupCalendar(None, datetime.datetime.now()) + cal._popupWindow.connect("destroy", lambda w: gtk.main_quit()) + cal.run() + + gtk.main()