import gtk import gtk.glade import gobject import pango from newtask import PyAtCronNewTask class PyAtCronMainwin: def __init__ (self): self.assistant = None self.taskId = None self.widgetTree = gtk.glade.XML ("mainwin.glade", "mainwin") dic = { "on_mainwin_delete_event" : self.deleteEvent, "on_mainwin_destroy_event" : self.destroyEvent, "on_mainmenu_save_activate" : self.saveActivate, "on_mainmenu_quit_activate" : self.quitActivate, "on_mainmenu_new_activate" : self.newActivate, "on_mainmenu_properties_activate" : self.propertiesActivate, "on_mainmenu_activate_activate" : self.activateActivate, "on_mainmenu_deactivate_activate" : self.deactivateActivate, "on_mainmenu_delete_activate" : self.deleteActivate, "on_mainmenu_about_activate" : self.aboutActivate, "on_toolbar_new_clicked" : self.newClicked, "on_toolbar_properties_clicked" : self.propertiesClicked, "on_toolbar_activate_clicked" : self.activateClicked, "on_toolbar_deactivate_clicked" : self.deactivateClicked, "on_toolbar_delete_clicked" : self.deleteClicked, "on_tasklist_row_activated" : self.rowActivated } self.widgetTree.signal_autoconnect (dic) self.widgetTree.get_widget ("tasklist").get_selection().connect("changed", self.cursorChanged) self.win = self.widgetTree.get_widget ("mainwin") self.updateTaskList () self.updateCurrentTask () def deleteEvent (self, event, obj): self.quit () def destroyEvent (self, event, obj): self.quit () def saveActivate (self, obj): self.save () def quitActivate (self, obj): self.quit () def newActivate (self, obj): self.createTask () def propertiesActivate (self, obj): self.editTask () def activateActivate (self, obj): self.activateTask () def deactivateActivate (self, obj): self.deactivateTask () def deleteActivate (self, obj): self.deleteTask () def aboutActivate (self, obj): self.about () def newClicked (self, obj): self.createTask () def propertiesClicked (self, obj): self.editTask () def activateClicked (self, obj): self.activateTask () def deactivateClicked (self, obj): self.deactivateTask () def deleteClicked (self, obj): self.deleteTask () def rowActivated (self, obj, path, column): self.editTask () def cursorChanged (self, obj): self.updateCurrentTask () def save (self): print "TODO: save" def quit (self): self.save () gtk.main_quit () def updateCurrentTask (self): taskList = self.widgetTree.get_widget ("tasklist") iter = taskList.get_selection ().get_selected () [1] model = taskList.get_model () if (iter == None): self.widgetTree.get_widget ("toolbar_properties").set_sensitive (0) self.widgetTree.get_widget ("toolbar_activate").set_sensitive (0) self.widgetTree.get_widget ("toolbar_deactivate").set_sensitive (0) self.widgetTree.get_widget ("toolbar_delete").set_sensitive (0) self.widgetTree.get_widget ("mainmenu_properties").set_sensitive (0) self.widgetTree.get_widget ("mainmenu_activate").set_sensitive (0) self.widgetTree.get_widget ("mainmenu_deactivate").set_sensitive (0) self.widgetTree.get_widget ("mainmenu_delete").set_sensitive (0) else: activable = model.get_value (iter, 1) self.widgetTree.get_widget ("toolbar_properties").set_sensitive (1) self.widgetTree.get_widget ("toolbar_activate").set_sensitive (activable) self.widgetTree.get_widget ("toolbar_deactivate").set_sensitive (1 - activable) self.widgetTree.get_widget ("toolbar_delete").set_sensitive (1) self.widgetTree.get_widget ("mainmenu_properties").set_sensitive (1) self.widgetTree.get_widget ("mainmenu_activate").set_sensitive (activable) self.widgetTree.get_widget ("mainmenu_deactivate").set_sensitive (1 - activable) self.widgetTree.get_widget ("mainmenu_delete").set_sensitive (1) self.taskId = model.get_value (iter, 0) def createTask (self): self.assistant = PyAtCronNewTask (self.win) def editTask (self): print "TODO: edit task #" + str (self.taskId) def activateTask (self): print "TODO: activate task #" + str (self.taskId) def deactivateTask (self): print "TODO: deactivate task #" + str (self.taskId) def deleteTask (self): print "TODO: delete task #" + str (self.taskId) def about (self): print "TODO: about" def updateTaskList (self): model = gtk.ListStore (gobject.TYPE_INT, gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) color = "#c0c0c0" model.set (model.append (), 0, 2, 1, False, 2, "Save all my HOME folder", 3, "12/01/03 4:00 AM", 4, color) model.set (model.append (), 0, 4, 1, True, 2, "Wake me up on the morning", 3, "Tomorrow 7:00 AM", 4, color) model.set (model.append (), 0, 6, 1, False, 2, "Start downloading CD1", 3, "Today 9:00 PM", 4, color) model.set (model.append (), 0, 8, 1, False, 2, "Start downloading CD2", 3, "Today 11:00 PM", 4, color) model.set (model.append (), 0, 10, 1, False, 2, "Start downloading CD3", 3, "Tomorrow 2:00 AM", 4, color) taskList = self.widgetTree.get_widget ("tasklist") taskList.set_model (model) textRenderer = gtk.CellRendererText () textColumn = gtk.TreeViewColumn ("Name", textRenderer, text=2, foreground_set=1, foreground=4) taskList.append_column(textColumn) textRenderer = gtk.CellRendererText () textColumn = gtk.TreeViewColumn ("Next run time", textRenderer, text=3, foreground_set=1, foreground=4) taskList.append_column(textColumn)