class ChangeState(PopupBox): """ """ globalHash = '' def __init__(self, text, Thash, handler=None, handler_message=None, default_choice=0, x=None, y=None, width=0, height=0, icon=None, vertical_expansion=1, text_prop=None, parent='osd'): PopupBox.__init__(self, text, handler, x, y, width, height, icon, vertical_expansion, text_prop, parent) self.globalHash = Thash self.handler_message = handler_message # XXX: It may be nice if we could choose between # OK/CANCEL and YES/NO s = xmlrpclib.ServerProxy(config.RPCHOST) if (s.d.is_active(self.globalHash) == 1) ^ (s.d.is_hash_checking(self.globalHash) == 1): self.b0 = Button(_('Stop'), width=(self.width-60)/2) else: self.b0 = Button(_('Start'), width=(self.width-60)/2) self.b0.set_h_align(Align.NONE) self.add_child(self.b0) self.b1 = Button(_('Erase'), width=(self.width-60)/2) self.b1.set_h_align(Align.NONE) self.add_child(self.b1) self.b2 = Button(_('Cancel'), width=(self.width-60)/2) self.b2.set_h_align(Align.NONE) self.add_child(self.b2) select = 'self.b%s.toggle_selected()' % default_choice eval(select) def send_enter_event(self): self.eventhandler(INPUT_ENTER) def eventhandler(self, event): if event in (INPUT_LEFT, INPUT_UP): if self.b0.selected: self.b0.toggle_selected() self.b2.toggle_selected() elif self.b1.selected: self.b1.toggle_selected() self.b0.toggle_selected() else: self.b1.toggle_selected() self.b2.toggle_selected() self.draw() return elif event in (INPUT_RIGHT, INPUT_DOWN): if self.b0.selected: self.b1.toggle_selected() self.b0.toggle_selected() elif self.b1.selected: self.b1.toggle_selected() self.b2.toggle_selected() else: self.b0.toggle_selected() self.b2.toggle_selected() self.draw() return elif event == INPUT_EXIT: self.destroy() elif event == INPUT_ENTER: if self.b0.selected: s = xmlrpclib.ServerProxy(config.RPCHOST) if (s.d.is_active(self.globalHash) == 1) ^ (s.d.is_hash_checking(self.globalHash) == 1): s.d.stop(self.globalHash) else: s.d.start(self.globalHash) rc.post_event(em.MENU_BACK_ONE_MENU) self.destroy() elif self.b1.selected: s = xmlrpclib.ServerProxy(config.RPCHOST) s.d.erase(self.globalHash) self.destroy() rc.post_event(em.MENU_BACK_ONE_MENU) else: self.destroy() else: return self.parent.eventhandler(event)
class ChangeState(PopupBox): """ """ globalHash = '' def __init__(self, text, Thash, handler=None, handler_message=None, default_choice=0, x=None, y=None, width=0, height=0, icon=None, vertical_expansion=1, text_prop=None, parent='osd'): PopupBox.__init__(self, text, handler, x, y, width, height, icon, vertical_expansion, text_prop, parent) self.globalHash = Thash self.handler_message = handler_message # XXX: It may be nice if we could choose between # OK/CANCEL and YES/NO s = xmlrpclib.ServerProxy(config.RPCHOST) if (s.d.is_active(self.globalHash) == 1) ^ (s.d.is_hash_checking( self.globalHash) == 1): self.b0 = Button(_('Stop'), width=(self.width - 60) / 2) else: self.b0 = Button(_('Start'), width=(self.width - 60) / 2) self.b0.set_h_align(Align.NONE) self.add_child(self.b0) self.b1 = Button(_('Erase'), width=(self.width - 60) / 2) self.b1.set_h_align(Align.NONE) self.add_child(self.b1) self.b2 = Button(_('Cancel'), width=(self.width - 60) / 2) self.b2.set_h_align(Align.NONE) self.add_child(self.b2) select = 'self.b%s.toggle_selected()' % default_choice eval(select) def send_enter_event(self): self.eventhandler(INPUT_ENTER) def eventhandler(self, event): if event in (INPUT_LEFT, INPUT_UP): if self.b0.selected: self.b0.toggle_selected() self.b2.toggle_selected() elif self.b1.selected: self.b1.toggle_selected() self.b0.toggle_selected() else: self.b1.toggle_selected() self.b2.toggle_selected() self.draw() return elif event in (INPUT_RIGHT, INPUT_DOWN): if self.b0.selected: self.b1.toggle_selected() self.b0.toggle_selected() elif self.b1.selected: self.b1.toggle_selected() self.b2.toggle_selected() else: self.b0.toggle_selected() self.b2.toggle_selected() self.draw() return elif event == INPUT_EXIT: self.destroy() elif event == INPUT_ENTER: if self.b0.selected: s = xmlrpclib.ServerProxy(config.RPCHOST) if (s.d.is_active(self.globalHash) == 1) ^ (s.d.is_hash_checking(self.globalHash) == 1): s.d.stop(self.globalHash) else: s.d.start(self.globalHash) rc.post_event(em.MENU_BACK_ONE_MENU) self.destroy() elif self.b1.selected: s = xmlrpclib.ServerProxy(config.RPCHOST) s.d.erase(self.globalHash) self.destroy() rc.post_event(em.MENU_BACK_ONE_MENU) else: self.destroy() else: return self.parent.eventhandler(event)