def __init__(self, *contents, tabbar=None): """ Create new Tabs widget contents: Iterable of dictionaries or iterables that match the arguments of the `insert` method tabbar: TabBar instance that is used to display tab titles or any object with a 'base_widget' attribute (e.g. AttrMap) that returns a TabBar object """ if tabbar is None: self._tabbar = TabBar() elif not isinstance(tabbar, urwid.Widget): raise ValueError( 'tabbar must be TabBar instance, not {}: {!r}'.format( type(tabbar).__name__, tabbar)) else: self._tabbar = tabbar self._ids = [] self._focus_history = [] self._info = defaultdict(lambda: {}) self._contents = urwid.MonitoredFocusList() self._contents.set_focus_changed_callback(self._focus_changed_callback) for content in contents: if not isinstance(content, abc.Mapping): content = dict( zip(('title', 'widget', 'position', 'focus'), content)) self.insert(**content)
def __init__(self, *contents, tabbar=None): """Create new Tabs widget contents: Iterable of dictionaries or iterables that match the arguments of the `insert` method tabbar: Columns object that is used to display tab titles or any object with an 'original_widget' attribute (e.g. AttrMap) that returns a Columns object """ if tabbar is None: self._tabbar = urwid.Columns([], dividechars=1) self._tabbar_render = self._tabbar.render elif hasattr(tabbar, 'original_widget'): self._tabbar = tabbar.original_widget self._tabbar_render = tabbar.render elif isinstance(tabbar, urwid.Columns): self._tabbar = tabbar self._tabbar_render = self._tabbar.render else: raise ValueError('tabbar must be Columns, not {}: {!r}' .format(type(tabbar).__name__, tabbar)) self._ids = [] self._contents = urwid.MonitoredFocusList() for content in contents: if not isinstance(content, collections.Mapping): content = dict(zip(('title', 'widget', 'position', 'focus'), content)) self.insert(**content)
def selectable_mode(self,dir_contents=[]): """ Return a Specialized list for use in the Listbox """ traverse_buttons = [urwid.Button('..',on_press=self.select_signal_handler)] traverse_buttons.extend([urwid.CheckBox(file_or_dir,on_state_change=self.change_attr) for file_or_dir in dir_contents ]) return urwid.MonitoredFocusList(traverse_buttons)
def __init__(self, tabs, focus=0): self.tab_list = urwid.MonitoredFocusList(tabs) self.tab_list.focus = focus self.tab_list.set_focus_changed_callback(self.rebuild_tabs) cols = [ urwid.AttrMap( self.tab(t), "active-tab" if i == self.tab_list.focus else "inactive-tab") for i, t in enumerate(tabs) ] self.columns = urwid.Columns(cols) super().__init__(self.columns)