Пример #1
0
    def __init__(self):
        
        self.frame = urwid.Frame(urwid.Filler(urwid.Text('Menu demo', align='center')))
        self.loop = urwid.MainLoop(self.frame, TeachPendantApp.PALETTE, unhandled_input=self.keyHandler)

        self.menu = MainMenu(self)
        self.frame.set_header(self.menu.build())
        self.frame.set_focus('header')
        
        tabs = TabsContainer()
        tabs.addTab("Point-to-point", None, True)
        self.message_box = urwid.Text("")
        
        self.bottom_bar = NotificationBar()
        self.bottom_bar.addMessage(u"Ready.")
        
        pile = urwid.Pile([self.menu._Menu, 
                           #urwid.AttrWrap(SurroundedText(" Control "), 'bright'),
                           #tabs,
                           urwid.AttrWrap(SurroundedText(u" Message "), 'bright'),
                           self.message_box,
                           urwid.AttrWrap(SurroundedText(u" Status "), 'bright'),
                           self.bottom_bar])
        
        self.top = urwid.Filler(pile, valign='top')
        self.loop.widget = self.top
Пример #2
0
class TeachPendantApp(object):
        
    PALETTE = [('menubar', 'light gray,bold', 'dark red'),
               ('menubar_focus', 'light gray,bold', 'dark green'),
               ('menuitem', 'light gray,bold', 'dark red'),
               ('menuitem_focus', 'light gray,bold', 'dark green'),
               ('title', 'black', 'light gray', 'standout,underline'),
               ('default', 'default', 'default'),
               ('default_focus', 'default,bold', 'default'),
               ('directory', 'dark cyan, bold', 'default'),
               ('directory_focus', 'dark cyan, bold', 'dark green'),
               ('separator', 'brown', 'default'),
               ]
    
    def __init__(self):
        
        self.frame = urwid.Frame(urwid.Filler(urwid.Text('Menu demo', align='center')))
        self.loop = urwid.MainLoop(self.frame, TeachPendantApp.PALETTE, unhandled_input=self.keyHandler)

        self.menu = MainMenu(self)
        self.frame.set_header(self.menu.build())
        self.frame.set_focus('header')
        
        tabs = TabsContainer()
        tabs.addTab("Point-to-point", None, True)
        self.message_box = urwid.Text("")
        
        self.bottom_bar = NotificationBar()
        self.bottom_bar.addMessage(u"Ready.")
        
        pile = urwid.Pile([self.menu._Menu, 
                           #urwid.AttrWrap(SurroundedText(" Control "), 'bright'),
                           #tabs,
                           urwid.AttrWrap(SurroundedText(u" Message "), 'bright'),
                           self.message_box,
                           urwid.AttrWrap(SurroundedText(u" Status "), 'bright'),
                           self.bottom_bar])
        
        self.top = urwid.Filler(pile, valign='top')
        self.loop.widget = self.top
    
    def attach(self, TeachPendant):
        self.tp = TeachPendant
        
    def run(self):
        self.loop.run()

    def show(self):
        self.loop.widget = self.top
        
    def _showMessage(self, message):
        # new_widget = urwid.Filler(urwid.Text(message, align='center'))
        # self.loop.widget = new_widget
        # self.loop.draw_screen()
        # time.sleep(5)
        # self.loop.widget = self.top
        
        self.message_box.set_text(message)
        self.loop.draw_screen()        
        
    def _exit(self):
        new_widget = urwid.Filler(urwid.Text(exit("Exiting through 'Exit' menu item"), 
                                             align='center'))
        self.loop.widget = new_widget
        self.loop.draw_screen()
        time.sleep(1)
        raise urwid.ExitMainLoop()

    def keyHandler(self, input):
        """We leave if user press a quit char"""
        if input in ('esc','q','Q'):
            self.tp._Conn.stop()
            self._exit()
            #raise urwid.ExitMainLoop()
        else:
            return self.menu._Menu.checkShortcuts(input)