Exemple #1
0
    def menuVAOnlyMenu(
        title, avail_stream_VideoO, avail_stream_audioO
    ):  ###menu displaying formats with only audio or video ## must handle cases with audio and video alone ## for 3rd loop
        body = [urwid.Text(title), urwid.Divider()]

        for x in avail_stream_VideoO:
            button = urwid.Button(
                str(x).split('@', 1)[0] + "---->" + x.resolution + "----->" +
                str((float(x.get_filesize()) / 1024) / 1024))
            urwid.connect_signal(button, 'click', chosen_URL, x)
            body.append(urwid.AttrMap(button, None, focus_map='reversed'))
        for x1 in avail_stream_audioO:
            button = urwid.Button(str(x1))
            urwid.connect_signal(button, 'click', chosen_URL, x1)
            body.append(urwid.AttrMap(button, None, focus_map='reversed'))

        button = urwid.Button("EXIT")
        urwid.connect_signal(button, 'click', exit_program)
        body.append(urwid.AttrMap(button, None, focus_map='reversed'))

        return urwid.ListBox(urwid.SimpleFocusListWalker(body))
Exemple #2
0
 def __init__(self, conversation, close_callback, keybindings):
     rename_dialog = RenameConversationDialog(
         conversation,
         lambda: frame.contents.__setitem__('body', (list_box, None)),
         close_callback)
     items = [
         urwid.Text('Conversation name: {}'.format(
             get_conv_name(conversation))),
         urwid.Button('Change Conversation Name',
                      on_press=lambda _: frame.contents.__setitem__(
                          'body', (rename_dialog, None))),
         urwid.Divider('-'),
         urwid.Button('Back', on_press=lambda _: close_callback()),
     ]
     list_walker = urwid.SimpleFocusListWalker(items)
     list_box = urwid.ListBox(list_walker)
     frame = urwid.Frame(list_box)
     padding = urwid.Padding(frame, left=1, right=1)
     line_box = urwid.LineBox(padding, title='Conversation Menu')
     super().__init__(line_box)
     self._keys = keybindings
Exemple #3
0
    def quit_prompt(self):
        """Pop-up window that appears when you try to quit."""
        text = "Changes have been made. Quit?"
        question = ur.Text(("bold", text), "center")

        cancel_btn = ur.AttrMap(ur.Button(
            "Cancel", self.prompt_answer, "cancel"), "title", None)
        save_btn = ur.AttrMap(ur.Button(
            "Save", self.prompt_answer, "save"), "title", None)
        quit_btn = ur.AttrMap(ur.Button(
            "Quit", self.prompt_answer, "quit"), "red", None)

        prompt = ur.LineBox(ur.ListBox(ur.SimpleFocusListWalker(
            [question, BLANK, BLANK, cancel_btn, save_btn, quit_btn])))

        overlay = ur.Overlay(
            prompt, self.loop.widget,
            "center", 19, "middle", 9,
            16, 8)

        self.loop.widget = overlay
Exemple #4
0
 def __init__(self, streams_btn_list: List[Any], view: Any) -> None:
     self.view = view
     self.log = urwid.SimpleFocusListWalker(streams_btn_list)
     self.streams_btn_list = streams_btn_list
     self.focus_index_before_search = 0
     list_box = urwid.ListBox(self.log)
     self.stream_search_box = PanelSearchBox(self, 'SEARCH_STREAMS')
     urwid.connect_signal(self.stream_search_box, 'change',
                          self.update_streams)
     super(StreamsView,
           self).__init__(list_box,
                          header=urwid.LineBox(self.stream_search_box,
                                               tlcorner=u'─',
                                               tline=u'',
                                               lline=u'',
                                               trcorner=u'─',
                                               blcorner=u'─',
                                               rline=u'',
                                               bline=u'─',
                                               brcorner=u'─'))
     self.search_lock = threading.Lock()
Exemple #5
0
 def __init__(self, app, query, query_desc=None, unreviewed=False):
     super(ChangeListView, self).__init__(urwid.Pile([]))
     self.app = app
     self.query = query
     self.query_desc = query_desc or query
     self.unreviewed = unreviewed
     self.change_rows = {}
     self.listbox = urwid.ListBox(urwid.SimpleFocusListWalker([]))
     self.display_owner = self.display_project = True
     if '_project_key' in query:
         self.display_project = False
     self.header = ChangeListHeader(self.display_project,
                                    self.display_owner)
     self.categories = []
     self.refresh()
     self._w.contents.append((app.header, ('pack', 1)))
     self._w.contents.append((urwid.Divider(), ('pack', 1)))
     self._w.contents.append((urwid.AttrWrap(self.header,
                                             'table-header'), ('pack', 1)))
     self._w.contents.append((self.listbox, ('weight', 1)))
     self._w.set_focus(3)
    def _form_inputs(self):
        contents = [
            self._types_input(),
            generic.box_solid_fill(" ", 1),
            self._statuses_input(),
            generic.box_solid_fill(" ", 1),
            self._priorities_input(),
            generic.box_solid_fill(" ", 1),
            self._severities_input(),
            generic.box_solid_fill(" ", 1),
            self._assigned_to_input(),
            generic.box_solid_fill(" ", 1),
            self._created_by_input(),
            # TODO
            #generic.box_solid_fill(" ", 1),
            #self._tags_input(),
        ]

        list_walker = urwid.SimpleFocusListWalker(contents)
        list_walker.set_focus(0)
        return urwid.BoxAdapter(urwid.ListBox(list_walker), 20)
Exemple #7
0
 def __init__(self, controller: Any, question: Any,
              success_callback: Callable[[], bool]):
     self.controller = controller
     self.success_callback = success_callback
     yes = urwid.Button(u'Yes', self.exit_popup_yes)
     no = urwid.Button(u'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)
Exemple #8
0
 def create_tasks_menu(self):
     """Renders title and bottom line and in the middle a scrollable table of tasks with their duration"""
     body = [urwid.Text(self.title), urwid.Divider()]
     for task in self.taskmanager.tasks_by(self.sort_order):
         button = TaskButtonWrap(task)
         urwid.connect_signal(button.button, "click",
                              self.toggle_recording_task, task)
         if task == self.current_task:
             button = urwid.AttrMap(button, "standout-fg")
         else:
             button = urwid.AttrMap(button, "normal", "active-bg")
         task.button = button
         body.append(button)
     body += [
         urwid.Divider(), self.message_box,
         urwid.Divider(),
         urwid.Text(help_line)
     ]
     return urwid.Padding(urwid.ListBox(urwid.SimpleFocusListWalker(body)),
                          left=0,
                          right=0)
Exemple #9
0
def main():
    palette = [
        ('header', 'light gray', 'black'),
        ('title', 'white', 'black'),
        ('focus', 'light gray,standout', 'black'),
        ]

    def exit_on_q(input):
        if input in ('q', 'Q'):
            raise urwid.ExitMainLoop()

    token = fioread.get_token()
    statement = fioread.FioConnection(token).last()

    info = statement.account
    header_text = [
        ('title', "Fio Statement Viewer"), " for ",
        ('account', info.accountId + "/" + info.bankId), " ",
        ('bold', info.dateStart[:10]), "-", ('bold', info.dateEnd[:10]), " ",
        "(", ('bold', str(info.openingBalance)), "-", ('bold', str(info.closingBalance)), ")",
        ]

    walker = urwid.SimpleFocusListWalker([])
    balance = info.openingBalance

    def wrap(text):
        w = SelectableText(text)
        w = urwid.AttrMap(w, {}, {None: 'focus'})
        return w

    for transaction in statement.transactions:
        transaction['balance'] = balance = balance + transaction.amount
        walker.append(wrap("%(date).10s %(balance)10s %(amount)10s %(currency)s %(comment)30s" % fioread.default(transaction)))

    header = urwid.AttrMap(urwid.Text(header_text), 'header')
    listbox = urwid.ListBox(walker)
    view = urwid.Frame(listbox, header=header)
    loop = urwid.MainLoop(view, palette, unhandled_input=exit_on_q)

    loop.run()
Exemple #10
0
def filter_task_state(app):
    """Return a widget for adjusting the task state filter."""

    def toggle(state, *_):
        """Toggle a filter state."""
        app.filter_states[state] = not app.filter_states[state]

    checkboxes = [
        urwid.CheckBox(
            get_task_icon(state)
            + [' ' + state],
            state=is_on,
            on_state_change=partial(toggle, state)
        )
        for state, is_on in app.filter_states.items()
    ]

    def invert(*_):
        """Invert the state of all filters."""
        for checkbox in checkboxes:
            checkbox.set_state(not checkbox.state)

    widget = urwid.ListBox(
        urwid.SimpleFocusListWalker([
            urwid.Text('Filter Task States'),
            urwid.Divider(),
            urwid.Padding(
                urwid.Button(
                    'Invert',
                    on_press=invert
                ),
                right=19
            )
        ] + checkboxes)
    )

    return (
        widget,
        {'width': 35, 'height': 23}
    )
Exemple #11
0
    def __init__(self, word, pos, definition, all_options, selected):
        self._all_options = all_options
        self._selected_items = selected

        self.footer_text = (
            "foot",
            [
                f"{word} ({pos})    ",
                ("key", "r"),
                " select random  ",
                ("key", "s"),
                " save  ",
                ("key", "q"),
                " quit",
            ],
        )

        title = f"{word} {pos}"

        body = []
        self._checkboxes = []
        for idx in range(len(all_options)):
            checkbox = urwid.CheckBox("")
            urwid.connect_signal(checkbox, "change", self.item_chosen, idx)
            self._checkboxes.append(checkbox)
            body.append(checkbox)

        self.update_list()

        self.listbox = urwid.ListBox(urwid.SimpleFocusListWalker(body))

        self.definition = urwid.Text(definition)
        self.textbox = urwid.ListBox([self.definition])
        self.columns = urwid.Columns([(60, self.textbox), self.listbox],
                                     dividechars=3,
                                     focus_column=1)

        self.footer = urwid.AttrWrap(urwid.Text(self.footer_text), "foot")
        self.view = urwid.Frame(urwid.AttrWrap(self.columns, "body"),
                                footer=self.footer)
Exemple #12
0
 def select4(self):
     select4 = len(self.devices[self.interface]['ip4']) > 1
     if select4:
         text = urwid.AttrWrap(urwid.Text("Select the IPv4 address to use"), 'header')
         content = [text, urwid.Divider()]
         for i in self.devices[self.interface]['ip4']:
             content.append(self.menu_button("%s %s" % (i['ip'], i['mask']), self.select4_callback, self.devices[self.interface]['ip4'].index(i)))
         box = urwid.ListBox(urwid.SimpleFocusListWalker(content))
         self.set_body(urwid.Overlay(urwid.LineBox(box),
                 self.body,
                 align='center', width=('relative', 80),
                 valign='middle', height=('relative', 80),
                 min_width=24, min_height=8))
         return
     else:
         if len(self.devices[self.interface]['ip4']) > 0:
             self.ip = self.devices[self.interface]['ip4'][0]['ip']
             self.mask = self.devices[self.interface]['ip4'][0]['mask']
         else:
             self.ip = "0.0.0.0"
             self.mask ="0.0.0.0"
         self.select6()
Exemple #13
0
    def get_history(self):
        while self.updateLocked:
            time.sleep(0.5)
        self.updateLocked = True
        self.separator_pos = -1

        current_cmd = self.Telegram_ui.current_chan['id']
        if current_cmd not in self.prev_date:
            self.prev_date[current_cmd] = 1

        # deletion of previous messages
        self.msg_list = urwid.SimpleFocusListWalker(
            [urwid.Text(('top', " "), align='left')])
        super().__init__(self.msg_list)

        self.pos = 0

        if current_cmd not in self.Telegram_ui.msg_buffer:
            current_print_name = self.Telegram_ui.current_chan['print_name']
            try:
                msgList = self.Telegram_ui.sender.history(
                    current_print_name, 100)
            except:
                msgList = []
            self.Telegram_ui.msg_buffer[current_cmd] = msgList

        if current_cmd not in self.Telegram_ui.msg_archive:
            self.Telegram_ui.msg_archive[current_cmd] = []
        else:
            self.print_msg_archive()

        for msg in self.Telegram_ui.msg_buffer[current_cmd]:
            self.print_msg(msg)

        # messages have been printed, deletion form buffer (they are in archive now)
        self.Telegram_ui.msg_buffer[current_cmd] = []

        self.draw_separator()
        self.updateLocked = False
Exemple #14
0
def live_sub(button, m_id):
    texts = []
    live_list = []
    for x in live_scrape():
        for y in x['games']:
            live_list.append(y)
    texts.append(
        urwid.Text('Live professional matches being played right now'))
    texts.append(urwid.Text(''))
    if len(live_list) > 0:
        for x in live_list:
            r_name = x['radiant_team']['team_name']
            d_name = x['dire_team']['team_name']
            if r_name == '':
                r_name = 'Radiant'
            if d_name == '':
                d_name = 'Dire'
            if x['league']['name'] == '':
                league_line = 'Independent'
            else:
                league_line = x['league']['name']
            match_line = "{} vs {}".format(r_name, d_name)
            match_id = str(x['id'])
            texts.append(
                menu_button("{}\n{}".format(league_line, match_line),
                            callback=item_chosen,
                            m_id=[match_id]))
    texts.append(urwid.Text(''))
    done = menu_button('Return to main menu', m_id=m_id, callback=go_back)
    texts.append(done)
    texts.append(urwid.Text(''))
    td_link = urwid.Button('Powered by TrackDota [https://www.trackdota.com]')
    texts.append(urwid.AttrMap(td_link, None, focus_map='reversed'))
    urwid.connect_signal(td_link,
                         'click',
                         open_link,
                         user_arg='https://www.trackdota.com/')
    pile = urwid.ListBox(urwid.SimpleFocusListWalker(texts))
    top.open_box(pile, title='dotaticker - Live Matches')
Exemple #15
0
    def set_frame(self, focus_part='body'):
        """
        Add all widgets into a frame.
        """
        if self.text is not None:
            self.body = [urwid.Text(self.text), urwid.Divider()] + self.body

        self.contents = urwid.SimpleFocusListWalker(self.body)
        list_box = urwid.ListBox(self.contents)
        frame = urwid.Frame(urwid.LineBox(list_box), focus_part=focus_part)

        if self.title is not None:
            title_markup = self.title if isinstance(
                self.title, tuple) else ('title', self.title)
            title_wid = urwid.Text(title_markup, align='center')
            frame.header = urwid.Pile([title_wid, urwid.Divider()])

        if self.buttons:
            button_grid = urwid.GridFlow(self.buttons, 10, 3, 1, 'right')
            frame.footer = urwid.Pile([button_grid])

        return frame
Exemple #16
0
    def __init__(self, config):
        self._configure(config)

        self._subsources_list_iter = itertools.cycle(self._subsources_list)

        self.listbox_w = w = urwid.ListBox(urwid.SimpleFocusListWalker([]))
        w._command_map = CommandMap(
            {
                "k": "cursor up",
                "up": "cursor up",
                "j": "cursor down",
                "down": "cursor down",
            }
        )
        self.content_wrapper = w = urwid.WidgetPlaceholder(w)

        w = linebox(w, self._default_title)
        self._linebox_w = w.original_widget  # XXX: not elegant

        urwid.WidgetWrap.__init__(self, w)

        self.next_subsource()
Exemple #17
0
def menu(title, text, choices, checkbox, top_level=False):
    text = '' if not text else text
    body = [
        urwid.Text(title),
        urwid.Divider(),
        urwid.Text(text),
        urwid.Divider()
    ]
    body.extend(choices)

    if not top_level:
        body.append(
            menu_btn_group(choices_checkbox=choices,
                           sel_all_btn=checkbox,
                           apply_btn=checkbox))

    menu_obj = urwid.ListBox(urwid.SimpleFocusListWalker(body))
    menu_obj.checkbox = checkbox
    if checkbox:
        menu_obj.checkbox_group = choices

    return menu_obj
Exemple #18
0
    def __init__(self, config, search_query=None):
        self.__pass_dir = os.environ.get('PASSWORD_STORE', os.path.expanduser('~/.password-store'))
        self.current = ''
        self.mode = Mode.BASE
        self.header = ui.AttrWrap(ui.Text(HEADER_BASE_TEXT), Part.HEADER.value)
        listbox_content = ui.SimpleFocusListWalker([ui.Text('')])
        self.command_box = CommandBox(("highlight", ": "))
        self.box = FancyListBox(listbox_content)
        self.box._app = self
        self.last_query = search_query or 'gpg'

        self.keys = {'q': self._quit,
                     ':': partial(self._set_mode, Mode.COMMAND),
                     'b': self._revert_state,
                     'r': self._reload_state,
                     'esc': partial(self._set_mode, Mode.BASE),
                     'enter': self._process_command}

        self.frame = ui.Frame(self.box, header=self.header, footer=self.command_box)
        self.loop = ui.MainLoop(self.frame, self.palette, unhandled_input=self._unhandled)
        self._set_mode(mode=Mode.BASE, originator=self)
        self._perform_search(search_query)
Exemple #19
0
    def _get_events(self, day):
        """get all events on day, return a DateListBox of `U_Event()`s

        :type day: datetime.date
        """
        event_list = list()
        date_header = DateHeader(
            day=day,
            dateformat=self._conf['locale']['longdateformat'],
            conf=self._conf,
        )
        event_list.append(urwid.AttrMap(date_header, 'date'))
        self.events = sorted(self._collection.get_events_on(day))
        event_list.extend([
            urwid.AttrMap(
                U_Event(event, conf=self._conf, this_date=day, delete_status=self.delete_status),
                'calendar ' + event.calendar, 'reveal focus')
            for event in self.events])
        return urwid.BoxAdapter(
            DateListBox(urwid.SimpleFocusListWalker(event_list), date=day),
            (len(event_list) + 1) if self.events else 1
        )
    def delete_extension_display(self, button):
        body = []

        text = urwid.Text(u'Delete Extension')
        body.append(text)
        body.append(urwid.Divider())

        folder = urwid.Text(self.opened_folder)
        body.append(folder)

        for extension in self.data[self.opened_folder]:
            button = urwid.Button(extension)
            urwid.connect_signal(button, 'click', self.verify_delete_extension)
            body.append(urwid.AttrMap(button, None, focus_map='delete'))

        body.append(urwid.Divider())
        cancel = urwid.Button(u'Cancel')
        urwid.connect_signal(cancel, 'click', self.make_open_folder_display)
        body.append(urwid.AttrMap(cancel, None, focus_map='selected'))

        self.main_widget.original_widget = urwid.ListBox(
            urwid.SimpleFocusListWalker(body))
Exemple #21
0
def pop_sub(button, m_id):
    texts = []
    pop_list = []
    for x in pop_scrape():
        pop_list.append(x)
    texts.append(
        urwid.Text('Matches played within the last 24 hours with\
 over 3,000 spectators'))
    texts.append(urwid.Text(''))
    if len(pop_list) > 0:
        for x in pop_list:
            r_name = x['radiant_team']['team_name']
            d_name = x['dire_team']['team_name']
            if r_name == '':
                r_name = 'Radiant'
            if d_name == '':
                d_name = 'Dire'
            if x['league']['name'] == '':
                league_line = 'Independent'
            else:
                league_line = x['league']['name']
            match_line = "{} vs {}".format(r_name, d_name)
            match_id = str(x['id'])
            texts.append(
                menu_button("{}\n{}".format(league_line, match_line),
                            callback=item_chosen,
                            m_id=[match_id]))
    texts.append(urwid.Text(''))
    done = menu_button('Return to main menu', m_id=m_id, callback=go_back)
    texts.append(done)
    texts.append(urwid.Text(''))
    td_link = urwid.Button('Powered by TrackDota [https://www.trackdota.com]')
    texts.append(urwid.AttrMap(td_link, None, focus_map='reversed'))
    urwid.connect_signal(td_link,
                         'click',
                         open_link,
                         user_arg='https://www.trackdota.com/')
    pile = urwid.ListBox(urwid.SimpleFocusListWalker(texts))
    top.open_box(pile, title='dotaticker - Most Popular Matches')
    def verify_delete_extension(self, button):
        self.extension_to_delete = button.get_label()

        text = urwid.Text(u'Delete extension <{}>?'.format(
            self.extension_to_delete))

        delete = urwid.Button(u'Delete')
        urwid.connect_signal(delete, 'click', self.delete_extension)

        cancel = urwid.Button(u'Cancel')
        urwid.connect_signal(cancel, 'click',
                             self.back_to_opened_folder_display)

        body = [
            text,
            urwid.Divider(),
            urwid.AttrMap(delete, None, focus_map='delete'),
            urwid.AttrMap(cancel, None, focus_map='selected')
        ]

        self.main_widget.original_widget = urwid.ListBox(
            urwid.SimpleFocusListWalker(body))
Exemple #23
0
def m_welcome():
    button_game = urwid.AttrMap(b_game, None, focus_map='reversed')
    button_quit = urwid.AttrMap(b_quit, None, focus_map='reversed')

    buttons_list = urwid.ListBox(
        urwid.SimpleFocusListWalker([button_game, button_quit]))

    buttons_flow = urwid.BoxAdapter(buttons_list, 2)

    buttons = urwid.Filler(buttons_flow, valign='bottom')

    pile = urwid.Pile([('pack', urwid.Divider()), ('weight', 5, title),
                       ('weight', 1, buttons)])

    return urwid.Overlay(urwid.LineBox(pile, title='Welcome'),
                         urwid.SolidFill(' '),
                         align='center',
                         width=('relative', 50),
                         valign='middle',
                         height=('relative', 50),
                         min_width=100,
                         min_height=25)
Exemple #24
0
    def __init__(self, main_loop):
        self._main_loop = main_loop

        self._header = urwid.Text("")
        self._list = urwid.ListBox(urwid.SimpleFocusListWalker([]))
        self._layout = urwid.BoxAdapter(self._list,
                                        0)  # Dynamically change size
        self._edit_box = urwid.Edit()

        self._queue = Queue()
        self._lock = RLock(
        )  # It's important this is an RLock instead of a Lock
        self.previous_prompt = False

        # Initialize the pile.
        self._pile = urwid.Pile([
            urwid.AttrWrap(self._header, "reversed"), self._layout,
            self._edit_box
        ])

        self._edit_box.keypress = self.keypress  # !
        self._pile.focus_item = self._edit_box
Exemple #25
0
    def __init__(self, parent, mind):
        text = """
 write me, help!
 help!"""
        utext = urwid.Text(text, align="left")

        body = [utext]

        back_button = urwid.Button("Back")
        back_button._label.align = "center"
        urwid.connect_signal(back_button, "click", self.back)
        body.append(urwid.AttrMap(back_button, None, focus_map="line"))
        listbox = urwid.ListBox(urwid.SimpleFocusListWalker(body))
        overlay = urwid.Overlay(listbox,
                                urwid.SolidFill(u"\N{MEDIUM SHADE}"),
                                align="center",
                                width=("relative", 60),
                                valign="middle",
                                height=("relative", 60),
                                min_width=40,
                                min_height=16)
        super(HelpFrame, self).__init__(parent, mind, overlay)
Exemple #26
0
async def input_name_version(widget_cb):
    result = create_future()
    name_edit = urwid.Edit("名称: ")
    version_edit = urwid.Edit("版本: ")
    submit_button = urwid.Button("确认")

    def submit(_):
        result.set_result((name_edit.edit_text, version_edit.edit_text))

    urwid.connect_signal(submit_button, "click", submit)

    widget = urwid.Padding(
        urwid.ListBox(
            urwid.SimpleFocusListWalker(
                [name_edit, version_edit, submit_button])),
        align="center",
        width=("relative", 30),
    )

    widget_cb(widget)

    return await result
Exemple #27
0
    def __init__(self, controller: Any) -> None:
        self.controller = controller

        widths = [(len(binding['help_text']) + 4,
                   len(", ".join(binding['keys'])))
                  for binding in KEY_BINDINGS.values()]
        max_widths = [max(width) for width in zip(*widths)]
        self.width = sum(max_widths)

        self.log = urwid.SimpleFocusListWalker([
            urwid.AttrWrap(
                urwid.Columns([
                    urwid.Text(binding['help_text']),
                    (max_widths[1], urwid.Text(", ".join(binding['keys'])))
                ],
                              dividechars=2), None if index % 2 else 'help')
            for index, binding in enumerate(KEY_BINDINGS.values())
        ])

        self.height = len(self.log)

        super(HelpView, self).__init__(self.log)
Exemple #28
0
 def __init__(self, controller: Any) -> None:
     self.controller = controller
     self.log = urwid.SimpleFocusListWalker([
         urwid.Text("Press q to quit.", align='center')
     ])
     for _, binding in KEY_BINDINGS.items():
         commands = ", ".join(binding['keys'])
         self.log.append(
             urwid.Columns([
                 urwid.LineBox(
                     urwid.Text(binding['help_text']),
                     tlcorner=' ', tline=' ', lline=' ', trcorner=' ',
                     blcorner=' ', rline=' ', bline='-', brcorner=' '
                 ),
                 urwid.LineBox(
                     urwid.Text(commands),
                     tlcorner=' ', tline=' ', lline=' ', trcorner=' ',
                     blcorner=' ', rline=' ', bline='-', brcorner=' '
                 )
             ])
         )
     super(HelpView, self).__init__(self.log)
Exemple #29
0
    def menu_view(self) -> Any:
        count = self.model.unread_counts.get('all_msg', 0)
        self.view.home_button = HomeButton(self.controller,
                                           count=count,
                                           width=self.width)

        count = self.model.unread_counts.get('all_pms', 0)
        self.view.pm_button = PMButton(self.controller,
                                       count=count,
                                       width=self.width)

        # Starred messages are by definition read already
        self.view.starred_button = StarredButton(self.controller,
                                                 width=self.width)

        menu_btn_list = [
            self.view.home_button,
            self.view.pm_button,
            self.view.starred_button,
        ]
        w = urwid.ListBox(urwid.SimpleFocusListWalker(menu_btn_list))
        return w
Exemple #30
0
    def __init__(self):
        def selectButton(radio_button, new_state, parameter):
            if new_state:
                closeOverlay()
                self._select(parameter)

        super().__init__(urwid.SimpleFocusListWalker([]))
        buttons = []
        for i, item in enumerate(self._items()):
            if isinstance(item, urwid.Widget):
                self.body.append(item)
                continue
            elif isinstance(item, tuple):
                name, selected, parameter = item
            else:
                parameter = name = item
                selected = False
            self.body.append(
                urwid.RadioButton(buttons, name, selected, selectButton,
                                  parameter))
            if selected:
                self.set_focus(i)