class WidgetClass(common.WidgetClass): def __init__(self, event): common.WidgetClass.__init__(self, event) ### hbox = gtk.HBox() pack(hbox, gtk.Label(_('Date'))) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def updateWidget(self): common.WidgetClass.updateWidget(self) self.dateInput.set_value(self.event.getDate()) def updateVars(self): common.WidgetClass.updateVars(self) self.event.setDate(*self.dateInput.get_value()) def modeComboChanged(self, obj=None ): ## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.dateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self, event): common.WidgetClass.__init__(self, event) ### hbox = gtk.HBox() pack(hbox, gtk.Label(_('Date'))) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox)
def __init__(self, rule): self.rule = rule ### gtk.HBox.__init__(self) ### self.dateInput = DateButton() pack(self, self.dateInput) ### pack(self, gtk.Label(' '+_('Time'))) self.timeInput = TimeButton() pack(self, self.timeInput)
def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('Repeat Every ')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.weeksSpin = IntSpinButton(1, 99999) pack(hbox, self.weeksSpin) pack(hbox, gtk.Label(' ' + _(' Weeks'))) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ######### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartInput = HourMinuteButton() self.dayTimeEndInput = HourMinuteButton() ## pack(hbox, self.dayTimeStartInput) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndInput) pack(self, hbox)
class WidgetClass(common.WidgetClass): def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### try: seperated = event.parent.showSeperatedYmdInputs except AttributeError: seperated = False if seperated: self.startDateInput = YearMonthDayBox() self.endDateInput = YearMonthDayBox() else: self.startDateInput = DateButton() self.endDateInput = DateButton() ###### hbox = gtk.HBox() label = gtk.Label(_('Start') + ': ') label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, self.startDateInput) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End') + ': ') label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, self.endDateInput) pack(self, hbox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def updateWidget(self): common.WidgetClass.updateWidget(self) self.startDateInput.set_value(self.event['start'].date) self.endDateInput.set_value(self.event['end'].date) def updateVars(self): ## FIXME common.WidgetClass.updateVars(self) self.event['start'].setDate(self.startDateInput.get_value()) self.event['end'].setDate(self.endDateInput.get_value()) def modeComboChanged(self, obj=None ): ## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.event.mode, newMode) self.endDateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self, event):## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('Repeat Every ')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.weeksSpin = IntSpinButton(1, 99999) pack(hbox, self.weeksSpin) pack(hbox, gtk.Label(' '+_(' Weeks'))) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ######### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartInput = HourMinuteButton() self.dayTimeEndInput = HourMinuteButton() ## pack(hbox, self.dayTimeStartInput) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndInput) pack(self, hbox)
def __init__(self, group): BaseWidgetClass.__init__(self, group) #### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) pack(hbox, label) self.sizeGroup.add_widget(label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) pack(self, hbox) ### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) pack(hbox, label) self.sizeGroup.add_widget(label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) pack(self, hbox) ###### exp = gtk.Expander(_('Online Service')) vbox = gtk.VBox() exp.add(vbox) sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ## hbox = gtk.HBox() label = gtk.Label(_('Account')) label.set_alignment(0, 0.5) pack(hbox, label) sizeGroup.add_widget(label) ## FIXME self.accountCombo = AccountCombo() pack(hbox, self.accountCombo) pack(vbox, hbox) ## hbox = gtk.HBox() label = gtk.Label(_('Remote Group')) label.set_alignment(0, 0.5) pack(hbox, label) sizeGroup.add_widget(label) ## FIXME accountGroupBox = AccountGroupBox(self.accountCombo) pack(hbox, accountGroupBox, 1, 1) pack(vbox, hbox) self.accountGroupCombo = accountGroupBox.combo ## pack(self, exp)
def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ## pack(hbox, gtk.Label(' ' + _('Time'))) self.startTimeInput = TimeButton() pack(hbox, self.startTimeInput) ## pack(self, hbox) ###### hbox = gtk.HBox() self.endTypeCombo = gtk.combo_box_new_text() for item in ('Duration', 'End'): self.endTypeCombo.append_text(_(item)) self.endTypeCombo.connect('changed', self.endTypeComboChanged) sizeGroup.add_widget(self.endTypeCombo) pack(hbox, self.endTypeCombo) #### self.durationBox = common.DurationInputBox() pack(hbox, self.durationBox, 1, 1) #### self.endDateHbox = gtk.HBox() self.endDateInput = DateButton() pack(self.endDateHbox, self.endDateInput) ## pack(self.endDateHbox, gtk.Label(' ' + _('Time'))) self.endTimeInput = TimeButton() pack(self.endDateHbox, self.endTimeInput) ## pack(hbox, self.endDateHbox, 1, 1) #### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ############# self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox)
def __init__(self, event):## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ## pack(hbox, gtk.Label(' '+_('Time'))) self.startTimeInput = TimeButton() pack(hbox, self.startTimeInput) ## pack(self, hbox) ###### hbox = gtk.HBox() self.endTypeCombo = gtk.combo_box_new_text() for item in ('Duration', 'End'): self.endTypeCombo.append_text(_(item)) self.endTypeCombo.connect('changed', self.endTypeComboChanged) sizeGroup.add_widget(self.endTypeCombo) pack(hbox, self.endTypeCombo) #### self.durationBox = common.DurationInputBox() pack(hbox, self.durationBox, 1, 1) #### self.endDateHbox = gtk.HBox() self.endDateInput = DateButton() pack(self.endDateHbox, self.endDateInput) ## pack(self.endDateHbox, gtk.Label(' '+_('Time'))) self.endTimeInput = TimeButton() pack(self.endDateHbox, self.endTimeInput) ## pack(hbox, self.endDateHbox, 1, 1) #### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ############# self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox)
def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### try: seperated = event.parent.showSeperatedYmdInputs except AttributeError: seperated = False if seperated: self.startDateInput = YearMonthDayBox() self.endDateInput = YearMonthDayBox() else: self.startDateInput = DateButton() self.endDateInput = DateButton() ###### hbox = gtk.HBox() label = gtk.Label(_('Start') + ': ') label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, self.startDateInput) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End') + ': ') label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, self.endDateInput) pack(self, hbox)
class WidgetClass(common.WidgetClass): def __init__(self, event): common.WidgetClass.__init__(self, event) ### hbox = gtk.HBox() pack(hbox, gtk.Label(_('Date'))) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def updateWidget(self): common.WidgetClass.updateWidget(self) self.dateInput.set_value(self.event.getDate()) def updateVars(self): common.WidgetClass.updateVars(self) self.event.setDate(*self.dateInput.get_value()) def modeComboChanged(self, obj=None):## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.dateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self, saveIcsFunc, defaultFileName): self.saveIcsFunc = saveIcsFunc gtk.Dialog.__init__(self, title=_('Export to %s')%'iCalendar', parent=None) self.set_has_separator(False) ######## hbox = gtk.HBox(spacing=2) pack(hbox, gtk.Label(_('From')+' ')) self.startDateInput = DateButton() pack(hbox, self.startDateInput) pack(hbox, gtk.Label(' '+_('To')+' ')) self.endDateInput = DateButton() pack(hbox, self.endDateInput) pack(self.vbox, hbox) #### year, month, day = ui.todayCell.dates[calTypes.primary] self.startDateInput.set_value((year, 1, 1)) self.endDateInput.set_value((year+1, 1, 1)) ######## self.fcw = gtk.FileChooserWidget(action=gtk.FILE_CHOOSER_ACTION_SAVE) pack(self.vbox, self.fcw, 1, 1) self.vbox.set_focus_child(self.fcw)## FIXME self.vbox.show_all() ## dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), 1, self.onDelete) dialog_add_button(self, gtk.STOCK_SAVE, _('_Save'), 2, self.save) ## self.connect('delete-event', self.onDelete) self.fcw.connect('file-activated', self.save)## not working FIXME ## try: self.fcw.set_current_folder(core.deskDir) except AttributeError:## PyGTK < 2.4 pass if not defaultFileName.endswith('.ics'): defaultFileName += '.ics' self.fcw.set_current_name(defaultFileName)
class ExportToIcsDialog(gtk.Dialog, MyDialog): def __init__(self, saveIcsFunc, defaultFileName): self.saveIcsFunc = saveIcsFunc gtk.Dialog.__init__(self, title=_('Export to %s')%'iCalendar', parent=None) self.set_has_separator(False) ######## hbox = gtk.HBox(spacing=2) pack(hbox, gtk.Label(_('From')+' ')) self.startDateInput = DateButton() pack(hbox, self.startDateInput) pack(hbox, gtk.Label(' '+_('To')+' ')) self.endDateInput = DateButton() pack(hbox, self.endDateInput) pack(self.vbox, hbox) #### year, month, day = ui.todayCell.dates[calTypes.primary] self.startDateInput.set_value((year, 1, 1)) self.endDateInput.set_value((year+1, 1, 1)) ######## self.fcw = gtk.FileChooserWidget(action=gtk.FILE_CHOOSER_ACTION_SAVE) pack(self.vbox, self.fcw, 1, 1) self.vbox.set_focus_child(self.fcw)## FIXME self.vbox.show_all() ## dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), 1, self.onDelete) dialog_add_button(self, gtk.STOCK_SAVE, _('_Save'), 2, self.save) ## self.connect('delete-event', self.onDelete) self.fcw.connect('file-activated', self.save)## not working FIXME ## try: self.fcw.set_current_folder(core.deskDir) except AttributeError:## PyGTK < 2.4 pass if not defaultFileName.endswith('.ics'): defaultFileName += '.ics' self.fcw.set_current_name(defaultFileName) def onDelete(self, widget=None, event=None):## hide(close) File Chooser Dialog self.destroy() return True def _save(self, path, startJd, endJd): self.saveIcsFunc(path, startJd, endJd) self.destroy() def save(self, widget=None): while gtk.events_pending(): gtk.main_iteration_do(False) path = self.fcw.get_filename() if path in (None, ''): return print('Exporting to ics file "%s"'%path) self.waitingDo( self._save, path, core.primary_to_jd(*self.startDateInput.get_value()), core.primary_to_jd(*self.endDateInput.get_value()), )
class WidgetClass(gtk.HBox): def __init__(self, rule): self.rule = rule ### gtk.HBox.__init__(self) ### self.dateInput = DateButton() pack(self, self.dateInput) ### pack(self, gtk.Label(' '+_('Time'))) self.timeInput = TimeButton() pack(self, self.timeInput) def updateWidget(self): self.dateInput.set_value(self.rule.date) self.timeInput.set_value(self.rule.time) def updateVars(self): self.rule.date = self.dateInput.get_value() self.rule.time = self.timeInput.get_value() def changeMode(self, mode): if mode == self.rule.getMode(): return self.updateVars() self.rule.changeMode(mode) self.updateWidget()
class WidgetClass(gtk.HBox): def __init__(self, rule): self.rule = rule ### gtk.HBox.__init__(self) ### self.dateInput = DateButton() pack(self, self.dateInput) ### pack(self, gtk.Label(' '+_('Time'))) self.timeInput = TimeButton() pack(self, self.timeInput) def updateWidget(self): self.dateInput.set_value(self.rule.date) self.timeInput.set_value(self.rule.time) def updateVars(self): self.rule.date = self.dateInput.get_value() self.rule.time = self.timeInput.get_value() def changeMode(self, mode): curMode = self.rule.getMode() if mode!=curMode: y, m, d = self.dateInput.get_value() self.dateInput.set_value(core.convert(y, m, d, curMode, mode))
class AdjusterDialog(gtk.Dialog): xpad = 15 def __init__(self): gtk.Dialog.__init__(self) self.set_title(_('Adjust System Date & Time'))##???????? self.set_icon(self.render_icon(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_BUTTON)) ######### self.buttonCancel = self.add_button(gtk.STOCK_CANCEL, 0) #self.buttonCancel.connect('clicked', lambda w: sys.exit(0)) self.buttonSet = self.add_button(_('Set System Time'), 1) #self.buttonSet.connect('clicked', self.setSysTimeClicked) ######### hbox = gtk.HBox() self.label_cur = gtk.Label(_('Current:')) pack(hbox, self.label_cur) pack(self.vbox, hbox) ######### hbox = gtk.HBox() self.radioMan = gtk.RadioButton(None, _('Set _Manully:'), True) self.radioMan.connect('clicked', self.radioManClicked) pack(hbox, self.radioMan) pack(self.vbox, hbox) ###### vb = gtk.VBox() sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## self.ckeckbEditTime = gtk.CheckButton(_('Edit Time')) self.editTime = False self.ckeckbEditTime.connect('clicked', self.ckeckbEditTimeClicked) pack(hbox, self.ckeckbEditTime) sg.add_widget(self.ckeckbEditTime) self.timeInput = TimeButton() ## ??????? options pack(hbox, self.timeInput) pack(vb, hbox) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## self.ckeckbEditDate = gtk.CheckButton(_('Edit Date')) self.editDate = False self.ckeckbEditDate.connect('clicked', self.ckeckbEditDateClicked) pack(hbox, self.ckeckbEditDate) sg.add_widget(self.ckeckbEditDate) self.dateInput = DateButton() ## ??????? options pack(hbox, self.dateInput) pack(vb, hbox) ### pack(self.vbox, vb, 0, 0, 10)#????? self.vboxMan = vb ###### hbox = gtk.HBox() self.radioNtp = gtk.RadioButton(self.radioMan, _('Set from _NTP:'), True) self.radioNtp.connect('clicked', self.radioNtpClicked) pack(hbox, self.radioNtp) pack(self.vbox, hbox) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## pack(hbox, gtk.Label(_('Server:')+' ')) combo = gtk.combo_box_entry_new_text() combo.get_child().connect('changed', self.updateSetButtonSensitive) pack(hbox, combo, 1, 1) self.ntpServerEntry = combo.get_child() for s in ui.ntpServers: combo.append_text(s) combo.set_active(0) self.hboxNtp = hbox pack(self.vbox, hbox) ###### self.radioManClicked() #self.radioNtpClicked() self.ckeckbEditTimeClicked() self.ckeckbEditDateClicked() ###### self.updateTimes() self.vbox.show_all() def radioManClicked(self, radio=None): if self.radioMan.get_active(): self.vboxMan.set_sensitive(True) self.hboxNtp.set_sensitive(False) else: self.vboxMan.set_sensitive(False) self.hboxNtp.set_sensitive(True) self.updateSetButtonSensitive() def radioNtpClicked(self, radio=None): if self.radioNtp.get_active(): self.vboxMan.set_sensitive(False) self.hboxNtp.set_sensitive(True) else: self.vboxMan.set_sensitive(True) self.hboxNtp.set_sensitive(False) self.updateSetButtonSensitive() def ckeckbEditTimeClicked(self, checkb=None): self.editTime = self.ckeckbEditTime.get_active() self.timeInput.set_sensitive(self.editTime) self.updateSetButtonSensitive() def ckeckbEditDateClicked(self, checkb=None): self.editDate = self.ckeckbEditDate.get_active() self.dateInput.set_sensitive(self.editDate) self.updateSetButtonSensitive() """def set_sys_time(self): if os.path.isfile('/bin/date'): pass##???????? elif sys.platform == 'win32': import win32api win32api.SetSystemTime()##???????? else: pass""" def updateTimes(self): dt = now()%1 timeout_add(iceil(1000*(1-dt)), self.updateTimes) #print('updateTimes', dt) lt = localtime() self.label_cur.set_label(_('Current:')+' %.4d/%.2d/%.2d - %.2d:%.2d:%.2d'%lt[:6]) if not self.editTime: self.timeInput.set_value(lt[3:6]) if not self.editDate: self.dateInput.set_value(lt[:3]) return False def updateSetButtonSensitive(self, widget=None): if self.radioMan.get_active(): self.buttonSet.set_sensitive(self.editTime or self.editDate) elif self.radioNtp.get_active(): self.buttonSet.set_sensitive(self.ntpServerEntry.get_text()!='') def setSysTimeClicked(self, widget=None): if self.radioMan.get_active(): if self.editTime: h, m, s = self.timeInput.get_value() if self.editDate: Y, M, D = self.dateInput.get_value() cmd = ['/bin/date', '-s', '%.4d/%.2d/%.2d %.2d:%.2d:%.2d'%(Y,M,D,h,m,s)] else: cmd = ['/bin/date', '-s', '%.2d:%.2d:%.2d'%(h, m, s)] else: if self.editDate: Y, M, D = self.dateInput.get_value() ##h, m, s = self.timeInput.get_value() h, m, s = localtime()[3:6] cmd = ['/bin/date', '-s', '%.4d/%.2d/%.2d %.2d:%.2d:%.2d'%(Y,M,D,h,m,s)] else: error_exit('No change!', self)#?????????? elif self.radioNtp.get_active(): cmd = ['ntpdate', self.ntpServerEntry.get_text()] #if os.path.isfile('/usr/sbin/ntpdate'): # cmd = ['/usr/sbin/ntpdate', self.ntpServerEntry.get_text()] #else: # error_exit('Could not find command /usr/sbin/ntpdate: no such file!', self)#?????????? else: error_exit('Not valid option!', self) inp, out, err = os.popen3(cmd) err_text = err.read() if err_text=='': sys.exit(0) else: error_exit(err_text, self)#??????????
def __init__(self): ## parent FIXME gtk.Dialog.__init__(self) self.set_title(_("Tune Hijri Monthes")) self.connect("delete-event", self.onDeleteEvent) ############ self.altMode = 0 self.altModeDesc = "Gregorian" ############ hbox = gtk.HBox() self.topLabel = gtk.Label() pack(hbox, self.topLabel) self.startDateInput = DateButton() self.startDateInput.set_editable(False) ## FIXME self.startDateInput.connect("changed", lambda widget: self.updateEndDates()) pack(hbox, self.startDateInput) pack(self.vbox, hbox) ############################ treev = gtk.TreeView() trees = gtk.ListStore(int, str, str, int, str) ## ym, yearShown, monthShown, monthLenCombo, endDateShown treev.set_model(trees) # treev.get_selection().connect('changed', self.plugTreevCursorChanged) # treev.connect('row-activated', self.plugTreevRActivate) # treev.connect('button-press-event', self.plugTreevButtonPress) ### swin = gtk.ScrolledWindow() swin.add(treev) swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Year"), cell, text=1) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Month"), cell, text=2) treev.append_column(col) ###### cell = gtk.CellRendererCombo() mLenModel = gtk.ListStore(int) mLenModel.append([29]) mLenModel.append([30]) cell.set_property("model", mLenModel) # cell.set_property('has-entry', False) cell.set_property("editable", True) cell.set_property("text-column", 0) cell.connect("edited", self.monthLenCellEdited) col = gtk.TreeViewColumn(_("Month Length"), cell, text=3) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("End Date"), cell, text=4) treev.append_column(col) ###### toolbar = gtk.Toolbar() toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) size = gtk.ICON_SIZE_SMALL_TOOLBAR ### tb = toolButtonFromStock(gtk.STOCK_ADD, size) set_tooltip(tb, _("Add")) tb.connect("clicked", self.addClicked) toolbar.insert(tb, -1) ### tb = toolButtonFromStock(gtk.STOCK_DELETE, size) set_tooltip(tb, _("Delete")) tb.connect("clicked", self.delClicked) toolbar.insert(tb, -1) ###### self.treev = treev self.trees = trees ##### mainHbox = gtk.HBox() pack(mainHbox, swin, 1, 1) pack(mainHbox, toolbar) pack(self.vbox, mainHbox, 1, 1) ###### dialog_add_button(self, gtk.STOCK_OK, _("_OK"), gtk.RESPONSE_OK) dialog_add_button(self, gtk.STOCK_CANCEL, _("_Cancel"), gtk.RESPONSE_CANCEL) ## resetB = self.add_button(gtk.STOCK_UNDO, gtk.RESPONSE_NONE) resetB.set_label(_("_Reset to Defaults")) resetB.set_image(gtk.image_new_from_stock(gtk.STOCK_UNDO, gtk.ICON_SIZE_BUTTON)) resetB.connect("clicked", self.resetToDefaults) ## self.connect("response", self.onResponse) # print(dir(self.get_action_area())) # self.get_action_area().set_homogeneous(False) ###### self.vbox.show_all()
class EditDbDialog(gtk.Dialog): def __init__(self): ## parent FIXME gtk.Dialog.__init__(self) self.set_title(_("Tune Hijri Monthes")) self.connect("delete-event", self.onDeleteEvent) ############ self.altMode = 0 self.altModeDesc = "Gregorian" ############ hbox = gtk.HBox() self.topLabel = gtk.Label() pack(hbox, self.topLabel) self.startDateInput = DateButton() self.startDateInput.set_editable(False) ## FIXME self.startDateInput.connect("changed", lambda widget: self.updateEndDates()) pack(hbox, self.startDateInput) pack(self.vbox, hbox) ############################ treev = gtk.TreeView() trees = gtk.ListStore(int, str, str, int, str) ## ym, yearShown, monthShown, monthLenCombo, endDateShown treev.set_model(trees) # treev.get_selection().connect('changed', self.plugTreevCursorChanged) # treev.connect('row-activated', self.plugTreevRActivate) # treev.connect('button-press-event', self.plugTreevButtonPress) ### swin = gtk.ScrolledWindow() swin.add(treev) swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Year"), cell, text=1) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Month"), cell, text=2) treev.append_column(col) ###### cell = gtk.CellRendererCombo() mLenModel = gtk.ListStore(int) mLenModel.append([29]) mLenModel.append([30]) cell.set_property("model", mLenModel) # cell.set_property('has-entry', False) cell.set_property("editable", True) cell.set_property("text-column", 0) cell.connect("edited", self.monthLenCellEdited) col = gtk.TreeViewColumn(_("Month Length"), cell, text=3) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_("End Date"), cell, text=4) treev.append_column(col) ###### toolbar = gtk.Toolbar() toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) size = gtk.ICON_SIZE_SMALL_TOOLBAR ### tb = toolButtonFromStock(gtk.STOCK_ADD, size) set_tooltip(tb, _("Add")) tb.connect("clicked", self.addClicked) toolbar.insert(tb, -1) ### tb = toolButtonFromStock(gtk.STOCK_DELETE, size) set_tooltip(tb, _("Delete")) tb.connect("clicked", self.delClicked) toolbar.insert(tb, -1) ###### self.treev = treev self.trees = trees ##### mainHbox = gtk.HBox() pack(mainHbox, swin, 1, 1) pack(mainHbox, toolbar) pack(self.vbox, mainHbox, 1, 1) ###### dialog_add_button(self, gtk.STOCK_OK, _("_OK"), gtk.RESPONSE_OK) dialog_add_button(self, gtk.STOCK_CANCEL, _("_Cancel"), gtk.RESPONSE_CANCEL) ## resetB = self.add_button(gtk.STOCK_UNDO, gtk.RESPONSE_NONE) resetB.set_label(_("_Reset to Defaults")) resetB.set_image(gtk.image_new_from_stock(gtk.STOCK_UNDO, gtk.ICON_SIZE_BUTTON)) resetB.connect("clicked", self.resetToDefaults) ## self.connect("response", self.onResponse) # print(dir(self.get_action_area())) # self.get_action_area().set_homogeneous(False) ###### self.vbox.show_all() def resetToDefaults(self, widget): if isfile(monthDb.userDbPath): os.remove(monthDb.userDbPath) monthDb.load() self.updateWidget() return True def addClicked(self, obj=None): last = self.trees[-1] ## 0 ym ## 1 yearLocale ## 2 monthLocale ## 3 mLen ## 4 endDate = '' ym = last[0] + 1 mLen = 59 - last[3] year, month0 = divmod(ym, 12) self.trees.append((ym, _(year), _(monthName[month0]), mLen, "")) self.updateEndDates() self.selectLastRow() def selectLastRow(self): lastPath = (len(self.trees) - 1,) self.treev.scroll_to_cell(lastPath) self.treev.set_cursor(lastPath) def delClicked(self, obj=None): if len(self.trees) > 1: del self.trees[-1] self.selectLastRow() def updateWidget(self): # for index, module in calTypes.iterIndexModule(): # if module.name != 'hijri': for mode in calTypes.active: modeDesc = calTypes[mode].desc if not "hijri" in modeDesc.lower(): self.altMode = mode self.altModeDesc = modeDesc break self.topLabel.set_label( _("Start") + ": " + dateLocale(*monthDb.startDate) + " " + _("Equals to") + " %s" % _(self.altModeDesc) ) self.startDateInput.set_value(jd_to(monthDb.startJd, self.altMode)) ########### selectYm = getCurrentYm() - 1 ## previous month selectIndex = None self.trees.clear() for index, ym, mLen in monthDb.getMonthLenList(): if ym == selectYm: selectIndex = index year, month0 = divmod(ym, 12) self.trees.append([ym, _(year), _(monthName[month0]), mLen, ""]) self.updateEndDates() ######## if selectIndex is not None: self.treev.scroll_to_cell(str(selectIndex)) self.treev.set_cursor(str(selectIndex)) def updateEndDates(self): y, m, d = self.startDateInput.get_value() jd0 = to_jd(y, m, d, self.altMode) - 1 for row in self.trees: mLen = row[3] jd0 += mLen row[4] = dateLocale(*jd_to(jd0, self.altMode)) def monthLenCellEdited(self, combo, path_string, new_text): editIndex = int(path_string) mLen = int(new_text) if not mLen in (29, 30): return mLenPrev = self.trees[editIndex][3] delta = mLen - mLenPrev if delta == 0: return n = len(self.trees) self.trees[editIndex][3] = mLen if delta == 1: for i in range(editIndex + 1, n): if self.trees[i][3] == 30: self.trees[i][3] = 29 break elif delta == -1: for i in range(editIndex + 1, n): if self.trees[i][3] == 29: self.trees[i][3] = 30 break self.updateEndDates() def updateVars(self): y, m, d = self.startDateInput.get_value() monthDb.endJd = monthDb.startJd = to_jd(y, m, d, self.altMode) monthDb.monthLenByYm = {} for row in self.trees: ym = row[0] mLen = row[3] monthDb.monthLenByYm[ym] = mLen monthDb.endJd += mLen monthDb.save() def run(self): monthDb.load() self.updateWidget() self.treev.grab_focus() gtk.Dialog.run(self) def onResponse(self, dialog, response_id): if response_id == gtk.RESPONSE_OK: self.updateVars() self.destroy() elif response_id == gtk.RESPONSE_CANCEL: self.destroy() return True def onDeleteEvent(self, dialog, gevent): self.destroy() return True
class WidgetClass(BaseWidgetClass): def __init__(self, group): BaseWidgetClass.__init__(self, group) #### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) pack(hbox, label) self.sizeGroup.add_widget(label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) pack(self, hbox) ### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) pack(hbox, label) self.sizeGroup.add_widget(label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) pack(self, hbox) ###### exp = gtk.Expander(_('Online Service')) vbox = gtk.VBox() exp.add(vbox) sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ## hbox = gtk.HBox() label = gtk.Label(_('Account')) label.set_alignment(0, 0.5) pack(hbox, label) sizeGroup.add_widget(label) ## FIXME self.accountCombo = AccountCombo() pack(hbox, self.accountCombo) pack(vbox, hbox) ## hbox = gtk.HBox() label = gtk.Label(_('Remote Group')) label.set_alignment(0, 0.5) pack(hbox, label) sizeGroup.add_widget(label) ## FIXME accountGroupBox = AccountGroupBox(self.accountCombo) pack(hbox, accountGroupBox, 1, 1) pack(vbox, hbox) self.accountGroupCombo = accountGroupBox.combo ## pack(self, exp) def updateWidget(self): BaseWidgetClass.updateWidget(self) self.startDateInput.set_value(jd_to(self.group.startJd, self.group.mode)) self.endDateInput.set_value(jd_to(self.group.endJd, self.group.mode)) ### if self.group.remoteIds: aid, gid = self.group.remoteIds else: aid, gid = None, None self.accountCombo.set_active(aid) self.accountGroupCombo.set_active(gid) def updateVars(self): BaseWidgetClass.updateVars(self) self.group.startJd = self.startDateInput.get_jd(self.group.mode) self.group.endJd = self.endDateInput.get_jd(self.group.mode) ### aid = self.accountCombo.get_active() if aid: gid = self.accountGroupCombo.get_active() self.group.remoteIds = aid, gid else: self.group.remoteIds = None def modeComboChanged(self, obj=None): newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.group.mode, newMode) self.endDateInput.changeMode(self.group.mode, newMode) self.group.mode = newMode
def __init__(self, event): ## FIXME gtk.VBox.__init__(self) self.event = event assert event.parent.name == "universityTerm" ## FIXME sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ##### if not event.parent.courses: showError(event.parent.noCourseError) raise RuntimeError("No courses added") self.courseIds = [] self.courseNames = [] combo = gtk.combo_box_new_text() for course in event.parent.courses: self.courseIds.append(course[0]) self.courseNames.append(course[1]) combo.append_text(course[1]) # combo.connect('changed', self.updateSummary) self.courseCombo = combo ## hbox = gtk.HBox() label = gtk.Label(_("Course")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, combo) ## pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Date")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Time")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartCombo = HourMinuteButton() self.dayTimeEndCombo = HourMinuteButton() ## # self.dayTimeStartCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) # self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) ## pack(hbox, self.dayTimeStartCombo) pack(hbox, gtk.Label(" " + _("to") + " ")) pack(hbox, self.dayTimeEndCombo) pack(self, hbox) ########### # hbox = gtk.HBox() # label = gtk.Label(_('Summary')) # label.set_alignment(0, 0.5) # sizeGroup.add_widget(label) # pack(hbox, label) # self.summaryEntry = gtk.Entry() # pack(hbox, self.summaryEntry, 1, 1) # pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Description")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.descriptionInput = TextFrame() pack(hbox, self.descriptionInput, 1, 1) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Icon")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.iconSelect = IconSelectButton() # print(join(pixDir, self.icon)) pack(hbox, self.iconSelect) pack(hbox, gtk.Label(""), 1, 1) pack(self, hbox) ###### self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ###### # self.filesBox = common.FilesBox(self.event) # pack(self, self.filesBox) ###### self.courseCombo.set_active(0)
class WidgetClass(common.WidgetClass): def __init__(self, event):## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('Repeat Every ')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.weeksSpin = IntSpinButton(1, 99999) pack(hbox, self.weeksSpin) pack(hbox, gtk.Label(' '+_(' Weeks'))) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ######### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartInput = HourMinuteButton() self.dayTimeEndInput = HourMinuteButton() ## pack(hbox, self.dayTimeStartInput) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndInput) pack(self, hbox) ############# #self.notificationBox = common.NotificationBox(event) #pack(self, self.notificationBox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def updateWidget(self):## FIXME common.WidgetClass.updateWidget(self) mode = self.event.mode ### self.startDateInput.set_value(jd_to(self.event.getStartJd(), mode)) self.weeksSpin.set_value(self.event['cycleWeeks'].weeks) self.endDateInput.set_value(jd_to(self.event.getEndJd(), mode)) ### timeRangeRule = self.event['dayTimeRange'] self.dayTimeStartInput.set_value(timeRangeRule.dayTimeStart) self.dayTimeEndInput.set_value(timeRangeRule.dayTimeEnd) def updateVars(self):## FIXME common.WidgetClass.updateVars(self) self.event['start'].setDate(self.startDateInput.get_value()) self.event['end'].setDate(self.endDateInput.get_value()) self.event['cycleWeeks'].setData(self.weeksSpin.get_value()) ### self.event['dayTimeRange'].setRange( self.dayTimeStartInput.get_value(), self.dayTimeEndInput.get_value(), ) def modeComboChanged(self, obj=None):## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.event.mode, newMode) self.endDateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self): gtk.Dialog.__init__(self) self.set_title(_('Adjust System Date & Time'))##???????? self.set_icon(self.render_icon(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_BUTTON)) ######### self.buttonCancel = self.add_button(gtk.STOCK_CANCEL, 0) #self.buttonCancel.connect('clicked', lambda w: sys.exit(0)) self.buttonSet = self.add_button(_('Set System Time'), 1) #self.buttonSet.connect('clicked', self.setSysTimeClicked) ######### hbox = gtk.HBox() self.label_cur = gtk.Label(_('Current:')) pack(hbox, self.label_cur) pack(self.vbox, hbox) ######### hbox = gtk.HBox() self.radioMan = gtk.RadioButton(None, _('Set _Manully:'), True) self.radioMan.connect('clicked', self.radioManClicked) pack(hbox, self.radioMan) pack(self.vbox, hbox) ###### vb = gtk.VBox() sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## self.ckeckbEditTime = gtk.CheckButton(_('Edit Time')) self.editTime = False self.ckeckbEditTime.connect('clicked', self.ckeckbEditTimeClicked) pack(hbox, self.ckeckbEditTime) sg.add_widget(self.ckeckbEditTime) self.timeInput = TimeButton() ## ??????? options pack(hbox, self.timeInput) pack(vb, hbox) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## self.ckeckbEditDate = gtk.CheckButton(_('Edit Date')) self.editDate = False self.ckeckbEditDate.connect('clicked', self.ckeckbEditDateClicked) pack(hbox, self.ckeckbEditDate) sg.add_widget(self.ckeckbEditDate) self.dateInput = DateButton() ## ??????? options pack(hbox, self.dateInput) pack(vb, hbox) ### pack(self.vbox, vb, 0, 0, 10)#????? self.vboxMan = vb ###### hbox = gtk.HBox() self.radioNtp = gtk.RadioButton(self.radioMan, _('Set from _NTP:'), True) self.radioNtp.connect('clicked', self.radioNtpClicked) pack(hbox, self.radioNtp) pack(self.vbox, hbox) ### hbox = gtk.HBox() ## l = gtk.Label('') l.set_property('width-request', self.xpad) pack(hbox, l) ## pack(hbox, gtk.Label(_('Server:')+' ')) combo = gtk.combo_box_entry_new_text() combo.get_child().connect('changed', self.updateSetButtonSensitive) pack(hbox, combo, 1, 1) self.ntpServerEntry = combo.get_child() for s in ui.ntpServers: combo.append_text(s) combo.set_active(0) self.hboxNtp = hbox pack(self.vbox, hbox) ###### self.radioManClicked() #self.radioNtpClicked() self.ckeckbEditTimeClicked() self.ckeckbEditDateClicked() ###### self.updateTimes() self.vbox.show_all()
def __init__(self, rule): self.rule = rule DateButton.__init__(self)
class WidgetClass(common.WidgetClass): def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ## pack(self, hbox) ###### hbox = gtk.HBox() self.endTypeCombo = gtk.combo_box_new_text() for item in ('Duration', 'End'): self.endTypeCombo.append_text(_(item)) self.endTypeCombo.connect('changed', self.endTypeComboChanged) sizeGroup.add_widget(self.endTypeCombo) pack(hbox, self.endTypeCombo) #### self.durationBox = gtk.HBox() self.durationSpin = IntSpinButton(1, 999) pack(self.durationBox, self.durationSpin) pack(self.durationBox, gtk.Label(_(' days'))) pack(hbox, self.durationBox) #### self.endDateInput = DateButton() pack(hbox, self.endDateInput) #### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ############# self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def endTypeComboChanged(self, combo=None): active = self.endTypeCombo.get_active() if active == 0: ## duration self.durationBox.show() self.endDateInput.hide() elif active == 1: ## end date self.durationBox.hide() self.endDateInput.show() else: raise RuntimeError def updateWidget(self): ## FIXME common.WidgetClass.updateWidget(self) mode = self.event.mode ### startJd = self.event.getJd() self.startDateInput.set_value(jd_to(startJd, mode)) ### endType, endValue = self.event.getEnd() if endType == 'duration': self.endTypeCombo.set_active(0) self.durationSpin.set_value(endValue) self.endDateInput.set_value(jd_to(self.event.getEndJd(), mode)) ## FIXME elif endType == 'date': self.endTypeCombo.set_active(1) self.endDateInput.set_value(endValue) else: raise RuntimeError self.endTypeComboChanged() def updateVars(self): ## FIXME common.WidgetClass.updateVars(self) self.event.setStartDate(self.startDateInput.get_value()) ### active = self.endTypeCombo.get_active() if active == 0: self.event.setEnd('duration', self.durationSpin.get_value()) elif active == 1: self.event.setEnd( 'date', self.endDateInput.get_value(), ) def modeComboChanged(self, obj=None ): ## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.event.mode, newMode) self.endDateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
class WidgetClass(gtk.VBox): def __init__(self, event):## FIXME gtk.VBox.__init__(self) self.event = event assert event.parent.name == 'universityTerm' ## FIXME sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ##### if not event.parent.courses: showError(event.parent.noCourseError) raise RuntimeError('No courses added') self.courseIds = [] self.courseNames = [] combo = gtk.combo_box_new_text() for course in event.parent.courses: self.courseIds.append(course[0]) self.courseNames.append(course[1]) combo.append_text(course[1]) #combo.connect('changed', self.updateSummary) self.courseCombo = combo ## hbox = gtk.HBox() label = gtk.Label(_('Course')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, combo) ## pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Date')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartCombo = HourMinuteButton() self.dayTimeEndCombo = HourMinuteButton() ## #self.dayTimeStartCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) #self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) ## pack(hbox, self.dayTimeStartCombo) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndCombo) pack(self, hbox) ########### #hbox = gtk.HBox() #label = gtk.Label(_('Summary')) #label.set_alignment(0, 0.5) #sizeGroup.add_widget(label) #pack(hbox, label) #self.summaryEntry = gtk.Entry() #pack(hbox, self.summaryEntry, 1, 1) #pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Description')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.descriptionInput = TextFrame() pack(hbox, self.descriptionInput, 1, 1) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Icon')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.iconSelect = IconSelectButton() #print(join(pixDir, self.icon)) pack(hbox, self.iconSelect) pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ###### #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) ###### self.courseCombo.set_active(0) #self.updateSummary() def focusSummary(self): pass #def updateSummary(self, widget=None): # courseIndex = self.courseCombo.get_active() # summary = _('%s Exam')%self.courseNames[courseIndex] # self.summaryEntry.set_text(summary) # self.event.summary = summary def updateWidget(self):## FIXME if self.event.courseId is None: pass else: self.courseCombo.set_active(self.courseIds.index(self.event.courseId)) ## self.dateInput.set_value(self.event.getDate()) ## timeRangeRule = self.event['dayTimeRange'] self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart) self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd) #### #self.summaryEntry.set_text(self.event.summary) self.descriptionInput.set_text(self.event.description) self.iconSelect.set_filename(self.event.icon) #### self.notificationBox.updateWidget() #### #self.filesBox.updateWidget() def updateVars(self):## FIXME courseIndex = self.courseCombo.get_active() if courseIndex is None: showError(_('No course is selected'), self) raise RuntimeError('No courses is selected') else: self.event.courseId = self.courseIds[courseIndex] ## self.event.setDate(*tuple(self.dateInput.get_value())) ## self.event['dayTimeRange'].setRange( self.dayTimeStartCombo.get_value(), self.dayTimeEndCombo.get_value(), ) #### #self.event.summary = self.summaryEntry.get_text() self.event.description = self.descriptionInput.get_text() self.event.icon = self.iconSelect.get_filename() #### self.notificationBox.updateVars() self.event.updateSummary() def modeComboChanged(self, obj=None):## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.dateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
class WidgetClass(common.WidgetClass): def __init__(self, event): ## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('Repeat Every ')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.weeksSpin = IntSpinButton(1, 99999) pack(hbox, self.weeksSpin) pack(hbox, gtk.Label(' ' + _(' Weeks'))) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### hbox = gtk.HBox() label = gtk.Label(_('End')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.endDateInput = DateButton() pack(hbox, self.endDateInput) ### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ######### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartInput = HourMinuteButton() self.dayTimeEndInput = HourMinuteButton() ## pack(hbox, self.dayTimeStartInput) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndInput) pack(self, hbox) ############# #self.notificationBox = common.NotificationBox(event) #pack(self, self.notificationBox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def updateWidget(self): ## FIXME common.WidgetClass.updateWidget(self) mode = self.event.mode ### self.startDateInput.set_value(jd_to(self.event.getStartJd(), mode)) self.weeksSpin.set_value(self.event['cycleWeeks'].weeks) self.endDateInput.set_value(jd_to(self.event.getEndJd(), mode)) ### timeRangeRule = self.event['dayTimeRange'] self.dayTimeStartInput.set_value(timeRangeRule.dayTimeStart) self.dayTimeEndInput.set_value(timeRangeRule.dayTimeEnd) def updateVars(self): ## FIXME common.WidgetClass.updateVars(self) self.event['start'].setDate(self.startDateInput.get_value()) self.event['end'].setDate(self.endDateInput.get_value()) self.event['cycleWeeks'].setData(self.weeksSpin.get_value()) ### self.event['dayTimeRange'].setRange( self.dayTimeStartInput.get_value(), self.dayTimeEndInput.get_value(), ) def modeComboChanged(self, obj=None ): ## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.event.mode, newMode) self.endDateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self, event):## FIXME gtk.VBox.__init__(self) self.event = event assert event.parent.name == 'universityTerm' ## FIXME sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ##### if not event.parent.courses: showError(event.parent.noCourseError) raise RuntimeError('No courses added') self.courseIds = [] self.courseNames = [] combo = gtk.combo_box_new_text() for course in event.parent.courses: self.courseIds.append(course[0]) self.courseNames.append(course[1]) combo.append_text(course[1]) #combo.connect('changed', self.updateSummary) self.courseCombo = combo ## hbox = gtk.HBox() label = gtk.Label(_('Course')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, combo) ## pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Date')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Time')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartCombo = HourMinuteButton() self.dayTimeEndCombo = HourMinuteButton() ## #self.dayTimeStartCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) #self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) ## pack(hbox, self.dayTimeStartCombo) pack(hbox, gtk.Label(' ' + _('to') + ' ')) pack(hbox, self.dayTimeEndCombo) pack(self, hbox) ########### #hbox = gtk.HBox() #label = gtk.Label(_('Summary')) #label.set_alignment(0, 0.5) #sizeGroup.add_widget(label) #pack(hbox, label) #self.summaryEntry = gtk.Entry() #pack(hbox, self.summaryEntry, 1, 1) #pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Description')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.descriptionInput = TextFrame() pack(hbox, self.descriptionInput, 1, 1) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_('Icon')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.iconSelect = IconSelectButton() #print(join(pixDir, self.icon)) pack(hbox, self.iconSelect) pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ###### self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ###### #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) ###### self.courseCombo.set_active(0)
class EditDbDialog(gtk.Dialog): def __init__(self): ## parent FIXME gtk.Dialog.__init__(self) self.set_title(_('Tune Hijri Monthes')) self.connect('delete-event', self.onDeleteEvent) ############ self.altMode = 0 self.altModeDesc = 'Gregorian' ############ hbox = gtk.HBox() self.topLabel = gtk.Label() pack(hbox, self.topLabel) self.startDateInput = DateButton() self.startDateInput.set_editable(False) ## FIXME self.startDateInput.connect('changed', lambda widget: self.updateEndDates()) pack(hbox, self.startDateInput) pack(self.vbox, hbox) ############################ treev = gtk.TreeView() trees = gtk.ListStore( int, str, str, int, str) ## ym, yearShown, monthShown, monthLenCombo, endDateShown treev.set_model(trees) #treev.get_selection().connect('changed', self.plugTreevCursorChanged) #treev.connect('row-activated', self.plugTreevRActivate) #treev.connect('button-press-event', self.plugTreevButtonPress) ### swin = gtk.ScrolledWindow() swin.add(treev) swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('Year'), cell, text=1) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('Month'), cell, text=2) treev.append_column(col) ###### cell = gtk.CellRendererCombo() mLenModel = gtk.ListStore(int) mLenModel.append([29]) mLenModel.append([30]) cell.set_property('model', mLenModel) #cell.set_property('has-entry', False) cell.set_property('editable', True) cell.set_property('text-column', 0) cell.connect('edited', self.monthLenCellEdited) col = gtk.TreeViewColumn(_('Month Length'), cell, text=3) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('End Date'), cell, text=4) treev.append_column(col) ###### toolbar = gtk.Toolbar() toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) size = gtk.ICON_SIZE_SMALL_TOOLBAR ### tb = toolButtonFromStock(gtk.STOCK_ADD, size) set_tooltip(tb, _('Add')) tb.connect('clicked', self.addClicked) toolbar.insert(tb, -1) ### tb = toolButtonFromStock(gtk.STOCK_DELETE, size) set_tooltip(tb, _('Delete')) tb.connect('clicked', self.delClicked) toolbar.insert(tb, -1) ###### self.treev = treev self.trees = trees ##### mainHbox = gtk.HBox() pack(mainHbox, swin, 1, 1) pack(mainHbox, toolbar) pack(self.vbox, mainHbox, 1, 1) ###### dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK) dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.RESPONSE_CANCEL) ## resetB = self.add_button(gtk.STOCK_UNDO, gtk.RESPONSE_NONE) resetB.set_label(_('_Reset to Defaults')) resetB.set_image( gtk.image_new_from_stock(gtk.STOCK_UNDO, gtk.ICON_SIZE_BUTTON)) resetB.connect('clicked', self.resetToDefaults) ## self.connect('response', self.onResponse) #print(dir(self.get_action_area())) #self.get_action_area().set_homogeneous(False) ###### self.vbox.show_all() def resetToDefaults(self, widget): if isfile(monthDb.userDbPath): os.remove(monthDb.userDbPath) monthDb.load() self.updateWidget() return True def addClicked(self, obj=None): last = self.trees[-1] ## 0 ym ## 1 yearLocale ## 2 monthLocale ## 3 mLen ## 4 endDate = '' ym = last[0] + 1 mLen = 59 - last[3] year, month0 = divmod(ym, 12) self.trees.append(( ym, _(year), _(monthName[month0]), mLen, '', )) self.updateEndDates() self.selectLastRow() def selectLastRow(self): lastPath = (len(self.trees) - 1, ) self.treev.scroll_to_cell(lastPath) self.treev.set_cursor(lastPath) def delClicked(self, obj=None): if len(self.trees) > 1: del self.trees[-1] self.selectLastRow() def updateWidget(self): #for index, module in calTypes.iterIndexModule(): # if module.name != 'hijri': for mode in calTypes.active: modeDesc = calTypes[mode].desc if not 'hijri' in modeDesc.lower(): self.altMode = mode self.altModeDesc = modeDesc break self.topLabel.set_label( _('Start') + ': ' + dateLocale(*monthDb.startDate) + ' ' + _('Equals to') + ' %s' % _(self.altModeDesc)) self.startDateInput.set_value(jd_to(monthDb.startJd, self.altMode)) ########### selectYm = getCurrentYm() - 1 ## previous month selectIndex = None self.trees.clear() for index, ym, mLen in monthDb.getMonthLenList(): if ym == selectYm: selectIndex = index year, month0 = divmod(ym, 12) self.trees.append([ ym, _(year), _(monthName[month0]), mLen, '', ]) self.updateEndDates() ######## if selectIndex is not None: self.treev.scroll_to_cell(str(selectIndex)) self.treev.set_cursor(str(selectIndex)) def updateEndDates(self): y, m, d = self.startDateInput.get_value() jd0 = to_jd(y, m, d, self.altMode) - 1 for row in self.trees: mLen = row[3] jd0 += mLen row[4] = dateLocale(*jd_to(jd0, self.altMode)) def monthLenCellEdited(self, combo, path_string, new_text): editIndex = int(path_string) mLen = int(new_text) if not mLen in (29, 30): return mLenPrev = self.trees[editIndex][3] delta = mLen - mLenPrev if delta == 0: return n = len(self.trees) self.trees[editIndex][3] = mLen if delta == 1: for i in range(editIndex + 1, n): if self.trees[i][3] == 30: self.trees[i][3] = 29 break elif delta == -1: for i in range(editIndex + 1, n): if self.trees[i][3] == 29: self.trees[i][3] = 30 break self.updateEndDates() def updateVars(self): y, m, d = self.startDateInput.get_value() monthDb.endJd = monthDb.startJd = to_jd(y, m, d, self.altMode) monthDb.monthLenByYm = {} for row in self.trees: ym = row[0] mLen = row[3] monthDb.monthLenByYm[ym] = mLen monthDb.endJd += mLen monthDb.save() def run(self): monthDb.load() self.updateWidget() self.treev.grab_focus() gtk.Dialog.run(self) def onResponse(self, dialog, response_id): if response_id == gtk.RESPONSE_OK: self.updateVars() self.destroy() elif response_id == gtk.RESPONSE_CANCEL: self.destroy() return True def onDeleteEvent(self, dialog, gevent): self.destroy() return True
class WidgetClass(gtk.VBox): def __init__(self, event): ## FIXME gtk.VBox.__init__(self) self.event = event assert event.parent.name == "universityTerm" ## FIXME sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ##### if not event.parent.courses: showError(event.parent.noCourseError) raise RuntimeError("No courses added") self.courseIds = [] self.courseNames = [] combo = gtk.combo_box_new_text() for course in event.parent.courses: self.courseIds.append(course[0]) self.courseNames.append(course[1]) combo.append_text(course[1]) # combo.connect('changed', self.updateSummary) self.courseCombo = combo ## hbox = gtk.HBox() label = gtk.Label(_("Course")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) pack(hbox, combo) ## pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Date")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.dateInput = DateButton() pack(hbox, self.dateInput) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Time")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) ## self.dayTimeStartCombo = HourMinuteButton() self.dayTimeEndCombo = HourMinuteButton() ## # self.dayTimeStartCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) # self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_LTR) ## pack(hbox, self.dayTimeStartCombo) pack(hbox, gtk.Label(" " + _("to") + " ")) pack(hbox, self.dayTimeEndCombo) pack(self, hbox) ########### # hbox = gtk.HBox() # label = gtk.Label(_('Summary')) # label.set_alignment(0, 0.5) # sizeGroup.add_widget(label) # pack(hbox, label) # self.summaryEntry = gtk.Entry() # pack(hbox, self.summaryEntry, 1, 1) # pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Description")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.descriptionInput = TextFrame() pack(hbox, self.descriptionInput, 1, 1) pack(self, hbox) ##### hbox = gtk.HBox() label = gtk.Label(_("Icon")) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.iconSelect = IconSelectButton() # print(join(pixDir, self.icon)) pack(hbox, self.iconSelect) pack(hbox, gtk.Label(""), 1, 1) pack(self, hbox) ###### self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ###### # self.filesBox = common.FilesBox(self.event) # pack(self, self.filesBox) ###### self.courseCombo.set_active(0) # self.updateSummary() def focusSummary(self): pass # def updateSummary(self, widget=None): # courseIndex = self.courseCombo.get_active() # summary = _('%s Exam')%self.courseNames[courseIndex] # self.summaryEntry.set_text(summary) # self.event.summary = summary def updateWidget(self): ## FIXME if self.event.courseId is None: pass else: self.courseCombo.set_active(self.courseIds.index(self.event.courseId)) ## self.dateInput.set_value(self.event.getDate()) ## timeRangeRule = self.event["dayTimeRange"] self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart) self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd) #### # self.summaryEntry.set_text(self.event.summary) self.descriptionInput.set_text(self.event.description) self.iconSelect.set_filename(self.event.icon) #### self.notificationBox.updateWidget() #### # self.filesBox.updateWidget() def updateVars(self): ## FIXME courseIndex = self.courseCombo.get_active() if courseIndex is None: showError(_("No course is selected"), self) raise RuntimeError("No courses is selected") else: self.event.courseId = self.courseIds[courseIndex] ## self.event.setDate(*tuple(self.dateInput.get_value())) ## self.event["dayTimeRange"].setRange(self.dayTimeStartCombo.get_value(), self.dayTimeEndCombo.get_value()) #### # self.event.summary = self.summaryEntry.get_text() self.event.description = self.descriptionInput.get_text() self.event.icon = self.iconSelect.get_filename() #### self.notificationBox.updateVars() self.event.updateSummary() def modeComboChanged(self, obj=None): ## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.dateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode
def __init__(self): ## parent FIXME gtk.Dialog.__init__(self) self.set_title(_('Tune Hijri Monthes')) self.connect('delete-event', self.onDeleteEvent) ############ self.altMode = 0 self.altModeDesc = 'Gregorian' ############ hbox = gtk.HBox() self.topLabel = gtk.Label() pack(hbox, self.topLabel) self.startDateInput = DateButton() self.startDateInput.set_editable(False) ## FIXME self.startDateInput.connect('changed', lambda widget: self.updateEndDates()) pack(hbox, self.startDateInput) pack(self.vbox, hbox) ############################ treev = gtk.TreeView() trees = gtk.ListStore( int, str, str, int, str) ## ym, yearShown, monthShown, monthLenCombo, endDateShown treev.set_model(trees) #treev.get_selection().connect('changed', self.plugTreevCursorChanged) #treev.connect('row-activated', self.plugTreevRActivate) #treev.connect('button-press-event', self.plugTreevButtonPress) ### swin = gtk.ScrolledWindow() swin.add(treev) swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('Year'), cell, text=1) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('Month'), cell, text=2) treev.append_column(col) ###### cell = gtk.CellRendererCombo() mLenModel = gtk.ListStore(int) mLenModel.append([29]) mLenModel.append([30]) cell.set_property('model', mLenModel) #cell.set_property('has-entry', False) cell.set_property('editable', True) cell.set_property('text-column', 0) cell.connect('edited', self.monthLenCellEdited) col = gtk.TreeViewColumn(_('Month Length'), cell, text=3) treev.append_column(col) ###### cell = gtk.CellRendererText() col = gtk.TreeViewColumn(_('End Date'), cell, text=4) treev.append_column(col) ###### toolbar = gtk.Toolbar() toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) size = gtk.ICON_SIZE_SMALL_TOOLBAR ### tb = toolButtonFromStock(gtk.STOCK_ADD, size) set_tooltip(tb, _('Add')) tb.connect('clicked', self.addClicked) toolbar.insert(tb, -1) ### tb = toolButtonFromStock(gtk.STOCK_DELETE, size) set_tooltip(tb, _('Delete')) tb.connect('clicked', self.delClicked) toolbar.insert(tb, -1) ###### self.treev = treev self.trees = trees ##### mainHbox = gtk.HBox() pack(mainHbox, swin, 1, 1) pack(mainHbox, toolbar) pack(self.vbox, mainHbox, 1, 1) ###### dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK) dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.RESPONSE_CANCEL) ## resetB = self.add_button(gtk.STOCK_UNDO, gtk.RESPONSE_NONE) resetB.set_label(_('_Reset to Defaults')) resetB.set_image( gtk.image_new_from_stock(gtk.STOCK_UNDO, gtk.ICON_SIZE_BUTTON)) resetB.connect('clicked', self.resetToDefaults) ## self.connect('response', self.onResponse) #print(dir(self.get_action_area())) #self.get_action_area().set_homogeneous(False) ###### self.vbox.show_all()
class WidgetClass(common.WidgetClass): def __init__(self, event):## FIXME common.WidgetClass.__init__(self, event) ###### sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) ###### hbox = gtk.HBox() label = gtk.Label(_('Start')) label.set_alignment(0, 0.5) sizeGroup.add_widget(label) pack(hbox, label) self.startDateInput = DateButton() pack(hbox, self.startDateInput) ## pack(hbox, gtk.Label(' '+_('Time'))) self.startTimeInput = TimeButton() pack(hbox, self.startTimeInput) ## pack(self, hbox) ###### hbox = gtk.HBox() self.endTypeCombo = gtk.combo_box_new_text() for item in ('Duration', 'End'): self.endTypeCombo.append_text(_(item)) self.endTypeCombo.connect('changed', self.endTypeComboChanged) sizeGroup.add_widget(self.endTypeCombo) pack(hbox, self.endTypeCombo) #### self.durationBox = common.DurationInputBox() pack(hbox, self.durationBox, 1, 1) #### self.endDateHbox = gtk.HBox() self.endDateInput = DateButton() pack(self.endDateHbox, self.endDateInput) ## pack(self.endDateHbox, gtk.Label(' '+_('Time'))) self.endTimeInput = TimeButton() pack(self.endDateHbox, self.endTimeInput) ## pack(hbox, self.endDateHbox, 1, 1) #### pack(hbox, gtk.Label(''), 1, 1) pack(self, hbox) ############# self.notificationBox = common.NotificationBox(event) pack(self, self.notificationBox) ############# #self.filesBox = common.FilesBox(self.event) #pack(self, self.filesBox) def endTypeComboChanged(self, combo=None): active = self.endTypeCombo.get_active() if active==0:## duration self.durationBox.show() self.endDateHbox.hide() elif active==1:## end date self.durationBox.hide() self.endDateHbox.show() else: raise RuntimeError def updateWidget(self):## FIXME common.WidgetClass.updateWidget(self) ### startDate, startTime = self.event.getStart() self.startDateInput.set_value(startDate) self.startTimeInput.set_value(startTime) ### endType, values = self.event.getEnd() if endType=='duration': self.endTypeCombo.set_active(0) self.durationBox.setDuration(*values) self.endDateInput.set_value(startDate)## FIXME self.endTimeInput.set_value(startTime)## FIXME elif endType=='date': self.endTypeCombo.set_active(1) self.endDateInput.set_value(values[0]) self.endTimeInput.set_value(values[1]) else: raise RuntimeError self.endTypeComboChanged() def updateVars(self):## FIXME common.WidgetClass.updateVars(self) self.event.setStart(self.startDateInput.get_value(), self.startTimeInput.get_value()) ### active = self.endTypeCombo.get_active() if active==0: self.event.setEnd('duration', *self.durationBox.getDuration()) elif active==1: self.event.setEnd( 'date', self.endDateInput.get_value(), self.endTimeInput.get_value(), ) def modeComboChanged(self, obj=None):## overwrite method from common.WidgetClass newMode = self.modeCombo.get_active() self.startDateInput.changeMode(self.event.mode, newMode) self.endDateInput.changeMode(self.event.mode, newMode) self.event.mode = newMode