Python urwid.LineBox() Examples
The following are 30
code examples of urwid.LineBox().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
urwid
, or try the search function
.
Example #1
Source File: dialog.py From redial with GNU General Public License v3.0 | 6 votes |
def show(self, loop): self.loop = loop w = DialogOverlay( on_close=lambda: self.on_close(self.parent), on_enter=self.on_save, top_w=urwid.AttrMap( urwid.LineBox( self.advanced_body if self.show_advanced else self.body, self.header_text), "dialog"), bottom_w=loop.widget, align='center', width=64, valign='middle', height=11 if self.show_advanced else 8 ) loop.widget = w
Example #2
Source File: watcherFrame.py From TerminusBrowser with BSD 3-Clause "New" or "Revised" License | 6 votes |
def buildThread(self): watcherWidgetList = [] self.uvm.watcherUpdate(None, None) for wT, wTDict in self.uvm.watched.items(): if 'isArchived' in wTDict: wInfo = urwid.Text(f"Board: {wTDict['board']} -- {wTDict['op']} | THREAD ARCHIVED") else: wInfo = urwid.Text(f"Board: {wTDict['board']} -- {wTDict['op']} | Unread: {wTDict['numReplies']}") wButton = urwid.Button(f'View thread: {wT}', self.viewThread) dButton = urwid.Button(f'Unwatch thread: {wT}', self.unwatchThread) watcherWidgetList.append(urwid.LineBox(urwid.Pile([wInfo, urwid.Divider('-'), wButton, dButton]))) self.parsedItems = len(watcherWidgetList) listbox_content = watcherWidgetList listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) return listbox
Example #3
Source File: widgets.py From pycopia with Apache License 2.0 | 6 votes |
def build(self): addnew = urwid.Button("Add") urwid.connect_signal(addnew, 'click', self._add_new_testequipment) addnew = urwid.AttrWrap(addnew, 'selectable', 'butfocus') wlist = [addnew] for te in getattr(self.environmentrow, self.metadata.colname): # list-like attribute entry = ListEntry( urwid.Text(self._stringify_te(te))) urwid.connect_signal(entry, 'activate', self._edit_testequipment) urwid.connect_signal(entry, 'delete', self._delete_testequipment) entry.testequipment = te if te.UUT: wlist.insert(1, entry) else: wlist.append(entry) listbox = urwid.ListBox(urwid.SimpleFocusListWalker(wlist)) return urwid.BoxAdapter(urwid.LineBox(listbox), max(7, len(wlist)+2))
Example #4
Source File: widgets.py From pycopia with Apache License 2.0 | 6 votes |
def _create_relation_input(self): choices = dict(models.get_choices(self.session, self.modelclass, self.metadata.colname, None)) addnew = urwid.Button("Add New") urwid.connect_signal(addnew, 'click', self._add_new_related) # Cancel canc = urwid.Button("Cancel") urwid.connect_signal(canc, 'click', self._cancel) butcol = urwid.Columns([AM(addnew, "buttn", "buttnf"), AM(canc, "buttn", "buttnf")]) wlist = [butcol] if self.metadata.nullable: entry = ListEntry(urwid.Text("None (remove)")) urwid.connect_signal(entry, 'activate', self._single_select) wlist.append(entry) for pk, cname in choices.items(): entry = ListEntry(urwid.Text(cname)) urwid.connect_signal(entry, 'activate', self._single_select, pk) wlist.append(entry) listbox = urwid.ListBox(urwid.SimpleListWalker(wlist)) return urwid.BoxAdapter(urwid.LineBox(listbox), 9)
Example #5
Source File: historyFrame.py From TerminusBrowser with BSD 3-Clause "New" or "Revised" License | 6 votes |
def buildThread(self): historyWidgetList = [] for h in self.uvm.history: frame = h[0] factory = h[1] args = h[2] if self.uFilter: if self.uFilter in args: hInfo = urwid.Text(f'Frame: {frame}, Info: {args}') hButton = urwid.Button(f'{self.uvm.history.index(h)}: Restore', self.restore) historyWidgetList.append(urwid.LineBox(urwid.Pile([hInfo, urwid.Divider('-'), hButton]))) else: hInfo = urwid.Text(f'Frame: {frame}, Info: {args}') hButton = urwid.Button(f'{self.uvm.history.index(h)}: Restore', self.restore) historyWidgetList.append(urwid.LineBox(urwid.Pile([hInfo, urwid.Divider('-'), hButton]))) self.parsedItems = len(historyWidgetList) listbox_content = historyWidgetList listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) return listbox
Example #6
Source File: widgets.py From pycopia with Apache License 2.0 | 6 votes |
def build(self): wlist = [] addnew = urwid.Button("Add") urwid.connect_signal(addnew, 'click', self._add_new_option) addnew = urwid.AttrWrap(addnew, 'selectable', 'butfocus') wlist.append(addnew) for attrib in getattr(self.row, self.metadata.colname): # list-like attribute entry = ListEntry(urwid.Columns( [(30, urwid.Text(str(attrib.type))), urwid.Text(unicode(attrib.value).encode("utf-8"))])) entry.attrname = attrib.type.name urwid.connect_signal(entry, 'activate', self._edit_option) urwid.connect_signal(entry, 'delete', self._delete) wlist.append(entry) listbox = urwid.ListBox(urwid.SimpleFocusListWalker(wlist)) return urwid.BoxAdapter(urwid.LineBox(listbox), max(7, len(wlist)+2))
Example #7
Source File: shutdown.py From conjure-up with MIT License | 6 votes |
def __init__(self, exit_code): self.exit_code = exit_code self.message = Text('Do you want to quit?', align='center') super().__init__(LineBox(Pile([ Padding.line_break(""), self.message, Padding.line_break(""), Columns([ Text(""), SubmitButton('Yes', lambda _: self.confirm()), Text(""), SubmitButton('No', lambda _: self.cancel()), Text(""), ]), Padding.line_break(""), ]))) if events.Error.is_set(): self.confirm()
Example #8
Source File: indexFrame.py From TerminusBrowser with BSD 3-Clause "New" or "Revised" License | 6 votes |
def buildFrame(self): boardButtons = [] for subreddit in self.subredditList: subreddit = '/r/' + subreddit if not subreddit.startswith('/r/') else subreddit if self.uFilter: if self.uFilter.lower() in subreddit.lower(): boardButtons.append(urwid.LineBox(urwid.AttrWrap(urwid.Button(subreddit, self.changeFrameBoard), 'center'))) else: boardButtons.append(urwid.LineBox(urwid.AttrWrap(urwid.Button(subreddit, self.changeFrameBoard), 'center'))) self.parsedItems = len(boardButtons) width = len(max(self.subredditList, key=len)) buttonGrid = urwid.GridFlow(boardButtons, width + 9, 2, 2, 'center') # add 9 to width to account for widget padding listbox_content = [buttonGrid] return urwid.ListBox(urwid.SimpleListWalker(listbox_content))
Example #9
Source File: boxes.py From zulip-terminal with Apache License 2.0 | 6 votes |
def private_box_view(self, button: Any=None, email: str='') -> None: self.set_editor_mode() if email == '' and button is not None: email = button.email self.to_write_box = ReadlineEdit("To: ", edit_text=email) self.msg_write_box = ReadlineEdit(multiline=True) self.msg_write_box.enable_autocomplete( func=self.generic_autocomplete, key=keys_for_command('AUTOCOMPLETE').pop(), key_reverse=keys_for_command('AUTOCOMPLETE_REVERSE').pop() ) to_write_box = urwid.LineBox( self.to_write_box, tlcorner='─', tline='─', lline='', trcorner='─', blcorner='─', rline='', bline='─', brcorner='─' ) self.contents = [ (to_write_box, self.options()), (self.msg_write_box, self.options()), ] self.focus_position = 1
Example #10
Source File: views.py From zulip-terminal with Apache License 2.0 | 6 votes |
def __init__(self, controller: Any, question: Any, success_callback: Callable[[], bool]): self.controller = controller self.success_callback = success_callback yes = urwid.Button('Yes', self.exit_popup_yes) no = urwid.Button('No', self.exit_popup_no) yes._w = urwid.AttrMap(urwid.SelectableIcon( 'Yes', 4), None, 'selected') no._w = urwid.AttrMap(urwid.SelectableIcon( 'No', 4), None, 'selected') display_widget = urwid.GridFlow([yes, no], 3, 5, 1, 'center') wrapped_widget = urwid.WidgetWrap(display_widget) prompt = urwid.LineBox( urwid.ListBox( urwid.SimpleFocusListWalker( [question, urwid.Divider(), wrapped_widget] ))) urwid.Overlay.__init__(self, prompt, self.controller.view, align="left", valign="top", width=self.controller.view.LEFT_WIDTH + 1, height=8)
Example #11
Source File: views.py From zulip-terminal with Apache License 2.0 | 6 votes |
def topics_view(self, stream_button: Any) -> Any: stream_id = stream_button.stream_id topics_btn_list = [ TopicButton( stream_id=stream_id, topic=topic, controller=self.controller, width=self.width, count=self.model.unread_counts['unread_topics']. get((stream_id, topic), 0) ) for topic in self.model.index['topics'][stream_id]] self.view.topic_w = TopicsView(topics_btn_list, self.view, stream_button) w = urwid.LineBox( self.view.topic_w, title="Topics", tlcorner='━', tline='━', lline='', trcorner='━', blcorner='', rline='', bline='', brcorner='─' ) return w
Example #12
Source File: ui.py From yTermPlayer with GNU General Public License v3.0 | 6 votes |
def load_list_screen(self,button): #overlay second screen after start case2 txt=urwid.Text("Choose from the following:- ") _list=self.player_object.get_saved_lists() saved_list=[] for every_list in _list: b=urwid.Button(str(every_list).rstrip(),user_data=None) urwid.connect_signal(b, 'click', self.list_load) saved_list.append(urwid.AttrMap(b,None,focus_map='reversed')) box=urwid.ListBox(urwid.SimpleFocusListWalker(saved_list)) list_box=urwid.LineBox( box, title='', title_align='center', tlcorner='┌', tline='─', lline='│', trcorner='┐', blcorner='└', rline='│', bline='─', brcorner='┘' ) list_box_padding=urwid.Padding(list_box,right=0,left=0) self.top.original_widget=list_box_padding
Example #13
Source File: ui.py From yTermPlayer with GNU General Public License v3.0 | 6 votes |
def input_screen(self,button): #overlay second screen after start case1 txt=urwid.Text("Enter the URL below: ") url_field=urwid.Edit(caption='', edit_text='', multiline=False, align='left', wrap='space', allow_tab=False, edit_pos=None, layout=None, mask=None) btn=urwid.Button("OK",user_data=None) url_button = urwid.AttrMap(btn,None,focus_map='reversed') urwid.connect_signal(btn, 'click', self.input_url,url_field) wid=urwid.Pile([txt,url_field,url_button]) new=urwid.Filler(urwid.AttrMap(wid, None, focus_map='')) ok_screen_box=urwid.LineBox( new, title='', title_align='center', tlcorner='┌', tline='─', lline='│', trcorner='┐', blcorner='└', rline='│', bline='─', brcorner='┘' ) self.top.original_widget=ok_screen_box
Example #14
Source File: ui.py From yTermPlayer with GNU General Public License v3.0 | 6 votes |
def start_screen(self): #Ovrlay top screen at start txt1_1=urwid.Button("New playlist [Enter URL]") urwid.connect_signal(txt1_1, 'click', self.input_screen) txt1 = urwid.AttrMap(txt1_1,None,focus_map='reversed') txt2_2=urwid.Button("Load saved playlist") urwid.connect_signal(txt2_2, 'click', self.load_list_screen) txt2 = urwid.AttrMap(txt2_2,None,focus_map='reversed') start_list=urwid.SimpleFocusListWalker([txt1,txt2]) box=urwid.ListBox(start_list) selection=urwid.LineBox( box, title='', title_align='center', tlcorner='┌', tline='─', lline='│', trcorner='┐', blcorner='└', rline='│', bline='─', brcorner='┘' ) selection_with_padding=urwid.Padding(selection,left=2,right=2) return selection_with_padding
Example #15
Source File: about_menu.py From s-tui with GNU General Public License v2.0 | 6 votes |
def __init__(self, return_fn): self.return_fn = return_fn self.about_message = ABOUT_MESSAGE self.time_out_ctrl = urwid.Text(self.about_message) cancel_button = urwid.Button('Exit', on_press=self.on_cancel) cancel_button._label.align = 'center' if_buttons = urwid.Columns([cancel_button]) title = urwid.Text(('bold text', u" About Menu \n"), 'center') self.titles = [title, self.time_out_ctrl, if_buttons] self.main_window = urwid.LineBox(ViListBox(self.titles))
Example #16
Source File: help_menu.py From s-tui with GNU General Public License v2.0 | 6 votes |
def __init__(self, return_fn): self.return_fn = return_fn self.help_message = HELP_MESSAGE self.time_out_ctrl = urwid.Text(self.help_message) cancel_button = urwid.Button(('Exit'), on_press=self.on_cancel) cancel_button._label.align = 'center' if_buttons = urwid.Columns([cancel_button]) title = urwid.Text(('bold text', u" Help Menu \n"), 'center') self.titles = [title, self.time_out_ctrl, if_buttons] self.main_window = urwid.LineBox(ViListBox(self.titles))
Example #17
Source File: ui_elements.py From vpngate-with-proxy with GNU General Public License v2.0 | 6 votes |
def __init__(self, key=None, value=('', '')): self.trigger = key self.yn = value[0] self.yn_but = MyButton([('attention', 'Use proxy: '), self.yn], self.on_change) self.input_addr = urwid.Edit(('attention', u' \N{BULLET} Address : '), edit_text=value[1], wrap='clip') self.input_port = urwid.IntEdit(('attention', u' \N{BULLET} Port : '), default=value[2]) self.input_port.set_wrap_mode('clip') exit_but = urwid.Padding(urwid.Button('OKay'.center(8), self.item_callback), 'center', 12) widgets = [self.yn_but] \ + [urwid.AttrMap(wid, None, 'popbgs') for wid in (self.input_addr, self.input_port, exit_but)] self.pile = urwid.Pile(widgets) fill = urwid.LineBox(urwid.Filler(self.pile)) self.__super.__init__(urwid.AttrWrap(fill, 'popbg')) self.chosen = value
Example #18
Source File: gui.py From certstream-python with MIT License | 6 votes |
def setup_widgets(self): self.intro_frame = urwid.LineBox( urwid.Filler( urwid.Text(('body_text', self.INTRO_MESSAGE.format("")), align=urwid.CENTER), valign=urwid.MIDDLE, ) ) self.frame = urwid.Frame( body=self.intro_frame, footer=urwid.Text( [self.FOOTER_START, ('heartbeat_inactive', self.HEARTBEAT_ICON)], align=urwid.CENTER ) ) self.loop = urwid.MainLoop( urwid.AttrMap(self.frame, 'body_text'), unhandled_input=show_or_exit, palette=PALETTE, ) self.list_walker = urwid.SimpleListWalker(self.message_list) self.list_box = urwid.ListBox(self.list_walker) urwid.connect_signal(self.list_walker, "modified", self.item_focused)
Example #19
Source File: leftBox.py From TWchat with MIT License | 5 votes |
def addcontacts(self,contact,clickFun): name = '' if contact['UserName']==self.owner: return if not contact['RemarkName']: name = contact['NickName'] else: name = contact['RemarkName'] newline = urwid.Button(name) nickname = contact['RemarkName'] if contact['RemarkName'] else contact['NickName'] urwid.connect_signal(newline,'click',clickFun,[contact['UserName'],nickname]) self.body.append(urwid.LineBox(newline))
Example #20
Source File: gui.py From TWchat with MIT License | 5 votes |
def createRight(self): wrapedInputEdit = wrapEdit(self.inputBox) urwid.connect_signal(self.sendButton,'click',self.on_send_button_click) self.chat_name = urwid.Text("TWchat",align='center') title = urwid.AttrMap(urwid.LineBox(self.chat_name),'button') wrapedSendButton = wrapButton(self.sendButton) bottomRight = urwid.Columns([('weight',5,wrapedInputEdit),('weight',1,wrapedSendButton)],dividechars=1) topRight= urwid.BoxAdapter(self.messageListBox,screenRows-6) return urwid.Pile([title,topRight,bottomRight])
Example #21
Source File: leftBox.py From TWchat with MIT License | 5 votes |
def insert_new_line(self,chat_id,chat_name,unread): if self.is_contact_list: return button = urwid.Button(chat_name) urwid.connect_signal(button,'click',self.chat_click_fn,[chat_id,chat_name]) text="" if unread: text=u'◆' else: text="" unread_sig = urwid.Text(text) line = urwid.Columns([('weight',1,unread_sig),('weight',8,button)]) self.body.append(urwid.LineBox(line))
Example #22
Source File: storyFrame.py From TerminusBrowser with BSD 3-Clause "New" or "Revised" License | 5 votes |
def buildFrame(self, board): '''returns the board widget''' threadButtonList = [] for title, threadInfo in self.titles.items(): if title == 'Next': if not self.uFilter: subButton = urwid.Button(str(threadInfo[0]), self.changeStoryPage) threadButtonList.append(urwid.LineBox(urwid.Pile([subButton, urwid.Divider('-'), urwid.Text(threadInfo[1])]))) continue if self.uFilter: if re.search(self.uFilter.lower(), title.lower()): threadButton = urwid.Button(str(threadInfo[0]), self.changeFrameThread) threadInfo = urwid.Text(self.info_text.format(str(threadInfo[1]),str(threadInfo[2]))) threadList = [threadButton, urwid.Divider('-'), urwid.Divider(), urwid.Text(title), urwid.Divider(), urwid.Divider('-'), threadInfo] threadButtonList.append(urwid.LineBox(urwid.Pile(threadList))) else: threadButton = urwid.Button(str(threadInfo[0]), self.changeFrameThread) threadInfo = urwid.Text(self.info_text.format(str(threadInfo[1]), str(threadInfo[2]))) threadList = [threadButton, urwid.Divider('-'), urwid.Divider(), urwid.Text(title), urwid.Divider(), urwid.Divider('-'), threadInfo] threadButtonList.append(urwid.LineBox(urwid.Pile(threadList))) self.parsedItems = len(threadButtonList) catalogueButtons = urwid.GridFlow(threadButtonList, 30, 2, 2, 'center') listbox = urwid.ListBox(urwid.SimpleListWalker([catalogueButtons])) self.uvm.itemCount = len(threadButtonList) return [listbox]
Example #23
Source File: dialog.py From redial with GNU General Public License v3.0 | 5 votes |
def show(self, loop): # Header header_text = urwid.Text('Remove Connection: ' + self.target.name, align='center') header = urwid.AttrMap(header_text, 'dialog') # Footer ok_btn = urwid.Button('Ok', self.on_ok) ok_btn = urwid.AttrWrap(ok_btn, 'dialog_button', 'dialog_button_focus') cancel_btn = urwid.Button('Cancel', self.on_cancel) cancel_btn = urwid.AttrWrap(cancel_btn, 'dialog_button', 'dialog_button_focus') footer = urwid.GridFlow([ok_btn, cancel_btn], 12, 1, 1, 'center') body = urwid.Filler( urwid.Pile([ urwid.Text("Are you sure?"), urwid.Text(""), footer ]) ) # Layout layout = urwid.Frame( body, header=header ) w = DialogOverlay( on_close=lambda: self.on_close(self.target), on_enter=lambda: self.on_ok(None), top_w=urwid.AttrMap(urwid.LineBox(layout), "dialog"), bottom_w=loop.widget, align='center', width=40, valign='middle', height=10 ) loop.widget = w
Example #24
Source File: dialog.py From redial with GNU General Public License v3.0 | 5 votes |
def show(self, loop): # Header header_text = urwid.Text('Edit Folder' if self.target.name else "Add Folder", align='center') header = urwid.AttrMap(header_text, 'dialog') # Footer save_btn = urwid.Button('Save', self.on_save) save_btn = urwid.AttrWrap(save_btn, 'dialog_button', 'dialog_button_focus') cancel_btn = urwid.Button('Cancel', self.on_cancel) cancel_btn = urwid.AttrWrap(cancel_btn, 'dialog_button', 'dialog_button_focus') footer = urwid.GridFlow([save_btn, cancel_btn], 12, 1, 1, 'center') body = urwid.Filler( urwid.Pile([self.folder_name, footer]) ) # Layout layout = urwid.Frame( body, header=header) w = DialogOverlay( on_close=lambda: self.on_close(self.target), on_enter=self.on_save, top_w=urwid.AttrMap(urwid.LineBox(layout), "dialog"), bottom_w=loop.widget, align='center', width=40, valign='middle', height=10 ) loop.widget = w
Example #25
Source File: indexFrame.py From TerminusBrowser with BSD 3-Clause "New" or "Revised" License | 5 votes |
def buildFrame(self): boardButtons = [] for board in self.boardList: if self.uFilter: if self.uFilter.lower() in board.lower(): boardButtons.append(urwid.LineBox(urwid.AttrWrap(urwid.Button(board, self.changeFrameBoard), 'center'))) else: boardButtons.append(urwid.LineBox(urwid.AttrWrap(urwid.Button(board, self.changeFrameBoard), 'center'))) self.parsedItems = len(boardButtons) buttonGrid = urwid.GridFlow(boardButtons, 12, 2, 2, 'center') listbox_content = [buttonGrid] return urwid.ListBox(urwid.SimpleListWalker(listbox_content))
Example #26
Source File: dialog.py From redial with GNU General Public License v3.0 | 5 votes |
def show(self, loop): # Header header_text = urwid.Text('Select Public SSH Key to Copy', align='center') header = urwid.AttrMap(header_text, 'dialog') cancel_btn = urwid.Button('Cancel', self.on_cancel) cancel_btn = urwid.AttrWrap(cancel_btn, 'dialog_button', 'dialog_button_focus') footer = urwid.GridFlow([cancel_btn], 12, 1, 1, 'center') list_box = urwid.BoxAdapter(SSHListBox(on_enter=self.on_copy, body=self.ssh_keys_walker), 5) body = urwid.Filler( urwid.Pile([list_box, footer]) ) # Layout layout = urwid.Frame( body=body, header=header) layout = urwid.AttrWrap(layout, 'dialog') w = DialogOverlay( on_close=lambda: self.on_close(), on_enter=self.on_copy, top_w=urwid.AttrMap(urwid.LineBox(layout), "dialog"), bottom_w=loop.widget, align='center', width=40, valign='middle', height=10 ) loop.widget = w
Example #27
Source File: loading.py From terminal-leetcode with MIT License | 5 votes |
def __init__(self, text, width, host_view, loop=None): self.loop = loop self.host_view = host_view self.overlay = urwid.Overlay( urwid.LineBox(urwid.Text(text)), host_view, # urwid.SolidFill(), 'center', width, 'middle', None) urwid.Frame.__init__(self, self.overlay)
Example #28
Source File: loading.py From terminal-leetcode with MIT License | 5 votes |
def __init__(self, text, width, host_view, loop=None): self.running = False self.lock = EasyLock() self.loop = loop self.overlay = urwid.Overlay( urwid.LineBox(urwid.Text(text)), host_view, # urwid.SolidFill(), 'center', width, 'middle', None) urwid.Frame.__init__(self, self.overlay)
Example #29
Source File: dialog.py From redial with GNU General Public License v3.0 | 5 votes |
def show(self, loop): # Header header_text = urwid.Text(self.title, align='center') header = urwid.AttrMap(header_text, 'dialog') # Footer ok_btn = urwid.Button('Ok', self.on_ok) ok_btn = urwid.AttrWrap(ok_btn, 'dialog_button', 'dialog_button_focus') footer = urwid.GridFlow([ok_btn], 12, 1, 1, 'center') body = urwid.Filler( urwid.Pile([ urwid.Text(self.message), urwid.Text(""), footer ]) ) # Layout layout = urwid.Frame( body, header=header ) w = DialogOverlay( on_close=self.on_close, on_enter=self.on_ok, top_w=urwid.AttrMap(urwid.LineBox(layout), "dialog"), bottom_w=loop.widget, align='center', width=40, valign='middle', height=10 ) loop.widget = w
Example #30
Source File: result.py From terminal-leetcode with MIT License | 5 votes |
def __init__(self, quiz, host_view, result, loop=None): self.quiz = quiz self.host_view = host_view self.result = result self.loop = loop self.logger = logging.getLogger(__name__) if result: if 'status_code' not in result: raise ValueError('Unknow result format: %s' % json.dumps(result)) if result['status_code'] == 20: self.listbox = self.make_compile_error_view() elif result['status_code'] == 10: self.listbox = self.make_success_view() elif result['status_code'] == 11: self.listbox = self.make_failed_view() elif result['status_code'] == 12: # memeory limit exceeded self.listbox = self.make_unified_error_view("Memory Limit Exceeded") elif result['status_code'] == 13: # output limit exceeded self.listbox = self.make_unified_error_view("Output Limit Exceeded") elif result['status_code'] == 14: # timeout self.listbox = self.make_unified_error_view("Time Limit Exceeded") elif result['status_code'] == 15: self.listbox = self.make_runtime_error_view() else: raise ValueError('Unknow status code: %d' % result['status_code']) else: raise ValueError('result shouldn\'t be None') self.overlay = urwid.Overlay( urwid.LineBox(self.listbox), host_view, align='center', width=('relative', 95), valign='middle', height=('relative', 95), min_width=40, min_height=40) footer = urwid.Pile([urwid.Text('Press Esc to close this view.', align='center'), urwid.Divider()]) urwid.Frame.__init__(self, self.overlay, footer=footer)