def __init__(self, return_func, helm_repos_installed_dict): self.helm_repos_installed_dict = helm_repos_installed_dict self.selection_ch_box = [ urwid.CheckBox("{:30}{}".format(repo['repo_name'], repo['repo_url'])) for repo in helm_repos_installed_dict ] self.text_deletion_result = urwid.Text(u"") blank = urwid.Divider() listbox_content = [ blank, urwid.WidgetWrap(urwid.Divider("=", 1)), urwid.Padding(urwid.Text(u"Helm Repositories Removal"), left=2, right=2, min_width=20), urwid.WidgetWrap(urwid.Divider("*", 0, 1)), urwid.Padding( urwid.Text(u"Use space/enter to mark helm repo to remove"), left=2, right=2, min_width=20), blank, # Display helm repositories block urwid.Padding(urwid.Pile([ urwid.Text(" {:30}{}".format("NAME", "URL")), urwid.Pile([ urwid.AttrWrap(chart, 'buttn', 'buttnf') for chart in self.selection_ch_box ], ), ]), left=2, right=2, min_width=10), blank, urwid.Padding(urwid.GridFlow([ urwid.AttrWrap(urwid.Button("Cancel", on_press=self.on_cancel), 'buttn', 'buttnf'), blank, urwid.AttrWrap( urwid.Button("Delete Selected Charts", on_press=self.on_delete), 'buttn', 'buttnf') ], 20, 1, 8, 'left'), left=2, right=2, min_width=20, align='left'), blank, urwid.Padding(self.text_deletion_result, left=2, right=2, min_width=20), ] listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) self.return_func = return_func self.main_window = urwid.LineBox(urwid.AttrWrap(listbox, 'body'))
def __init__(self, return_func): self.create_namespace_edit_box = urwid.Edit(('editcp', u"Namespace to add: "), "set name", align='left', ) self.create_namespace_result = urwid.Text(u"") blank = urwid.Divider() listbox_content = [ blank, urwid.WidgetWrap(urwid.Divider("=", 1)), urwid.Padding(urwid.Text(u"Create Namespace"), left=2, right=2, min_width=20), urwid.WidgetWrap(urwid.Divider("*", 0, 1)), blank, blank, urwid.Padding(urwid.AttrWrap(self.create_namespace_edit_box, 'editbx', 'editfc'), left=2, right=2), blank, urwid.Padding( urwid.GridFlow( [urwid.AttrWrap(urwid.Button("Cancel", on_press=self.on_cancel), 'buttn', 'buttnf'), blank, urwid.AttrWrap(urwid.Button("Create", on_press=self.on_create_namespace), 'buttn', 'buttnf') ], 20, 1, 8, 'left'), left=2, right=2, min_width=20, align='left'), blank, urwid.Padding(self.create_namespace_result, left=2, right=2, min_width=20), ] listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) self.return_func = return_func self.main_window = urwid.LineBox(urwid.AttrWrap(listbox, 'body'))
def __init__(self, return_func): self.helm_repo_name_edit_box = urwid.Edit( ('editcp', u"Helm repo name "), "set name", align='left', ) self.helm_repo_url_edit_box = urwid.Edit( ('editcp', u"Helm repo URL "), "set url", align='left', ) self.add_repo_result = urwid.Text(u"") blank = urwid.Divider() listbox_content = [ blank, urwid.WidgetWrap(urwid.Divider("=", 1)), urwid.Padding(urwid.Text(u"Add Helm Repository"), left=2, right=2, min_width=20), urwid.WidgetWrap(urwid.Divider("*", 0, 1)), blank, blank, urwid.Padding(urwid.AttrWrap(self.helm_repo_name_edit_box, 'editbx', 'editfc'), left=2, right=2), urwid.Padding(urwid.AttrWrap(self.helm_repo_url_edit_box, 'editbx', 'editfc'), left=2, right=2), blank, urwid.Padding(urwid.GridFlow([ urwid.AttrWrap(urwid.Button("Cancel", on_press=self.on_cancel), 'buttn', 'buttnf'), blank, urwid.AttrWrap( urwid.Button("Add repository", on_press=self.on_add_repo), 'buttn', 'buttnf') ], 20, 1, 8, 'left'), left=2, right=2, min_width=20, align='left'), blank, urwid.Padding(self.add_repo_result, left=2, right=2, min_width=20), ] listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) self.return_func = return_func self.main_window = urwid.LineBox(urwid.AttrWrap(listbox, 'body'))
def update_status(self): if self.view.disasmblr.arch == 'ARM' and isinstance( self.view.disasmlist._w.focus, view.DisassembleInstruction): if self.view.disasmlist._w.focus.isthumb: mode = "[Thumb]" else: mode = "[ ARM ]" self.status = urwid.Columns([ urwid.WidgetWrap(urwid.Text(self.default_text)), ('fixed', 20, urwid.WidgetWrap(urwid.Text(mode))) ]) else: self.status = urwid.WidgetWrap(urwid.Text(self.default_text)) self.status = urwid.AttrMap(self.status, 'status') self._w = urwid.Pile([self.status, self.commandline])
def __init__(self, master, helptext): self.master, self.helptext = master, helptext self.ab = ActionBar() self.ib = urwid.WidgetWrap(urwid.Text("")) self._w = urwid.Pile([self.ib, self.ab]) signals.update_settings.connect(self.sig_update_settings) self.redraw()
def graph_controls(self): # setup category buttons vc = self.controller.model.valid_categories self.category_buttons = [ self.button(cat, self.on_cat_button, i) for i, cat in vc ] # setup animate button nav_controls = urwid.GridFlow([ self.button(" prev ", self.on_nav_button, -1), self.button("replay", self.on_nav_button, 0), self.button(" next ", self.on_nav_button, 1), ], 10, 3, 0, 'center') self.progress = self.progress_bar(done=self.controller.model.runtime) self.progress_wrap = urwid.WidgetWrap(self.progress) l = [urwid.Text("Categories", align="center")] l += self.category_buttons l += [ urwid.Divider(), urwid.Text("Navigation", align="center"), nav_controls, urwid.Divider(), urwid.LineBox(self.status), urwid.Divider(), self.progress_wrap, urwid.Divider(), self.button("Save and quit", self.save_and_exit_program), self.button("Quit without saving", self.exit_program), ] w = urwid.ListBox(urwid.SimpleListWalker(l)) return w
def __init__( self, room_name: Any, nick_list: Any, tree: Any, edit: Any, nick_list_width: int = 24, border_attrs: Attributes = {}, room_name_separator: str = "═", room_name_split: str = "╤", nick_list_separator: str = "│", nick_list_split: str = "┤", edit_separator: str = "─", ) -> None: self._width = 0 self._height = 0 self._redraw = True self._room_name = room_name self._nick_list = nick_list self._tree = tree self._edit = edit self._nick_list_width = nick_list_width self._border_attrs = border_attrs self._room_name_separator = room_name_separator self._room_name_split = room_name_split self._nick_list_separator = nick_list_separator self._nick_list_split = nick_list_split self._edit_separator = edit_separator # Placeholders (TODO: Use urwid.Text) self._room_name_divider = ATWidget(AT()) self._nick_list_divider = ATWidget(AT()) self._edit_divider = ATWidget(AT()) self._edit_pile = urwid.Pile([ self._tree, ("pack", self._edit_divider), ("pack", self._edit), ]) self._edit_pile.focus_position = 2 self._left_wrap = urwid.WidgetWrap(self._tree) self._columns = urwid.Columns([ self._left_wrap, (1, urwid.Filler(self._nick_list_divider)), (self._nick_list_width, self._nick_list), ]) self._columns.focus_position = 0 self._outer_pile = urwid.Pile([ ("pack", self._room_name), ("pack", self._room_name_divider), self._columns, ]) self._outer_pile.focus_position = 2 super().__init__(self._outer_pile)
def create(self): self.clear_new_rant = self.get_trigger_clear_new_rant() self.show_rant_list = self.parent_widget.get_trigger_show_rant_list() self.create_send_button() clear_btn_widget = urwid.Button('Clear', self.get_trigger_clear_new_rant()) self.rant_edit_widget = urwid.Edit('', 'I hate my live because...', True) self.rant_tags_edit_widget = urwid.Edit('Tags: ', 'rant') self.widget = urwid.Frame( urwid.Filler( urwid.Pile([ urwid.LineBox(self.rant_edit_widget), urwid.LineBox(self.rant_tags_edit_widget), urwid.Columns([ ('weight', 1, self.send_btn_widget), ('weight', 1, clear_btn_widget), ], dividechars=1, focus_column=None) ])), header=urwid.WidgetWrap( urwid.Pile([ urwid.AttrMap(urwid.Text('New Rant', align='center'), 'header'), urwid.Divider(u'\u2500') ])), )
def start(self, fileNames): """ Constructs my widgets and starts my event loop and main loop. """ def possiblyQuit(key): if key in ('q', 'Q'): if not hasattr(self, '_stopping'): self._stopping = None self.warning("Shutting down, please wait...") if reactor.running: # I trust the stopper function to call my stop # method at the appropriate time reactor.callFromThread(reactor.stop) # The top-level widgets self.m = Messages() self.f = Files(fileNames, self._dims()[0]) p = u.Pile([u.Divider("=", 1, 1), self.f, u.Divider(" ")]) main = u.WidgetWrap( u.LineBox( u.Padding( u.Frame(self.m, footer=p), left=1, right=1), title=self.title)) eventLoop = u.TwistedEventLoop(reactor, manage_reactor=False) self.formerDims = self._dims() self.loop = u.MainLoop( main, screen=self.screen, unhandled_input=possiblyQuit, event_loop=eventLoop) reactor.addSystemEventTrigger('after', 'shutdown', self.stop) #sys.stdout = StdSubstitute('STDOUT', self) sys.stderr = observer = StdSubstitute('STDERR', self) twisted.python.log.addObserver(observer) self.running = True self.loop.start()
def __init__(self, session): dummy = urwid.Filler( urwid.Text('No playlists found. Press "escape" to quit.', align='center')) tracks_container = urwid.WidgetWrap(dummy) playlists = PlaylistsView(session, tracks_container) self.__super.__init__([('fixed', 15, playlists), tracks_container], 1, 0)
def buildUrwidFromSplits(splitList): DEBUG(type(splitList) is View) if type(splitList) is Column: return urwid.Columns([buildUrwidFromSplits(x) for x in splitList.widgets]) elif type(splitList) is Row: return urwid.Pile([buildUrwidFromSplits(x) for x in splitList.widgets]) elif type(splitList) is View: return urwid.WidgetWrap(urwid.LineBox(splitList.frame))
def build_meters(self): self.input_meters = self.meters_control() self.output_meters = self.meters_control() input_frame = urwid.Frame(urwid.WidgetWrap(self.input_meters), header=self.build_meter_title(u'Inputs'), footer=self.build_meter_labels( self.controller.audio_channels_in)) input_frame = urwid.LineBox(input_frame) output_frame = urwid.Frame(urwid.WidgetWrap(self.output_meters), header=self.build_meter_title(u'Outputs'), footer=self.build_meter_labels( self.controller.audio_channels_out)) output_frame = urwid.LineBox(output_frame) w = urwid.Columns([input_frame, output_frame]) return w
def __init__(self, master: "mitmproxy.console.master.ConsoleMaster", helptext): self.master = master self.helptext = helptext self.ib = urwid.WidgetWrap(urwid.Text("")) super().__init__(urwid.Pile([self.ib, self.master.ab])) signals.update_settings.connect(self.sig_update_settings) signals.flowlist_change.connect(self.sig_update_settings) master.options.changed.connect(self.sig_update_settings) self.redraw()
def main_window(self): self.graph = self.bar_graph() self.graph_wrap = urwid.WidgetWrap(self.graph) vline = urwid.AttrWrap(urwid.SolidFill(u'\u2502'), 'line') c = self.graph_controls() w = urwid.Columns([('weight', 1, self.graph_wrap), ('fixed', 1, vline), c], dividechars=1, focus_column=2) w = urwid.Padding(w, ('fixed left', 1), ('fixed right', 1)) return w
def __init__(self, master, helptext): # type: (mitmproxy.console.master.ConsoleMaster, object) -> None self.master = master self.helptext = helptext self.ib = urwid.WidgetWrap(urwid.Text("")) super(StatusBar, self).__init__(urwid.Pile([self.ib, self.master.ab])) signals.update_settings.connect(self.sig_update_settings) signals.flowlist_change.connect(self.sig_update_settings) master.options.changed.connect( lambda sender, updated: self.sig_update_settings(sender)) self.redraw()
def __init__( self, master: "mitmproxy.tools.console.master.ConsoleMaster") -> None: self.master = master self.ib = urwid.WidgetWrap(urwid.Text("")) self.ab = ActionBar(self.master) super().__init__(urwid.Pile([self.ib, self.ab])) signals.update_settings.connect(self.sig_update) signals.flowlist_change.connect(self.sig_update) master.options.changed.connect(self.sig_update) master.view.focus.sig_change.connect(self.sig_update) self.redraw()
def main_window(self): self.graph = self.bar_graph() self.graph_wrap = urwid.WidgetWrap(self.graph) vline = urwid.AttrWrap(urwid.SolidFill(u'\u2502'), 'line') controls = self.graph_controls() w = urwid.Columns([('weight', 3, self.graph_wrap), ('fixed', 1, vline), ('fixed', 30, controls)]) w = urwid.Padding(w, ('fixed left', 1), ('fixed right', 0)) w = urwid.AttrWrap(w, 'body') w = urwid.LineBox(w) w = urwid.AttrWrap(w, 'line') w = self.main_shadow(w) return w
def graph_controls(self): self.progress = self.progress_bar() self.progress_wrap = urwid.WidgetWrap(self.progress) self.download = urwid.Text('', align="right") self.upload = urwid.Text('', align="right") l = [ urwid.Text("EZIO", align="center"), urwid.Divider('-'), self.button("Quit", self.exit_program), urwid.Divider('-'), urwid.Text("Total Progress", align="center"), self.progress_wrap, self.download, self.upload, urwid.Divider('-'), # each progess and speed rate append ] data = self.controller.get_data() for h in data.hashes: torrent_name = urwid.Text(data.torrents[h].name, align="left") torrent_progress = self.progress_bar() torrent_download = urwid.Text('', align="right") torrent_upload = urwid.Text('', align="right") torrent_active_time = urwid.Text('', align="right") torrent_is_finished = urwid.Text('', align="right") torrent_num_peers = urwid.Text('', align="right") self.torrents[h] = { 'name': torrent_name, 'progress': torrent_progress, 'download': torrent_download, 'upload': torrent_upload, 'active_time': torrent_active_time, 'is_finished': torrent_is_finished, 'num_peers': torrent_num_peers, } l.append(torrent_name) l.append(torrent_progress) l.append(torrent_download) l.append(torrent_upload) l.append(torrent_active_time) l.append(torrent_is_finished) l.append(torrent_num_peers) l.append(urwid.Divider('-')) w = urwid.ListBox(urwid.SimpleListWalker(l)) return w
def create(self): self.create_get_more_widget() self.create_refresh_widget() self.widget = urwid.Frame( self.body, header=urwid.WidgetWrap( urwid.Pile([ urwid.AttrMap(urwid.Text('Rants', align='center'), 'header'), urwid.Divider(u'\u2500') ])), ) self.subscribe_body_update()
def __init__(self, app, tabs, focus_tab=0): self.app = app self.tabs = tabs self.cur_tab = focus_tab self.prev_tab = focus_tab self.tabbar = urwid.Text('', align='left', wrap=urwid.CLIP) self._update_tabbar_string() w = self.tabs[self.cur_tab][1] self.tab_w = urwid.WidgetWrap(w) self.__super.__init__([('flow', self.tabbar), ('flow', urwid.Divider(u'\u2500')), self.tab_w], 2)
def make_runtime_error_view(self): blank = urwid.Divider() status_header = urwid.AttrWrap(urwid.Text('Run Code Status: '), 'body') status = urwid.AttrWrap(urwid.Text('Runtime Error'), 'hometag') columns = urwid.Columns([(17, status_header), (20, status)]) column_wrap = urwid.WidgetWrap(columns) result_header = urwid.Text('--- Run Code Result: ---', align='center') error_header = urwid.Text('Runtime Error Message:') error_message = urwid.Text(self.result['runtime_error']) your_input_header = urwid.Text('Last input:') your_input = urwid.Text(self.result['last_testcase']) list_items = [ result_header, blank, column_wrap, blank, error_header, error_message, blank, your_input_header, your_input, ] self._append_stdout_if_non_empty(list_items) return urwid.Padding(urwid.ListBox(urwid.SimpleListWalker(list_items)), left=2, right=2)
def graph_controls(self): modes = self.controller.get_modes() # setup mode radio buttons self.mode_buttons = [] group = [] for m in modes: rb = self.radio_button( group, m, self.on_mode_button ) self.mode_buttons.append( rb ) # setup animate button self.animate_button = self.button( "", self.on_animate_button) self.on_animate_button( self.animate_button ) self.offset = 0 self.animate_progress = self.progress_bar() animate_controls = urwid.GridFlow( [ self.animate_button, self.button("Reset", self.on_reset_button), ], 9, 2, 0, 'center') if urwid.get_encoding_mode() == "utf8": unicode_checkbox = urwid.CheckBox( "Enable Unicode Graphics", on_state_change=self.on_unicode_checkbox) else: unicode_checkbox = urwid.Text( "UTF-8 encoding not detected") self.animate_progress_wrap = urwid.WidgetWrap( self.animate_progress) l = [urwid.Text("The display widget",align="left"), urwid.Text("Mode",align="left"), ] + self.mode_buttons + [ urwid.Divider(), urwid.Text("Animation",align="left"), animate_controls, self.animate_progress_wrap, urwid.Divider(), urwid.LineBox( unicode_checkbox ), urwid.Divider(), self.button("Quit", self.exit_program ), ] w = urwid.ListBox(urwid.SimpleListWalker(l)) return w
def setWidget(self, widget, useFiller=False): def possiblyQuit(key): if key in ('q', 'Q'): reactor.stop() # The widget under test is outline, possibly padded with filler outlined = u.LineBox(widget) if useFiller: height = 'flow' if hasattr(widget, 'rows') else 3 w = u.Filler(outlined, valign='top', height=height) else: w = outlined main = u.WidgetWrap(w) # The loops eventLoop = u.TwistedEventLoop(reactor, manage_reactor=False) self.loop = u.MainLoop( main, screen=self.screen, unhandled_input=possiblyQuit, event_loop=eventLoop) self.loop.start()
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)
def make_compile_error_view(self): blank = urwid.Divider() status_header = urwid.AttrWrap(urwid.Text('Run Code Status: '), 'body') status = urwid.AttrWrap(urwid.Text('Compile Error'), 'hometag') columns = urwid.Columns([(17, status_header), (20, status)]) column_wrap = urwid.WidgetWrap(columns) result_header = urwid.Text('--- Run Code Result: ---', align='center') your_input_header = urwid.Text('Your input:') your_input = urwid.Text('') your_answer_header = urwid.Text('Your answer:') your_answer = urwid.Text(self.result['compile_error']) expected_answer_header = urwid.Text('Expected answer:') expected_answer = urwid.Text('Unkown Error') list_items = [ result_header, blank, column_wrap, blank, your_input_header, your_input, blank, your_answer_header, your_answer, blank, expected_answer_header, expected_answer ] return urwid.Padding(urwid.ListBox(urwid.SimpleListWalker(list_items)), left=2, right=2)
def make_unified_error_view(self, error_title): blank = urwid.Divider() status_header = urwid.AttrWrap(urwid.Text('Run Code Status: '), 'body') status = urwid.AttrWrap(urwid.Text(error_title), 'hometag') columns = urwid.Columns([(17, status_header), (30, status)]) column_wrap = urwid.WidgetWrap(columns) if 'last_testcase' in self.result: result_header = urwid.Text('--- Run Code Result: ---', align='center') your_input_header = urwid.Text('Last executed input:') your_input = urwid.Text(self.result['last_testcase']) list_items = [ result_header, blank, column_wrap, blank, your_input_header, your_input, ] else: list_items = [ result_header, blank, column_wrap, ] self._append_stdout_if_non_empty(list_items) return urwid.Padding(urwid.ListBox(urwid.SimpleListWalker(list_items)), left=2, right=2)
def create(self): send_btn_widget = urwid.Button('Send', self.get_trigger_login()) clear_btn_widget = urwid.Button('Clear', self.get_trigger_clear_form()) self.username_edit = urwid.Edit('Username: '******'') self.password_edit = urwid.Edit('Password: '******'', mask='*') self.widget = urwid.Frame( urwid.Filler( urwid.Pile([ urwid.LineBox( self.username_edit ), urwid.LineBox( self.password_edit ), urwid.Columns( [ ('weight', 1, send_btn_widget), ('weight', 1, clear_btn_widget), ], dividechars=1, focus_column=None ) ]) ), header=urwid.WidgetWrap( urwid.Pile( [ urwid.AttrMap( urwid.Text('Log In', align='center'), 'header' ), urwid.Divider(u'\u2500') ] ) ), )
def create(self): self.create_new_rant_button() login_logout_btn = LogInLogOutBtn( parent_widget=self, login_action=self.parent_widget.get_trigger_show_login_widget()) rant_list_btn = urwid.AttrMap( urwid.Button("Rants", self.parent_widget.get_trigger_show_rant_list()), 'button normal', 'button select') quit_btn = urwid.AttrMap( urwid.Button("Quit", self.controller.exit_program()), 'button normal', 'button select') options = [ rant_list_btn, self.new_rant_button, urwid.Divider(), login_logout_btn, quit_btn, ] self.widget = urwid.Frame(urwid.ListBox( urwid.SimpleListWalker([ urwid.AttrMap(option, None, focus_map='reversed') for option in options ])), header=urwid.WidgetWrap( urwid.Pile([ urwid.AttrMap( urwid.Text('Main menu', align='center'), 'header'), urwid.Divider(u'\u2500') ])), focus_part='body')
def __init__(self, return_func, charts_dict_list, values_dir_path): self.charts_dict_list = charts_dict_list self.values_dir_path = values_dir_path self.docker_registry = '' self.docker_username = '' self.docker_password = '' # Define array of CheckBox, from values received from helm_charts_installed_dict self.selection_ch_box = [ urwid.CheckBox("{:30}{}".format(chart['chart_name'], chart['name_space'])) for chart in self.charts_dict_list ] self.docker_registry_edit_box = urwid.Edit( ('editcp', u"Docker Registry "), self.docker_registry, align='left', ) self.docker_username_edit_box = urwid.Edit( ('editcp', u"Docker Username "), self.docker_username, align='left', ) self.docker_password_edit_box = urwid.Edit( ('editcp', u"Docker Password "), self.docker_password, align='left', ) self.text_installation_result = urwid.Text(u"") blank = urwid.Divider() listbox_content = [ blank, urwid.WidgetWrap(urwid.Divider("=", 1)), urwid.Padding(urwid.Text(u"Helm Charts Installation"), left=2, right=2, min_width=20), urwid.WidgetWrap(urwid.Divider("*", 0, 1)), urwid.Padding( urwid.Text(u"Use space/enter to mark helm chart to install"), left=2, right=2, min_width=20), blank, # Display helm charts block urwid.Padding(urwid.Pile([ urwid.Text(" {:30}{}".format("NAME", "NAMESPACE")), urwid.Pile([ urwid.AttrWrap(chart, 'buttn', 'buttnf') for chart in self.selection_ch_box ], ), ]), left=2, right=2, min_width=10), blank, urwid.Padding(urwid.Text([ u"In case chart contains ", ('important', u"docker repository secrets"), ", set the below:" ]), left=2, right=2, min_width=20), urwid.Padding(urwid.AttrWrap(self.docker_registry_edit_box, 'editbx', 'editfc'), left=2, right=2), urwid.Padding(urwid.AttrWrap(self.docker_username_edit_box, 'editbx', 'editfc'), left=2, right=2), urwid.Padding(urwid.AttrWrap(self.docker_password_edit_box, 'editbx', 'editfc'), left=2, right=2), blank, urwid.Padding(urwid.GridFlow([ urwid.AttrWrap(urwid.Button("Cancel", on_press=self.on_cancel), 'buttn', 'buttnf'), blank, urwid.AttrWrap( urwid.Button("Install Selected Charts", on_press=self.on_install), 'buttn', 'buttnf') ], 20, 1, 8, 'left'), left=2, right=2, min_width=20, align='left'), blank, urwid.Padding(self.text_installation_result, left=2, right=2, min_width=20), ] listbox = urwid.ListBox(urwid.SimpleListWalker(listbox_content)) self.return_func = return_func self.main_window = urwid.LineBox(urwid.AttrWrap(listbox, 'body'))
def __init__(self, controller): AppView.__init__(self, controller) self.widget = urwid.WidgetWrap(self.main_window())