Example #1
0
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)
Example #2
0
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)