Python urwid.SolidFill() Examples
The following are 25
code examples of urwid.SolidFill().
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: test_container.py From anyMesh-Python with MIT License | 6 votes |
def test_focus_path(self): # big tree of containers t = urwid.Text(u'x') e = urwid.Edit(u'?') c = urwid.Columns([t, e, t, t]) p = urwid.Pile([t, t, c, t]) a = urwid.AttrMap(p, 'gets ignored') s = urwid.SolidFill(u'/') o = urwid.Overlay(e, s, 'center', 'pack', 'middle', 'pack') lb = urwid.ListBox(urwid.SimpleFocusListWalker([t, a, o, t])) lb.focus_position = 1 g = urwid.GridFlow([t, t, t, t, e, t], 10, 0, 0, 'left') g.focus_position = 4 f = urwid.Frame(lb, header=t, footer=g) self.assertEqual(f.get_focus_path(), ['body', 1, 2, 1]) f.set_focus_path(['footer']) # same as f.focus_position = 'footer' self.assertEqual(f.get_focus_path(), ['footer', 4]) f.set_focus_path(['body', 1, 2, 2]) self.assertEqual(f.get_focus_path(), ['body', 1, 2, 2]) self.assertRaises(IndexError, lambda: f.set_focus_path([0, 1, 2])) self.assertRaises(IndexError, lambda: f.set_focus_path(['body', 2, 2])) f.set_focus_path(['body', 2]) # focus the overlay self.assertEqual(f.get_focus_path(), ['body', 2, 1])
Example #2
Source File: treewidgets.py From pycopia with Apache License 2.0 | 6 votes |
def _construct_spacer(self, pos, acc): """ build a spacer that occupies the horizontally indented space between pos's parent and the root node. It will return a list of tuples to be fed into a Columns widget. """ parent = self._walker.parent_position(pos) if parent is not None: grandparent = self._walker.parent_position(parent) if self._indent > 0 and grandparent is not None: parent_sib = self._walker.next_sibling_position(parent) draw_vbar = parent_sib is not None and self._arrow_vbar_char is not None space_width = self._indent - 1 * ( draw_vbar) - self._childbar_offset if space_width > 0: void = AttrMap(urwid.SolidFill(' '), self._arrow_att) acc.insert(0, ((space_width, void))) if draw_vbar: barw = urwid.SolidFill(self._arrow_vbar_char) bar = AttrMap( barw, self._arrow_vbar_att or self._arrow_att) acc.insert(0, ((1, bar))) return self._construct_spacer(parent, acc) else: return acc
Example #3
Source File: test_container.py From anyMesh-Python with MIT License | 6 votes |
def test_overlay(self): s1 = urwid.SolidFill(u'1') s2 = urwid.SolidFill(u'2') o = urwid.Overlay(s1, s2, 'center', ('relative', 50), 'middle', ('relative', 50)) self.assertEqual(o.focus, s1) self.assertEqual(o.focus_position, 1) self.assertRaises(IndexError, lambda: setattr(o, 'focus_position', None)) self.assertRaises(IndexError, lambda: setattr(o, 'focus_position', 2)) self.assertEqual(o.contents[0], (s2, urwid.Overlay._DEFAULT_BOTTOM_OPTIONS)) self.assertEqual(o.contents[1], (s1, ( 'center', None, 'relative', 50, None, 0, 0, 'middle', None, 'relative', 50, None, 0, 0)))
Example #4
Source File: s_tui.py From s-tui with GNU General Public License v2.0 | 6 votes |
def on_unicode_checkbox(self, w=None, state=False): """Enable smooth edges if utf-8 is supported""" logging.debug("unicode State is %s", state) # Update the controller to the state of the checkbox self.controller.smooth_graph_mode = state if state: self.hline = urwid.AttrWrap( urwid.SolidFill(u'\N{LOWER ONE QUARTER BLOCK}'), 'line') else: self.hline = urwid.AttrWrap(urwid.SolidFill(u' '), 'line') for graph in self.graphs.values(): graph.set_smooth_colors(state) self.show_graphs()
Example #5
Source File: gui.py From TWchat with MIT License | 5 votes |
def createLoop(self): placeholder = urwid.SolidFill() urwid.set_encoding("UTF-8") self.loop = urwid.MainLoop(placeholder,self.palette,unhandled_input=exit_on_alt_q) self.loop.screen.set_terminal_properties(colors=256) self.loop.widget = urwid.AttrMap(placeholder, 'bg') self.loop.widget.original_widget = urwid.Filler(self.createLayout()) self.loop.run()
Example #6
Source File: timeline.py From toot with GNU General Public License v3.0 | 5 votes |
def __init__(self, name, statuses, focus=0, is_thread=False): self.name = name self.is_thread = is_thread self.statuses = statuses self.status_list = self.build_status_list(statuses, focus=focus) try: self.status_details = StatusDetails(statuses[focus], is_thread) except IndexError: self.status_details = StatusDetails(None, is_thread) super().__init__([ ("weight", 40, self.status_list), ("weight", 0, urwid.AttrWrap(urwid.SolidFill("│"), "blue_selected")), ("weight", 60, urwid.Padding(self.status_details, left=1)), ])
Example #7
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_columns(self): self.wstest(urwid.Columns([urwid.SolidFill()])) self.wstest(urwid.Columns([(4, urwid.SolidFill())]))
Example #8
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_pile(self): self.wstest(urwid.Pile([urwid.SolidFill()])) self.wstest(urwid.Pile([('flow', urwid.Text("hello"))])) self.wstest(urwid.Pile([]))
Example #9
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_frame(self): self.wstest(urwid.Frame(urwid.SolidFill())) self.wstest(urwid.Frame(urwid.SolidFill(), header=urwid.Text("hello"))) self.wstest(urwid.Frame(urwid.SolidFill(), header=urwid.Text("hello"), footer=urwid.Text("hello")))
Example #10
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_solidfill(self): self.wstest(urwid.SolidFill())
Example #11
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_get_cursor_coords(self): self.assertEqual(urwid.Overlay(urwid.Filler(urwid.Edit()), urwid.SolidFill(u'B'), 'right', 1, 'bottom', 1).get_cursor_coords((2,2)), (1,1))
Example #12
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_old_params(self): o1 = urwid.Overlay(urwid.SolidFill(u'X'), urwid.SolidFill(u'O'), ('fixed left', 5), ('fixed right', 4), ('fixed top', 3), ('fixed bottom', 2),) self.assertEqual(o1.contents[1][1], ( 'left', None, 'relative', 100, None, 5, 4, 'top', None, 'relative', 100, None, 3, 2)) o2 = urwid.Overlay(urwid.SolidFill(u'X'), urwid.SolidFill(u'O'), ('fixed right', 5), ('fixed left', 4), ('fixed bottom', 3), ('fixed top', 2),) self.assertEqual(o2.contents[1][1], ( 'right', None, 'relative', 100, None, 4, 5, 'bottom', None, 'relative', 100, None, 2, 3))
Example #13
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_old_attributes(self): c = urwid.Columns([urwid.Text(u'a'), urwid.SolidFill(u'x')], box_columns=[1]) self.assertEqual(c.box_columns, [1]) c.box_columns=[] self.assertEqual(c.box_columns, [])
Example #14
Source File: test_container.py From anyMesh-Python with MIT License | 5 votes |
def test_zero_weight(self): p = urwid.Pile([ urwid.SolidFill('a'), ('weight', 0, urwid.SolidFill('d')), ]) p.render((5, 4))
Example #15
Source File: ui.py From sen with MIT License | 5 votes |
def get_app_in_loop(pallete): screen = urwid.raw_display.Screen() screen.set_terminal_properties(256) screen.register_palette(pallete) ui = UI(urwid.SolidFill()) decorated_ui = urwid.AttrMap(ui, "root") loop = ThreadSafeLoop(decorated_ui, screen=screen, event_loop=urwid.AsyncioEventLoop(), handle_mouse=False) ui.loop = loop return loop, ui
Example #16
Source File: terminal.py From terminal-leetcode with MIT License | 5 votes |
def show_loading(self, text, width, host_view=urwid.SolidFill()): self.loading_view = LoadingView(text, width, host_view, self.loop) self.loop.widget = self.loading_view self.loading_view.start()
Example #17
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 #18
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 #19
Source File: ui.py From tildemush with GNU General Public License v3.0 | 5 votes |
def __init__(self, loop): base = urwid.SolidFill("") self.loop = urwid.MainLoop( base, event_loop=urwid.AsyncioEventLoop(loop=loop), palette=palettes) self.base = base
Example #20
Source File: ui.py From tildemush with GNU General Public License v3.0 | 5 votes |
def solidfill(s, theme='basic'): return urwid.AttrMap(urwid.SolidFill(s), theme)
Example #21
Source File: s_tui.py From s-tui with GNU General Public License v2.0 | 5 votes |
def __init__(self, controller): # constants self.left_margin = 0 self.top_margin = 0 # main control self.controller = controller self.main_window_w = [] # general urwid items self.clock_view = urwid.Text(ZERO_TIME, align="center") self.refresh_rate_ctrl = urwid.Edit((u'Refresh[s]:'), self.controller.refresh_rate) self.hline = urwid.AttrWrap(urwid.SolidFill(u' '), 'line') self.mode_buttons = [] self.summary_widget_index = None # Visible graphs are the graphs currently displayed, this is a # subset of the available graphs for display self.graph_place_holder = urwid.WidgetPlaceholder(urwid.Pile([])) # construct the various menus during init phase self.stress_menu = StressMenu(self.on_menu_close, self.controller.stress_exe) self.help_menu = HelpMenu(self.on_menu_close) self.about_menu = AboutMenu(self.on_menu_close) self.graphs_menu = SensorsMenu(self.on_graphs_menu_close, self.controller.sources, self.controller.graphs_default_conf) self.summary_menu = SensorsMenu(self.on_summary_menu_close, self.controller.sources, self.controller.summary_default_conf) # call super urwid.WidgetPlaceholder.__init__(self, self.main_window()) urwid.connect_signal(self.refresh_rate_ctrl, 'change', self.update_refresh_rate)
Example #22
Source File: treewidgets.py From pycopia with Apache License 2.0 | 5 votes |
def _construct_line(self, pos): """ builds a list element for given position in the tree. It consists of the original widget taken from the TreeWalker and some decoration columns depending on the existence of parent and sibling positions. The result is a urwid.Culumns widget. """ line = None if pos is not None: indent = self._walker.depth(pos) * self._indent cols = [(indent, urwid.SolidFill(' ')), # spacer self._walker[pos]] # original widget ] # construct a Columns, defining all spacer as Box widgets line = urwid.Columns(cols, box_columns=range(len(cols))[:-1]) return line
Example #23
Source File: test_container.py From anyMesh-Python with MIT License | 4 votes |
def test_pile(self): t1 = urwid.Text(u'one') t2 = urwid.Text(u'two') t3 = urwid.Text(u'three') sf = urwid.SolidFill('x') p = urwid.Pile([]) self.assertEqual(p.focus, None) self.assertRaises(IndexError, lambda: getattr(p, 'focus_position')) self.assertRaises(IndexError, lambda: setattr(p, 'focus_position', None)) self.assertRaises(IndexError, lambda: setattr(p, 'focus_position', 0)) p.contents = [(t1, ('pack', None)), (t2, ('pack', None)), (sf, ('given', 3)), (t3, ('pack', None))] p.focus_position = 1 del p.contents[0] self.assertEqual(p.focus_position, 0) p.contents[0:0] = [(t3, ('pack', None)), (t2, ('pack', None))] p.contents.insert(3, (t1, ('pack', None))) self.assertEqual(p.focus_position, 2) self.assertRaises(urwid.PileError, lambda: p.contents.append(t1)) self.assertRaises(urwid.PileError, lambda: p.contents.append((t1, None))) self.assertRaises(urwid.PileError, lambda: p.contents.append((t1, 'given'))) p = urwid.Pile([t1, t2]) self.assertEqual(p.focus, t1) self.assertEqual(p.focus_position, 0) p.focus_position = 1 self.assertEqual(p.focus, t2) self.assertEqual(p.focus_position, 1) p.focus_position = 0 self.assertRaises(IndexError, lambda: setattr(p, 'focus_position', -1)) self.assertRaises(IndexError, lambda: setattr(p, 'focus_position', 2)) # old methods: p.set_focus(0) self.assertRaises(IndexError, lambda: p.set_focus(-1)) self.assertRaises(IndexError, lambda: p.set_focus(2)) p.set_focus(t2) self.assertEqual(p.focus_position, 1) self.assertRaises(ValueError, lambda: p.set_focus('nonexistant')) self.assertEqual(p.widget_list, [t1, t2]) self.assertEqual(p.item_types, [('weight', 1), ('weight', 1)]) p.widget_list = [t2, t1] self.assertEqual(p.widget_list, [t2, t1]) self.assertEqual(p.contents, [(t2, ('weight', 1)), (t1, ('weight', 1))]) self.assertEqual(p.focus_position, 1) # focus unchanged p.item_types = [('flow', None), ('weight', 2)] self.assertEqual(p.item_types, [('flow', None), ('weight', 2)]) self.assertEqual(p.contents, [(t2, ('pack', None)), (t1, ('weight', 2))]) self.assertEqual(p.focus_position, 1) # focus unchanged p.widget_list = [t1] self.assertEqual(len(p.contents), 1) self.assertEqual(p.focus_position, 0) p.widget_list.extend([t2, t1]) self.assertEqual(len(p.contents), 3) self.assertEqual(p.item_types, [ ('flow', None), ('weight', 1), ('weight', 1)]) p.item_types[:] = [('weight', 2)] self.assertEqual(len(p.contents), 1)
Example #24
Source File: treewidgets.py From pycopia with Apache License 2.0 | 4 votes |
def _construct_first_indent(self, pos): """ build spacer to occupy the first indentation level from pos to the left. This is separate as it adds arrowtip and sibling connector. """ cols = [] void = AttrMap(urwid.SolidFill(' '), self._arrow_att) available_width = self._indent if self._walker.depth(pos) > 0: connector = self._construct_connector(pos) if connector is not None: width = connector.pack()[0] if width > available_width: raise TreeDecorationError(NO_SPACE_MSG) available_width -= width if self._walker.next_sibling_position(pos) is not None: barw = urwid.SolidFill(self._arrow_vbar_char) below = AttrMap(barw, self._arrow_vbar_att or self._arrow_att) else: below = void # pile up connector and bar spacer = urwid.Pile([('pack', connector), below]) cols.append((width, spacer)) #arrow tip awidth, at = self._construct_arrow_tip(pos) if at is not None: if awidth > available_width: raise TreeDecorationError(NO_SPACE_MSG) available_width -= awidth at_spacer = urwid.Pile([('pack', at), void]) cols.append((awidth, at_spacer)) # bar between connector and arrow tip if available_width > 0: barw = urwid.SolidFill(self._arrow_hbar_char) bar = AttrMap(barw, self._arrow_hbar_att or self._arrow_att) hb_spacer = urwid.Pile([(1, bar), void]) cols.insert(1, (available_width, hb_spacer)) return cols
Example #25
Source File: treewidgets.py From pycopia with Apache License 2.0 | 4 votes |
def _construct_line(self, pos): """ builds a list element for given position in the tree. It consists of the original widget taken from the TreeWalker and some decoration columns depending on the existence of parent and sibling positions. The result is a urwid.Culumns widget. """ void = SolidFill(' ') line = None if pos is not None: cols = [] depth = self._walker.depth(pos) # add spacer filling all but the last indent if depth > 0: cols.append( (depth * self._indent, urwid.SolidFill(' '))), # spacer # construct last indent iwidth, icon = self._construct_collapse_icon(pos) available_space = self._indent firstindent_width = self._icon_offset + iwidth # stop if indent is too small for this decoration if firstindent_width > available_space: raise TreeDecorationError(NO_SPACE_MSG) # add icon only for non-leafs if self._walker.first_child_position(pos) is not None: if icon is not None: # space to the left cols.append( (available_space - firstindent_width, SolidFill(' '))) # icon icon_pile = urwid.Pile([('pack', icon), void]) cols.append((iwidth, icon_pile)) # spacer until original widget available_space = self._icon_offset cols.append((available_space, SolidFill(' '))) else: # otherwise just add another spacer cols.append((self._indent, SolidFill(' '))) cols.append(self._walker[pos]) # original widget ] # construct a Columns, defining all spacer as Box widgets line = urwid.Columns(cols, box_columns=range(len(cols))[:-1]) return line # needs to be overwritten as CollapseMixin doesn't empty the caches