示例#1
0
        def run(self):
            X = globals.X
            Y = globals.Y
            frame = Frame()
            frame.set_focus(True)
            frame.set_size(X+1,Y)
            frame.set_position(0,0)
            frame.create()
            def update_patch(target):
                for y in range(Y):
                    frame.addstr(0,y,' '*X,curses.A_REVERSE)
            frame.update = types.MethodType(update_patch,frame)

            timer = self.windows["Timer"].frames["timer_frame"]
            for i in range(3):
                frame.update()
                frame.refresh()
                time.sleep(0.2)
                self.screen.erase()
                self.screen.refresh()
                window = self.get_window()
                timer.update()
                window.update()
                window.refresh()
                self.banner.update()
                self.banner.refresh()
                time.sleep(0.2)

            del frame
示例#2
0
    def push_switcher(self):
        frame = Frame()
        frame.name = "taskswitcher_element"
        frame.task_list = []
        frame.current_task = -1
        frame.enabled = True
        frame.selected = False

        def update_patch(target):
            target.erase()
            color = config.COLOR_FOCUS
            if target.enabled and target.current_task > -1:
                if target.selected:
                    target.addstr(0,0,"\u25C0", curses.color_pair(color))
                else:
                    target.addstr(0,0,"\u25C0")
            else:
                if target.enabled and target.selected:
                    target.addstr(0,0,"\u25C1", curses.color_pair(color))
                else:
                    target.addstr(0,0,"\u25C1")

            if target.enabled and target.current_task+1 < len(target.task_list):
                if target.selected:
                    target.addstr(target.size[0]-3,0,"\u25B6", curses.color_pair(color))
                else:
                    target.addstr(target.size[0]-3,0,"\u25B6")
            else:
                if target.enabled and target.selected:
                    target.addstr(target.size[0]-3,0,"\u25B7", curses.color_pair(color))
                else:
                    target.addstr(target.size[0]-3,0,"\u25B7")

            if target.current_task >= 0:
                desc = globals.database.tasks[target.get_task()].desc
                target.addstr(3,0,desc)

        def get_task_patch(target):
            if target.current_task >= 0:
                return target.task_list[target.current_task]
            else:
                return None

        def next_patch(target):
            if target.enabled and target.current_task+1 < len(target.task_list):
                target.current_task += 1

        def prev_patch(target):
            if target.enabled and target.current_task-1 >= -1:
                target.current_task -= 1

        def task_list_patch(target,tasks):
            target.task_list = tasks

        frame.update = types.MethodType(update_patch,frame)
        frame.next_task = types.MethodType(next_patch,frame)
        frame.prev_task = types.MethodType(prev_patch,frame)
        frame.set_task_list = types.MethodType(task_list_patch,frame)
        frame.get_task = types.MethodType(get_task_patch,frame)

        idx = len(self.stack)
        try:
            frame.set_position(self.position[0],self.position[1]+idx)
            frame.set_size(self.size[0],self.size[1])
            frame.create()
        except: pass
        frame.focus = True
        frame.set_task_list(globals.database.task_list[self.get_task()])
        #if self.get_task() != None:
        #    frame.set_task_list(globals.database.task_list[self.get_task()])
        #else:
        #    frame.set_task_list([])

        self.add_frame(str(idx),frame)
        self.stack.append(frame)
        if self.current_switcher == -1:
           self.current_switcher = 0
           self.stack[0].selected = True