<html> <head> <title>Urwid 1.0.1 Reference</title> <style type="text/css"> h1 { text-align: center; } h2 { margin: 40px 0 0 0; padding: 10px; background: #6d96e8;} h3 { margin: 0 0 3px 0; padding: 12px 6px 6px 6px; background: #efef96;} .l1 { margin: 12px 0 0 0; } .l2 { margin-left: 20px; } </style> <body> <a name="top"></a> <h1>Urwid 1.0.1 Reference</h1> <div style="text-align: center;"> <a href="http://excess.org/urwid/">Urwid Home Page</a> / <a href="http://excess.org/urwid/examples.html">Example Screenshots</a> / <a href="http://excess.org/urwid/utf8examples.html">UTF-8 Screenshots</a> / <a href="tutorial.html">Tutorial</a> / Reference </div> <br> <table width="100%"><tr><td width="33%" valign="top"><div class="l1">MainLoop & event loops</div><div class="l2"><a href="#MainLoop">MainLoop</a> </div><div class="l2"><a href="#SelectEventLoop">SelectEventLoop</a> </div><div class="l2"><a href="#GLibEventLoop">GLibEventLoop</a> </div><div class="l2"><a href="#TwistedEventLoop">TwistedEventLoop</a> </div><div class="l1">Widget base class</div><div class="l2"><a href="#Widget">Widget</a> </div><div class="l1">Decorations</div><div class="l2"><a href="#AttrMap">AttrMap</a> [<b>F</b>/<b>B</b>]</div><div class="l2"><a href="#Padding">Padding</a> [<b>F</b>/<b>B</b>]</div><div class="l2"><a href="#Filler">Filler</a> [<b>B</b>]</div><div class="l2"><a href="#Divider">Divider</a> [<b>F</b>]</div><div class="l2"><a href="#LineBox">LineBox</a> [<b>F</b>/<b>B</b>]</div><div class="l2"><a href="#SolidFill">SolidFill</a> [<b>B</b>]</div><div class="l1">Container widgets</div><div class="l2"><a href="#Frame">Frame</a> [<b>B</b>]</div><div class="l2"><a href="#ListBox">ListBox</a> [<b>B</b>]</div><div class="l2"><a href="#Columns">Columns</a> [<b>F</b>/<b>B</b>]</div><div class="l2"><a href="#Pile">Pile</a> [<b>F</b>/<b>B</b>]</div><div class="l2"><a href="#GridFlow">GridFlow</a> [<b>F</b>]</div><div class="l2"><a href="#BoxAdapter">BoxAdapter</a> [<b>F</b>]</div><div class="l2"><a href="#Overlay">Overlay</a> [<b>B</b>]</div><div class="l1">Content widgets</div><div class="l2"><a href="#Text">Text</a> [<b>F</b>]</div><div class="l2"><a href="#Edit">Edit</a> [<b>F</b>]</div><div class="l2"><a href="#IntEdit">IntEdit</a> [<b>F</b>]</div><div class="l2"><a href="#Button">Button</a> [<b>F</b>]</div><div class="l2"><a href="#CheckBox">CheckBox</a> [<b>F</b>]</div><div class="l2"><a href="#RadioButton">RadioButton</a> [<b>F</b>]</div></td><td width="33%" valign="top"><div class="l1">Graphics</div><div class="l2"><a href="#BarGraph">BarGraph</a> [<b>B</b>]</div><div class="l2"><a href="#GraphVScale">GraphVScale</a> [<b>B</b>]</div><div class="l2"><a href="#ProgressBar">ProgressBar</a> [<b>F</b>]</div><div class="l2"><a href="#PopUpLauncher">PopUpLauncher</a> </div><div class="l2"><a href="#PopUpTarget">PopUpTarget</a> [<b>B</b>]</div><div class="l2"><a href="#BigText">BigText</a> [<b>X</b>]</div><div class="l2"><a href="#get_all_fonts">get_all_fonts</a> </div><div class="l1">Build custom widgets</div><div class="l2"><a href="#WidgetWrap">WidgetWrap</a> </div><div class="l2"><a href="#WidgetDecoration">WidgetDecoration</a> </div><div class="l2"><a href="#WidgetPlaceholder">WidgetPlaceholder</a> </div><div class="l1">Abstract widgets & interfaces</div><div class="l2"><a href="#Widget_interface_definition">Widget interface definition</a> </div><div class="l2"><a href="#BoxWidget">BoxWidget</a> </div><div class="l2"><a href="#FlowWidget">FlowWidget</a> </div><div class="l2"><a href="#FixedWidget">FixedWidget</a> </div><div class="l1">ListBox list walkers</div><div class="l2"><a href="#List_Walker_interface_definition">List Walker interface definition</a> </div><div class="l2"><a href="#ListWalker">ListWalker</a> </div><div class="l2"><a href="#SimpleListWalker">SimpleListWalker</a> </div><div class="l2"><a href="#PollingListWalker">PollingListWalker</a> </div><div class="l1">Dynamic tree views</div><div class="l2"><a href="#TreeWidget">TreeWidget</a> </div><div class="l2"><a href="#TreeNode">TreeNode</a> </div><div class="l2"><a href="#ParentNode">ParentNode</a> </div><div class="l2"><a href="#TreeWalker">TreeWalker</a> </div><div class="l2"><a href="#TreeListBox">TreeListBox</a> </div><div class="l1">Experimental</div><div class="l2"><a href="#Terminal">Terminal</a> [<b>B</b>]</div></td><td width="33%" valign="top"><div class="l1">Canvas painting</div><div class="l2"><a href="#Canvas">Canvas</a> </div><div class="l2"><a href="#TextCanvas">TextCanvas</a> </div><div class="l2"><a href="#CompositeCanvas">CompositeCanvas</a> </div><div class="l2"><a href="#BlankCanvas">BlankCanvas</a> </div><div class="l2"><a href="#SolidCanvas">SolidCanvas</a> </div><div class="l2"><a href="#CanvasCombine">CanvasCombine</a> </div><div class="l2"><a href="#CanvasJoin">CanvasJoin</a> </div><div class="l2"><a href="#CanvasOverlay">CanvasOverlay</a> </div><div class="l1">Raw screen attributes</div><div class="l2"><a href="#AttrSpec">AttrSpec</a> </div><div class="l1">Custom formatting rules</div><div class="l2"><a href="#TextLayout">TextLayout</a> </div><div class="l2"><a href="#StandardTextLayout">StandardTextLayout</a> </div><div class="l1">Character encoding</div><div class="l2"><a href="#set_encoding">set_encoding</a> </div><div class="l2"><a href="#get_encoding_mode">get_encoding_mode</a> </div><div class="l2"><a href="#supports_unicode">supports_unicode</a> </div><div class="l1">Signals</div><div class="l2"><a href="#connect_signal">connect_signal</a> </div><div class="l2"><a href="#disconnect_signal">disconnect_signal</a> </div><div class="l2"><a href="#register_signal">register_signal</a> </div><div class="l2"><a href="#emit_signal">emit_signal</a> </div><div class="l1">Display modules</div><div class="l2"><a href="#raw_display.Screen">raw_display.Screen</a> </div><div class="l2"><a href="#curses_display.Screen">curses_display.Screen</a> </div><div class="l2"><a href="#web_display.Screen">web_display.Screen</a> </div><div class="l1">Screen capture</div><div class="l2"><a href="#html_fragment.screenshot_init">html_fragment.screenshot_init</a> </div><div class="l2"><a href="#html_fragment.screenshot_collect">html_fragment.screenshot_collect</a> </div><div class="l2"><a href="#html_fragment.HtmlGenerator">html_fragment.HtmlGenerator</a> </div></td></tr></table> <br> [<b>F</b>] = Flow Widget displayed with assigned screen columns and variable screen rows<br> [<b>B</b>] = Box Widget displayed with assigned screen columns and assigned screen rows<br> [<b>F</b>/<b>B</b>] = May behave as either Flow Widget or Box Widget<br> [<b>X</b>] = Fixed Widget has a fixed number of screen columns and rows <br> <h2>MainLoop & event loops</h2><a name="MainLoop"></a><h3>function MainLoop <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="MainLoop">class <strong>MainLoop</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="MainLoop-__init__"><strong>__init__</strong></a>(self, widget, palette<font color="#909090">=[]</font>, screen<font color="#909090">=None</font>, handle_mouse<font color="#909090">=True</font>, input_filter<font color="#909090">=None</font>, unhandled_input<font color="#909090">=None</font>, event_loop<font color="#909090">=None</font>, pop_ups<font color="#909090">=False</font>)</dt><dd><tt>Simple main loop implementation.<br> <br> widget -- topmost widget used for painting the screen,<br> stored as self.<strong>widget</strong> and may be modified<br> palette -- initial palette for screen<br> screen -- screen object or None to use raw_display.Screen,<br> stored as self.<strong>screen</strong><br> handle_mouse -- True to process mouse events, passed to<br> self.<strong>screen</strong><br> input_filter -- a function to filter input before sending<br> it to self.<strong>widget</strong>, called from self.<strong>input_filter</strong><br> unhandled_input -- a function called when input is not<br> handled by self.<strong>widget</strong>, called from self.<strong>unhandled_input</strong><br> event_loop -- if screen supports external an event loop it<br> may be given here, or leave as None to use<br> SelectEventLoop, stored as self.<strong>event_loop</strong><br> pop_ups -- True to wrap self.<strong>widget</strong> with a PopUpTarget<br> instance to allow any widget to open a pop-up anywhere on<br> the screen<br> <br> This is the standard main loop implementation with a single<br> screen.<br> <br> The widget passed must be a box widget.</tt></dd></dl> <dl><dt><a name="MainLoop-draw_screen"><strong>draw_screen</strong></a>(self)</dt><dd><tt>Renter the widgets and paint the screen. This function is<br> called automatically from run() but may be called additional<br> times if repainting is required without also processing input.</tt></dd></dl> <dl><dt><a name="MainLoop-entering_idle"><strong>entering_idle</strong></a>(self)</dt><dd><tt>This function is called whenever the event loop is about<br> to enter the idle state. draw_screen() is called here<br> to update the screen if anything has changed.</tt></dd></dl> <dl><dt><a name="MainLoop-input_filter"><strong>input_filter</strong></a>(self, keys, raw)</dt><dd><tt>This function is passed each all the input events and raw<br> keystroke values. These values are passed to the<br> input_filter function passed to the constructor. That<br> function must return a list of keys to be passed to the<br> widgets to handle. If no input_filter was defined this<br> implementation will return all the input events.<br> <br> input -- keyboard or mouse input</tt></dd></dl> <dl><dt><a name="MainLoop-process_input"><strong>process_input</strong></a>(self, keys)</dt><dd><tt>This function will pass keyboard input and mouse events<br> to self.<strong>widget</strong>. This function is called automatically<br> from the run() method when there is input, but may also be<br> called to simulate input from the user.<br> <br> keys -- list of input returned from self.<strong>screen</strong>.get_input()<br> <br> Returns True if any key was handled by a widget or the<br> unhandled_input() method. <br> <br> >>> w = _refl("widget")<br> >>> w.selectable_rval = True<br> >>> scr = _refl("screen")<br> >>> scr.get_cols_rows_rval = (10, 5)<br> >>> ml = MainLoop(w, [], scr)<br> >>> ml.process_input(['enter', ('mouse drag', 1, 14, 20)])<br> screen.get_cols_rows()<br> widget.selectable()<br> widget.keypress((10, 5), 'enter')<br> widget.mouse_event((10, 5), 'mouse drag', 1, 14, 20, focus=True)<br> True</tt></dd></dl> <dl><dt><a name="MainLoop-remove_alarm"><strong>remove_alarm</strong></a>(self, handle)</dt><dd><tt>Remove an alarm.<br> <br> Return True if the handle was found, False otherwise.</tt></dd></dl> <dl><dt><a name="MainLoop-remove_watch_file"><strong>remove_watch_file</strong></a>(self, handle)</dt><dd><tt>Remove a watch file.<br> <br> Returns True if the watch file exists, False otherwise.</tt></dd></dl> <dl><dt><a name="MainLoop-remove_watch_pipe"><strong>remove_watch_pipe</strong></a>(self, write_fd)</dt><dd><tt>Close the read end of the pipe and remove the watch created<br> by watch_pipe(). You are responsible for closing the write<br> end of the pipe.<br> <br> Returns True if the watch pipe exists, False otherwise</tt></dd></dl> <dl><dt><a name="MainLoop-run"><strong>run</strong></a>(self)</dt><dd><tt>Start the main loop handling input events and updating <br> the screen. The loop will continue until an ExitMainLoop <br> exception is raised. <br> <br> This function will call screen.run_wrapper() if screen.start() <br> has not already been called.<br> <br> >>> w = _refl("widget") # _refl prints out function calls<br> >>> w.render_rval = "fake canvas" # *_rval is used for return values<br> >>> scr = _refl("screen")<br> >>> scr.get_input_descriptors_rval = [42]<br> >>> scr.get_cols_rows_rval = (20, 10)<br> >>> scr.started = True<br> >>> scr._urwid_signals = {}<br> >>> evl = _refl("event_loop")<br> >>> evl.enter_idle_rval = 1<br> >>> evl.watch_file_rval = 2<br> >>> ml = MainLoop(w, [], scr, event_loop=evl)<br> >>> ml.run() # doctest:+ELLIPSIS<br> screen.set_mouse_tracking()<br> screen.get_cols_rows()<br> widget.render((20, 10), focus=True)<br> screen.draw_screen((20, 10), 'fake canvas')<br> screen.get_input_descriptors()<br> event_loop.watch_file(42, <bound method ...>)<br> event_loop.enter_idle(<bound method ...>)<br> event_loop.run()<br> event_loop.remove_enter_idle(1)<br> event_loop.remove_watch_file(2)<br> >>> scr.started = False<br> >>> ml.run() # doctest:+ELLIPSIS<br> screen.run_wrapper(<bound method ...>)</tt></dd></dl> <dl><dt><a name="MainLoop-set_alarm_at"><strong>set_alarm_at</strong></a>(self, tm, callback, user_data<font color="#909090">=None</font>)</dt><dd><tt>Schedule at tm time that will call <br> callback(main_loop, user_data) from the within the run()<br> function.<br> <br> Returns a handle that may be passed to remove_alarm()<br> <br> tm -- floating point local time of alarm<br> callback -- callback(main_loop, user_data) callback function<br> user_data -- object to pass to callback</tt></dd></dl> <dl><dt><a name="MainLoop-set_alarm_in"><strong>set_alarm_in</strong></a>(self, sec, callback, user_data<font color="#909090">=None</font>)</dt><dd><tt>Schedule an alarm in sec seconds that will call<br> callback(main_loop, user_data) from the within the run()<br> function.<br> <br> sec -- floating point seconds until alarm<br> callback -- callback(main_loop, user_data) callback function<br> user_data -- object to pass to callback</tt></dd></dl> <dl><dt><a name="MainLoop-unhandled_input"><strong>unhandled_input</strong></a>(self, input)</dt><dd><tt>This function is called with any input that was not handled<br> by the widgets, and calls the unhandled_input function passed<br> to the constructor. If no unhandled_input was defined then<br> the input will be ignored.<br> <br> input -- keyboard or mouse input<br> <br> The unhandled_input method should return True if it handled<br> the input.</tt></dd></dl> <dl><dt><a name="MainLoop-watch_file"><strong>watch_file</strong></a>(self, fd, callback)</dt><dd><tt>Call callback() when fd has some data to read. No parameters<br> are passed to callback.<br> <br> Returns a handle that may be passed to remove_watch_file()<br> <br> fd -- file descriptor to watch for input<br> callback -- function to call when input is available</tt></dd></dl> <dl><dt><a name="MainLoop-watch_pipe"><strong>watch_pipe</strong></a>(self, callback)</dt><dd><tt>Create a pipe for use by a subprocess or thread to trigger<br> a callback in the process/thread running the MainLoop.<br> <br> callback -- function to call MainLoop.run thread/process<br> <br> This function returns a file descriptor attached to the<br> write end of a pipe. The read end of the pipe is added to<br> the list of files the event loop is watching. When<br> data is written to the pipe the callback function will be<br> called and passed a single value containing data read.<br> <br> This method should be used any time you want to update<br> widgets from another thread or subprocess.<br> <br> Data may be written to the returned file descriptor with<br> os.write(fd, data). Ensure that data is less than 512<br> bytes (or 4K on Linux) so that the callback will be<br> triggered just once with the complete value of data<br> passed in.<br> <br> If the callback returns False then the watch will be<br> removed and the read end of the pipe will be closed.<br> You are responsible for closing the write end of the pipe.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>pop_ups</strong></dt> </dl> <dl><dt><strong>widget</strong></dt> </dl> <a name="SelectEventLoop"></a><h3>function SelectEventLoop <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="SelectEventLoop">class <strong>SelectEventLoop</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="SelectEventLoop-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Event loop based on select.select()<br> <br> >>> import os<br> >>> rd, wr = os.pipe()<br> >>> evl = SelectEventLoop()<br> >>> def step1():<br> ... print "writing"<br> ... os.write(wr, "hi".encode('ascii'))<br> >>> def step2():<br> ... print os.read(rd, 2).decode('ascii')<br> ... raise ExitMainLoop<br> >>> handle = evl.alarm(0, step1)<br> >>> handle = evl.watch_file(rd, step2)<br> >>> evl.run()<br> writing<br> hi</tt></dd></dl> <dl><dt><a name="SelectEventLoop-alarm"><strong>alarm</strong></a>(self, seconds, callback)</dt><dd><tt>Call callback() given time from from now. No parameters are<br> passed to callback.<br> <br> Returns a handle that may be passed to remove_alarm()<br> <br> seconds -- floating point time to wait before calling callback<br> callback -- function to call from event loop</tt></dd></dl> <dl><dt><a name="SelectEventLoop-enter_idle"><strong>enter_idle</strong></a>(self, callback)</dt><dd><tt>Add a callback for entering idle. <br> <br> Returns a handle that may be passed to remove_idle()</tt></dd></dl> <dl><dt><a name="SelectEventLoop-remove_alarm"><strong>remove_alarm</strong></a>(self, handle)</dt><dd><tt>Remove an alarm.<br> <br> Returns True if the alarm exists, False otherwise<br> <br> >>> evl = SelectEventLoop()<br> >>> handle = evl.alarm(50, lambda: None)<br> >>> evl.remove_alarm(handle)<br> True<br> >>> evl.remove_alarm(handle)<br> False</tt></dd></dl> <dl><dt><a name="SelectEventLoop-remove_enter_idle"><strong>remove_enter_idle</strong></a>(self, handle)</dt><dd><tt>Remove an idle callback.<br> <br> Returns True if the handle was removed.</tt></dd></dl> <dl><dt><a name="SelectEventLoop-remove_watch_file"><strong>remove_watch_file</strong></a>(self, handle)</dt><dd><tt>Remove an input file.<br> <br> Returns True if the input file exists, False otherwise<br> <br> >>> evl = SelectEventLoop()<br> >>> handle = evl.watch_file(5, lambda: None)<br> >>> evl.remove_watch_file(handle)<br> True<br> >>> evl.remove_watch_file(handle)<br> False</tt></dd></dl> <dl><dt><a name="SelectEventLoop-run"><strong>run</strong></a>(self)</dt><dd><tt>Start the event loop. Exit the loop when any callback raises<br> an exception. If ExitMainLoop is raised, exit cleanly.<br> <br> >>> import os<br> >>> rd, wr = os.pipe()<br> >>> os.write(wr, "data".encode('ascii')) # something to read from rd<br> 4<br> >>> evl = SelectEventLoop()<br> >>> def say_hello():<br> ... print "hello"<br> >>> def say_waiting():<br> ... print "waiting"<br> >>> def exit_clean():<br> ... print "clean exit"<br> ... raise ExitMainLoop<br> >>> def exit_error():<br> ... 1/0<br> >>> handle = evl.alarm(0.01, exit_clean)<br> >>> handle = evl.alarm(0.005, say_hello)<br> >>> evl.enter_idle(say_waiting)<br> 1<br> >>> evl.run()<br> waiting<br> hello<br> waiting<br> clean exit<br> >>> handle = evl.watch_file(rd, exit_clean)<br> >>> evl.run()<br> clean exit<br> >>> evl.remove_watch_file(handle)<br> True<br> >>> handle = evl.alarm(0, exit_error)<br> >>> evl.run()<br> Traceback (most recent call last):<br> ...<br> ZeroDivisionError: integer division or modulo by zero<br> >>> handle = evl.watch_file(rd, exit_error)<br> >>> evl.run()<br> Traceback (most recent call last):<br> ...<br> ZeroDivisionError: integer division or modulo by zero</tt></dd></dl> <dl><dt><a name="SelectEventLoop-watch_file"><strong>watch_file</strong></a>(self, fd, callback)</dt><dd><tt>Call callback() when fd has some data to read. No parameters<br> are passed to callback.<br> <br> Returns a handle that may be passed to remove_watch_file()<br> <br> fd -- file descriptor to watch for input<br> callback -- function to call when input is available</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <a name="GLibEventLoop"></a><h3>function GLibEventLoop <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="GLibEventLoop">class <strong>GLibEventLoop</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="GLibEventLoop-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Event loop based on gobject.MainLoop<br> <br> >>> import os<br> >>> rd, wr = os.pipe()<br> >>> evl = GLibEventLoop()<br> >>> def step1():<br> ... print "writing"<br> ... os.write(wr, "hi")<br> >>> def step2():<br> ... print os.read(rd, 2)<br> ... raise ExitMainLoop<br> >>> handle = evl.alarm(0, step1)<br> >>> handle = evl.watch_file(rd, step2)<br> >>> evl.run()<br> writing<br> hi</tt></dd></dl> <dl><dt><a name="GLibEventLoop-alarm"><strong>alarm</strong></a>(self, seconds, callback)</dt><dd><tt>Call callback() given time from from now. No parameters are<br> passed to callback.<br> <br> Returns a handle that may be passed to remove_alarm()<br> <br> seconds -- floating point time to wait before calling callback<br> callback -- function to call from event loop</tt></dd></dl> <dl><dt><a name="GLibEventLoop-enter_idle"><strong>enter_idle</strong></a>(self, callback)</dt><dd><tt>Add a callback for entering idle.<br> <br> Returns a handle that may be passed to remove_enter_idle()</tt></dd></dl> <dl><dt><a name="GLibEventLoop-handle_exit"><strong>handle_exit</strong></a>(self, f)</dt><dd><tt>Decorator that cleanly exits the GLibEventLoop if ExitMainLoop is<br> thrown inside of the wrapped function. Store the exception info if <br> some other exception occurs, it will be reraised after the loop quits.<br> f -- function to be wrapped</tt></dd></dl> <dl><dt><a name="GLibEventLoop-remove_alarm"><strong>remove_alarm</strong></a>(self, handle)</dt><dd><tt>Remove an alarm.<br> <br> Returns True if the alarm exists, False otherwise<br> <br> >>> evl = GLibEventLoop()<br> >>> handle = evl.alarm(50, lambda: None)<br> >>> evl.remove_alarm(handle)<br> True<br> >>> evl.remove_alarm(handle)<br> False</tt></dd></dl> <dl><dt><a name="GLibEventLoop-remove_enter_idle"><strong>remove_enter_idle</strong></a>(self, handle)</dt><dd><tt>Remove an idle callback.<br> <br> Returns True if the handle was removed.</tt></dd></dl> <dl><dt><a name="GLibEventLoop-remove_watch_file"><strong>remove_watch_file</strong></a>(self, handle)</dt><dd><tt>Remove an input file.<br> <br> Returns True if the input file exists, False otherwise<br> <br> >>> evl = GLibEventLoop()<br> >>> handle = evl.watch_file(1, lambda: None)<br> >>> evl.remove_watch_file(handle)<br> True<br> >>> evl.remove_watch_file(handle)<br> False</tt></dd></dl> <dl><dt><a name="GLibEventLoop-run"><strong>run</strong></a>(self)</dt><dd><tt>Start the event loop. Exit the loop when any callback raises<br> an exception. If ExitMainLoop is raised, exit cleanly.<br> <br> >>> import os<br> >>> rd, wr = os.pipe()<br> >>> os.write(wr, "data") # something to read from rd<br> 4<br> >>> evl = GLibEventLoop()<br> >>> def say_hello():<br> ... print "hello"<br> >>> def say_waiting():<br> ... print "waiting"<br> >>> def exit_clean():<br> ... print "clean exit"<br> ... raise ExitMainLoop<br> >>> def exit_error():<br> ... 1/0<br> >>> handle = evl.alarm(0.01, exit_clean)<br> >>> handle = evl.alarm(0.005, say_hello)<br> >>> evl.enter_idle(say_waiting)<br> 1<br> >>> evl.run()<br> waiting<br> hello<br> waiting<br> clean exit<br> >>> handle = evl.watch_file(rd, exit_clean)<br> >>> evl.run()<br> clean exit<br> >>> evl.remove_watch_file(handle)<br> True<br> >>> handle = evl.alarm(0, exit_error)<br> >>> evl.run()<br> Traceback (most recent call last):<br> ...<br> ZeroDivisionError: integer division or modulo by zero<br> >>> handle = evl.watch_file(rd, exit_error)<br> >>> evl.run()<br> Traceback (most recent call last):<br> ...<br> ZeroDivisionError: integer division or modulo by zero</tt></dd></dl> <dl><dt><a name="GLibEventLoop-watch_file"><strong>watch_file</strong></a>(self, fd, callback)</dt><dd><tt>Call callback() when fd has some data to read. No parameters<br> are passed to callback.<br> <br> Returns a handle that may be passed to remove_watch_file()<br> <br> fd -- file descriptor to watch for input<br> callback -- function to call when input is available</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <a name="TwistedEventLoop"></a><h3>function TwistedEventLoop <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TwistedEventLoop">class <strong>TwistedEventLoop</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TwistedEventLoop-__init__"><strong>__init__</strong></a>(self, reactor<font color="#909090">=None</font>, manage_reactor<font color="#909090">=True</font>)</dt><dd><tt>Event loop based on Twisted<br> <br> reactor -- reactor object to use, if None defaults to<br> twisted.internet.reactor<br> manage_reactor -- True if you want this event loop to run<br> and stop the reactor<br> <br> *** WARNING ***<br> Twisted's reactor doesn't like to be stopped and run again.<br> If you need to stop and run your MainLoop, consider setting<br> manage_reactor=False and take care of running/stopping<br> the reactor at the beginning/ending of your program yourself.</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-alarm"><strong>alarm</strong></a>(self, seconds, callback)</dt><dd><tt>Call callback() given time from from now. No parameters are<br> passed to callback.<br> <br> Returns a handle that may be passed to remove_alarm()<br> <br> seconds -- floating point time to wait before calling callback<br> callback -- function to call from event loop</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-enter_idle"><strong>enter_idle</strong></a>(self, callback)</dt><dd><tt>Add a callback for entering idle.<br> <br> Returns a handle that may be passed to remove_enter_idle()</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-handle_exit"><strong>handle_exit</strong></a>(self, f, enable_idle<font color="#909090">=True</font>)</dt><dd><tt>Decorator that cleanly exits the TwistedEventLoop if ExitMainLoop is<br> thrown inside of the wrapped function. Store the exception info if<br> some other exception occurs, it will be reraised after the loop quits.<br> f -- function to be wrapped</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-remove_alarm"><strong>remove_alarm</strong></a>(self, handle)</dt><dd><tt>Remove an alarm.<br> <br> Returns True if the alarm exists, False otherwise<br> <br> >>> evl = TwistedEventLoop()<br> >>> handle = evl.alarm(50, lambda: None)<br> >>> evl.remove_alarm(handle)<br> True<br> >>> evl.remove_alarm(handle)<br> False</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-remove_enter_idle"><strong>remove_enter_idle</strong></a>(self, handle)</dt><dd><tt>Remove an idle callback.<br> <br> Returns True if the handle was removed.</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-remove_watch_file"><strong>remove_watch_file</strong></a>(self, handle)</dt><dd><tt>Remove an input file.<br> <br> Returns True if the input file exists, False otherwise<br> <br> >>> evl = TwistedEventLoop()<br> >>> handle = evl.watch_file(1, lambda: None)<br> >>> evl.remove_watch_file(handle)<br> True<br> >>> evl.remove_watch_file(handle)<br> False</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-run"><strong>run</strong></a>(self)</dt><dd><tt>Start the event loop. Exit the loop when any callback raises<br> an exception. If ExitMainLoop is raised, exit cleanly.<br> <br> >>> import os<br> >>> rd, wr = os.pipe()<br> >>> os.write(wr, "data") # something to read from rd<br> 4<br> >>> evl = TwistedEventLoop()<br> >>> def say_hello_data():<br> ... print "hello data"<br> ... os.read(rd, 4)<br> >>> def say_waiting():<br> ... print "waiting"<br> >>> def say_hello():<br> ... print "hello"<br> >>> handle = evl.watch_file(rd, say_hello_data)<br> >>> def say_being_twisted():<br> ... print "oh I'm messed up"<br> ... raise ExitMainLoop<br> >>> handle = evl.alarm(0.0625, say_being_twisted)<br> >>> handle = evl.alarm(0.03125, say_hello)<br> >>> evl.enter_idle(say_waiting)<br> 1<br> >>> evl.run()<br> hello data<br> waiting<br> hello<br> waiting<br> oh I'm messed up</tt></dd></dl> <dl><dt><a name="TwistedEventLoop-watch_file"><strong>watch_file</strong></a>(self, fd, callback)</dt><dd><tt>Call callback() when fd has some data to read. No parameters<br> are passed to callback.<br> <br> Returns a handle that may be passed to remove_watch_file()<br> <br> fd -- file descriptor to watch for input<br> callback -- function to call when input is available</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <h2>Widget base class</h2><a name="Widget"></a><h3>function Widget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Widget">class <strong>Widget</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="Widget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Widget-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Widget-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="Widget-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Decorations</h2><a name="AttrMap"></a><h3>function AttrMap <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="AttrMap">class <strong>AttrMap</strong></a>(DelegateToWidgetMixin, WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>AttrMap</dd> <dd>DelegateToWidgetMixin</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="AttrMap-__init__"><strong>__init__</strong></a>(self, w, attr_map, focus_map<font color="#909090">=None</font>)</dt><dd><tt>w -- widget to wrap (stored as self.<strong>original_widget</strong>)<br> attr_map -- attribute to apply to w, or dictionary of attribute mappings<br> focus_map -- attribute to apply when in focus or dictionary of<br> attribute mappings, if None use attr<br> <br> This object will pass all function calls and variable references<br> to the wrapped widget.<br> <br> >>> AttrMap(Divider(u"!"), 'bright')<br> <AttrMap flow widget <Divider flow widget '!'> attr_map={None: 'bright'}><br> >>> AttrMap(Edit(), 'notfocus', 'focus')<br> <AttrMap selectable flow widget <Edit selectable flow widget '' edit_pos=0> attr_map={None: 'notfocus'} focus_map={None: 'focus'}><br> >>> size = (5,)<br> >>> am = AttrMap(Text(u"hi"), 'greeting', 'fgreet')<br> >>> am.render(size, focus=False).content().next() # ... = b in Python 3<br> [('greeting', None, ...'hi ')]<br> >>> am.render(size, focus=True).content().next()<br> [('fgreet', None, ...'hi ')]<br> >>> am2 = AttrMap(Text(('word', u"hi")), {'word':'greeting', None:'bg'})<br> >>> am2<br> <AttrMap flow widget <Text flow widget 'hi'> attr_map={'word': 'greeting', None: 'bg'}><br> >>> am2.render(size).content().next()<br> [('greeting', None, ...'hi'), ('bg', None, ...' ')]</tt></dd></dl> <dl><dt><a name="AttrMap-get_attr_map"><strong>get_attr_map</strong></a>(self)</dt></dl> <dl><dt><a name="AttrMap-get_focus_map"><strong>get_focus_map</strong></a>(self)</dt></dl> <dl><dt><a name="AttrMap-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render wrapped widget and apply attribute. Return canvas.</tt></dd></dl> <dl><dt><a name="AttrMap-set_attr_map"><strong>set_attr_map</strong></a>(self, attr_map)</dt><dd><tt>Set the attribute mapping dictionary {from_attr: to_attr, ...}<br> <br> Note this function does not accept a single attribute the way the<br> constructor does. You must specify {None: attribute} instead.<br> <br> >> w = AttrMap(Text("hi"), None)<br> >> w.set_attr({'a':'b'})<br> >> w<br> <AttrMap flow widget <Text flow widget 'hi'> attr_map={'a': 'b'}></tt></dd></dl> <dl><dt><a name="AttrMap-set_focus_map"><strong>set_focus_map</strong></a>(self, focus_map)</dt><dd><tt>Set the focus attribute mapping dictionary <br> {from_attr: to_attr, ...}<br> <br> If None this widget will use the attr mapping instead (no change <br> when in focus).<br> <br> Note this function does not accept a single attribute the way the<br> constructor does. You must specify {None: attribute} instead.<br> <br> >> w = AttrMap(Text("hi"), {})<br> >> w.set_focus_map({'a':'b'})<br> >> w<br> <AttrMap flow widget <Text flow widget 'hi'> attr_map={} focus_map={'a': 'b'}><br> >> w.set_focus_map(None)<br> >> w<br> <AttrMap flow widget <Text flow widget 'hi'> attr_map={}></tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>attr_map</strong></dt> </dl> <dl><dt><strong>focus_map</strong></dt> </dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>keypress</strong></dt> </dl> <dl><dt><strong>mouse_event</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="AttrMap-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Padding"></a><h3>function Padding <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Padding">class <strong>Padding</strong></a>(WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Padding</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Padding-__init__"><strong>__init__</strong></a>(self, w, align<font color="#909090">='left'</font>, width<font color="#909090">='pack'</font>, min_width<font color="#909090">=None</font>, left<font color="#909090">=0</font>, right<font color="#909090">=0</font>)</dt><dd><tt>w -- a box, flow or fixed widget to pad on the left and/or right<br> this widget is stored as self.<strong>original_widget</strong><br> align -- one of:<br> 'left', 'center', 'right'<br> ('relative', percentage 0=left 100=right)<br> width -- one of:<br> fixed number of columns for self.<strong>original_widget</strong> <br> 'pack' try to pack self.<strong>original_widget</strong> to its ideal size<br> ('relative', percentage of total width)<br> 'clip' to enable clipping mode for a fixed widget<br> min_width -- the minimum number of columns for <br> self.<strong>original_widget</strong> or None<br> left -- a fixed number of columns to pad on the left<br> right -- a fixed number of columns to pad on thr right<br> <br> Clipping Mode: (width='clip')<br> In clipping mode this padding widget will behave as a flow<br> widget and self.<strong>original_widget</strong> will be treated as a fixed <br> widget. self.<strong>original_widget</strong> will will be clipped to fit<br> the available number of columns. For example if align is <br> 'left' then self.<strong>original_widget</strong> may be clipped on the right.<br> <br> >>> size = (7,)<br> >>> Padding(Text(u"Head"), ('relative', 20)).render(size).text # ... = b in Python 3<br> [...' Head ']<br> >>> Padding(Divider(u"-"), left=2, right=1).render(size).text<br> [...' ---- ']<br> >>> Padding(Divider(u"*"), 'center', 3).render(size).text<br> [...' *** ']<br> >>> p=Padding(Text(u"1234"), 'left', 2, None, 1, 1)<br> >>> p<br> <Padding flow widget <Text flow widget '1234'> left=1 right=1 width=2><br> >>> p.render(size).text # align against left<br> [...' 12 ', ...' 34 ']<br> >>> p.align = 'right'<br> >>> p.render(size).text # align against right<br> [...' 12 ', ...' 34 ']<br> >>> Padding(Text(u"hi\nthere"), 'right').render(size).text<br> [...' hi ', ...' there']</tt></dd></dl> <dl><dt><a name="Padding-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return the (x,y) coordinates of cursor within self.<strong>_original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Padding-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return the preferred column from self.<strong>_original_widget</strong>, or None.</tt></dd></dl> <dl><dt><a name="Padding-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to self.<strong>_original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Padding-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Send mouse event if position is within self.<strong>_original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Padding-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, x, y)</dt><dd><tt>Set the cursor position with (x,y) coordinates of self.<strong>_original_widget</strong>.<br> <br> Returns True if move succeeded, False otherwise.</tt></dd></dl> <dl><dt><a name="Padding-padding_values"><strong>padding_values</strong></a>(self, size, focus)</dt><dd><tt>Return the number of columns to pad on the left and right.<br> <br> Override this method to define custom padding behaviour.</tt></dd></dl> <dl><dt><a name="Padding-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="Padding-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the rows needed for self.<strong>original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Padding-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>align</strong></dt> <dd><tt>Return the padding alignment setting.</tt></dd> </dl> <dl><dt><strong>width</strong></dt> <dd><tt>Return the padding widthment setting.</tt></dd> </dl> <hr> Methods inherited from WidgetDecoration:<br> <dl><dt><a name="Padding-selectable"><strong>selectable</strong></a>(self)</dt></dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Padding-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Padding-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Filler"></a><h3>function Filler <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Filler">class <strong>Filler</strong></a>(WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Filler</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Filler-__init__"><strong>__init__</strong></a>(self, body, valign<font color="#909090">='middle'</font>, height<font color="#909090">=None</font>, min_height<font color="#909090">=None</font>)</dt><dd><tt>body -- a flow widget or box widget to be filled around (stored <br> as self.<strong>original_widget</strong>)<br> valign -- one of:<br> 'top', 'middle', 'bottom'<br> ('fixed top', rows)<br> ('fixed bottom', rows)<br> ('relative', percentage 0=top 100=bottom)<br> height -- one of:<br> None if body is a flow widget<br> number of rows high <br> ('fixed bottom', rows) Only if valign is 'fixed top'<br> ('fixed top', rows) Only if valign is 'fixed bottom'<br> ('relative', percentage of total height)<br> min_height -- one of:<br> None if no minimum or if body is a flow widget<br> minimum number of rows for the widget when height not fixed<br> <br> If body is a flow widget then height and min_height must be set<br> to None.<br> <br> Filler widgets will try to satisfy height argument first by<br> reducing the valign amount when necessary. If height still <br> cannot be satisfied it will also be reduced.</tt></dd></dl> <dl><dt><a name="Filler-filler_values"><strong>filler_values</strong></a>(self, size, focus)</dt><dd><tt>Return the number of rows to pad on the top and bottom.<br> <br> Override this method to define custom padding behaviour.</tt></dd></dl> <dl><dt><a name="Filler-get_body"><strong>get_body</strong></a> = _get_original_widget(self)</dt></dl> <dl><dt><a name="Filler-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return cursor coords from self.<strong>original_widget</strong> if any.</tt></dd></dl> <dl><dt><a name="Filler-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return pref_col from self.<strong>original_widget</strong> if any.</tt></dd></dl> <dl><dt><a name="Filler-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to self.<strong>original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Filler-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Pass to self.<strong>original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Filler-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt><dd><tt>Pass to self.<strong>original_widget</strong>.</tt></dd></dl> <dl><dt><a name="Filler-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render self.<strong>original_widget</strong> with space above and/or below.</tt></dd></dl> <dl><dt><a name="Filler-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return selectable from body.</tt></dd></dl> <dl><dt><a name="Filler-set_body"><strong>set_body</strong></a> = _set_original_widget(self, original_widget)</dt></dl> <dl><dt><a name="Filler-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>body</strong></dt> </dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Filler-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Filler-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Divider"></a><h3>function Divider <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Divider">class <strong>Divider</strong></a>(FlowWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Divider</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Divider-__init__"><strong>__init__</strong></a>(self, div_char<font color="#909090">=u' '</font>, top<font color="#909090">=0</font>, bottom<font color="#909090">=0</font>)</dt><dd><tt>Create a horizontal divider widget.<br> <br> div_char -- character to repeat across line<br> top -- number of blank lines above<br> bottom -- number of blank lines below<br> <br> >>> Divider()<br> <Divider flow widget><br> >>> Divider(u'-')<br> <Divider flow widget '-'><br> >>> Divider(u'x', 1, 2)<br> <Divider flow widget 'x' bottom=2 top=1></tt></dd></dl> <dl><dt><a name="Divider-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render the divider as a canvas and return it.<br> <br> >>> Divider().render((10,)).text # ... = b in Python 3<br> [...' ']<br> >>> Divider(u'-', top=1).render((10,)).text<br> [...' ', ...'----------']<br> >>> Divider(u'x', bottom=2).render((5,)).text<br> [...'xxxxx', ...' ', ...' ']</tt></dd></dl> <dl><dt><a name="Divider-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of lines that will be rendered.<br> <br> >>> Divider().rows((10,))<br> 1<br> >>> Divider(u'x', 1, 2).rows((10,))<br> 4</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Divider-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Divider-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Divider-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="Divider-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="LineBox"></a><h3>function LineBox <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="LineBox">class <strong>LineBox</strong></a>(WidgetDecoration, WidgetWrap) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>LineBox</dd> <dd>WidgetDecoration</dd> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="LineBox-__init__"><strong>__init__</strong></a>(self, original_widget, title<font color="#909090">=''</font>, tlcorner<font color="#909090">=u'<font color="#c040c0">\u250c</font>'</font>, tline<font color="#909090">=u'<font color="#c040c0">\u2500</font>'</font>, lline<font color="#909090">=u'<font color="#c040c0">\u2502</font>'</font>, trcorner<font color="#909090">=u'<font color="#c040c0">\u2510</font>'</font>, blcorner<font color="#909090">=u'<font color="#c040c0">\u2514</font>'</font>, rline<font color="#909090">=u'<font color="#c040c0">\u2502</font>'</font>, bline<font color="#909090">=u'<font color="#c040c0">\u2500</font>'</font>, brcorner<font color="#909090">=u'<font color="#c040c0">\u2518</font>'</font>)</dt><dd><tt>Draw a line around original_widget.<br> <br> Use 'title' to set an initial title text with will be centered<br> on top of the box.<br> <br> You can also override the widgets used for the lines/corners:<br> tline: top line<br> bline: bottom line<br> lline: left line<br> rline: right line<br> tlcorner: top left corner<br> trcorner: top right corner<br> blcorner: bottom left corner<br> brcorner: bottom right corner</tt></dd></dl> <dl><dt><a name="LineBox-format_title"><strong>format_title</strong></a>(self, text)</dt></dl> <dl><dt><a name="LineBox-set_title"><strong>set_title</strong></a>(self, text)</dt></dl> <hr> Methods inherited from WidgetDecoration:<br> <dl><dt><a name="LineBox-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="LineBox-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Data descriptors inherited from WidgetWrap:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="LineBox-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>keypress</strong></dt> </dl> <dl><dt><strong>mouse_event</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="LineBox-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="SolidFill"></a><h3>function SolidFill <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="SolidFill">class <strong>SolidFill</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>SolidFill</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="SolidFill-__init__"><strong>__init__</strong></a>(self, fill_char<font color="#909090">=' '</font>)</dt><dd><tt>Create a box widget that will fill an area with a single <br> character.<br> <br> fill_char -- character to fill area with<br> <br> >>> SolidFill(u'8')<br> <SolidFill box widget '8'></tt></dd></dl> <dl><dt><a name="SolidFill-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render the Fill as a canvas and return it.<br> <br> >>> SolidFill().render((4,2)).text # ... = b in Python 3<br> [...' ', ...' ']<br> >>> SolidFill('#').render((5,3)).text<br> [...'#####', ...'#####', ...'#####']</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="SolidFill-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="SolidFill-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="SolidFill-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="SolidFill-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Container widgets</h2><a name="Frame"></a><h3>function Frame <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Frame">class <strong>Frame</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Frame</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Frame-__init__"><strong>__init__</strong></a>(self, body, header<font color="#909090">=None</font>, footer<font color="#909090">=None</font>, focus_part<font color="#909090">='body'</font>)</dt><dd><tt>body -- a box widget for the body of the frame<br> header -- a flow widget for above the body (or None)<br> footer -- a flow widget for below the body (or None)<br> focus_part -- 'header', 'footer' or 'body'</tt></dd></dl> <dl><dt><a name="Frame-frame_top_bottom"><strong>frame_top_bottom</strong></a>(self, size, focus)</dt><dd><tt>Calculate the number of rows for the header and footer.<br> <br> Returns (head rows, foot rows),(orig head, orig foot).<br> orig head/foot are from rows() calls.</tt></dd></dl> <dl><dt><a name="Frame-get_body"><strong>get_body</strong></a>(self)</dt></dl> <dl><dt><a name="Frame-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return the part of the frame that is in focus.<br> <br> Will be one of 'header', 'footer' or 'body'.</tt></dd></dl> <dl><dt><a name="Frame-get_footer"><strong>get_footer</strong></a>(self)</dt></dl> <dl><dt><a name="Frame-get_header"><strong>get_header</strong></a>(self)</dt></dl> <dl><dt><a name="Frame-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to widget in focus.</tt></dd></dl> <dl><dt><a name="Frame-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Pass mouse event to appropriate part of frame.<br> Focus may be changed on button 1 press.</tt></dd></dl> <dl><dt><a name="Frame-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render frame and return it.</tt></dd></dl> <dl><dt><a name="Frame-set_body"><strong>set_body</strong></a>(self, body)</dt></dl> <dl><dt><a name="Frame-set_focus"><strong>set_focus</strong></a>(self, part)</dt><dd><tt>Set the part of the frame that is in focus.<br> <br> part -- 'header', 'footer' or 'body'</tt></dd></dl> <dl><dt><a name="Frame-set_footer"><strong>set_footer</strong></a>(self, footer)</dt></dl> <dl><dt><a name="Frame-set_header"><strong>set_header</strong></a>(self, header)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>body</strong></dt> </dl> <dl><dt><strong>footer</strong></dt> </dl> <dl><dt><strong>header</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Frame-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Frame-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Frame-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="Frame-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="ListBox"></a><h3>function ListBox <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="ListBox">class <strong>ListBox</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>ListBox</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="ListBox-__init__"><strong>__init__</strong></a>(self, body)</dt><dd><tt>body -- a ListWalker-like object that contains<br> widgets to be displayed inside the list box</tt></dd></dl> <dl><dt><a name="ListBox-calculate_visible"><strong>calculate_visible</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return (middle,top,bottom) or None,None,None.<br> <br> middle -- ( row offset(when +ve) or inset(when -ve),<br> focus widget, focus position, focus rows, <br> cursor coords or None )<br> top -- ( # lines to trim off top, <br> list of (widget, position, rows) tuples above focus<br> in order from bottom to top )<br> bottom -- ( # lines to trim off bottom, <br> list of (widget, position, rows) tuples below focus<br> in order from top to bottom )</tt></dd></dl> <dl><dt><a name="ListBox-change_focus"><strong>change_focus</strong></a>(self, size, position, offset_inset<font color="#909090">=0</font>, coming_from<font color="#909090">=None</font>, cursor_coords<font color="#909090">=None</font>, snap_rows<font color="#909090">=None</font>)</dt><dd><tt>Change the current focus widget.<br> <br> position -- a position compatible with self.<strong>body</strong>.set_focus<br> offset_inset -- either the number of rows between the <br> top of the listbox and the start of the focus widget (+ve<br> value) or the number of lines of the focus widget hidden off <br> the top edge of the listbox (-ve value) or 0 if the top edge<br> of the focus widget is aligned with the top edge of the<br> listbox (default if unspecified)<br> coming_from -- eiter 'above', 'below' or unspecified (None)<br> cursor_coords -- (x, y) tuple indicating the desired<br> column and row for the cursor, a (x,) tuple indicating only<br> the column for the cursor, or unspecified (None)<br> snap_rows -- the maximum number of extra rows to scroll<br> when trying to "snap" a selectable focus into the view</tt></dd></dl> <dl><dt><a name="ListBox-ends_visible"><strong>ends_visible</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a list that may contain 'top' and/or 'bottom'.<br> <br> convenience function for checking whether the top and bottom<br> of the list are visible</tt></dd></dl> <dl><dt><a name="ListBox-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt></dl> <dl><dt><a name="ListBox-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return a (focus widget, focus position) tuple.</tt></dd></dl> <dl><dt><a name="ListBox-get_focus_offset_inset"><strong>get_focus_offset_inset</strong></a>(self, size)</dt><dd><tt>Return (offset rows, inset rows) for focus widget.</tt></dd></dl> <dl><dt><a name="ListBox-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Move selection through the list elements scrolling when <br> necessary. 'up' and 'down' are first passed to widget in focus<br> in case that widget can handle them. 'page up' and 'page down'<br> are always handled by the ListBox.<br> <br> Keystrokes handled by this widget are:<br> 'up' up one line (or widget)<br> 'down' down one line (or widget)<br> 'page up' move cursor up one listbox length<br> 'page down' move cursor down one listbox length</tt></dd></dl> <dl><dt><a name="ListBox-make_cursor_visible"><strong>make_cursor_visible</strong></a>(self, size)</dt><dd><tt>Shift the focus widget so that its cursor is visible.</tt></dd></dl> <dl><dt><a name="ListBox-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Pass the event to the contained widgets.<br> May change focus on button 1 press.</tt></dd></dl> <dl><dt><a name="ListBox-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render listbox and return canvas.</tt></dd></dl> <dl><dt><a name="ListBox-set_focus"><strong>set_focus</strong></a>(self, position, coming_from<font color="#909090">=None</font>)</dt><dd><tt>Set the focus position and try to keep the old focus in view.<br> <br> position -- a position compatible with self.<strong>body</strong>.set_focus<br> coming_from -- set to 'above' or 'below' if you know that<br> old position is above or below the new position.</tt></dd></dl> <dl><dt><a name="ListBox-set_focus_valign"><strong>set_focus_valign</strong></a>(self, valign)</dt><dd><tt>Set the focus widget's display offset and inset.<br> <br> valign -- one of:<br> 'top', 'middle', 'bottom'<br> ('fixed top', rows)<br> ('fixed bottom', rows)<br> ('relative', percentage 0=top 100=bottom)</tt></dd></dl> <dl><dt><a name="ListBox-shift_focus"><strong>shift_focus</strong></a>(self, size, offset_inset)</dt><dd><tt>Move the location of the current focus relative to the top.<br> <br> offset_inset -- either the number of rows between the <br> top of the listbox and the start of the focus widget (+ve<br> value) or the number of lines of the focus widget hidden off <br> the top edge of the listbox (-ve value) or 0 if the top edge<br> of the focus widget is aligned with the top edge of the<br> listbox</tt></dd></dl> <dl><dt><a name="ListBox-update_pref_col_from_focus"><strong>update_pref_col_from_focus</strong></a>(self, size)</dt><dd><tt>Update self.<strong>pref_col</strong> from the focus widget.</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="ListBox-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="ListBox-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="ListBox-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="ListBox-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Columns"></a><h3>function Columns <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Columns">class <strong>Columns</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Columns</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Columns-__init__"><strong>__init__</strong></a>(self, widget_list, dividechars<font color="#909090">=0</font>, focus_column<font color="#909090">=None</font>, min_width<font color="#909090">=1</font>, box_columns<font color="#909090">=None</font>)</dt><dd><tt>widget_list -- list of flow widgets or list of box widgets<br> dividechars -- blank characters between columns<br> focus_column -- index into widget_list of column in focus,<br> if None the first selectable widget will be chosen.<br> min_width -- minimum width for each column which is not<br> designated as flow widget in widget_list.<br> box_columns -- a list of column indexes containing box widgets<br> whose maxrow is set to the maximum of the rows<br> required by columns not listed in box_columns.<br> <br> widget_list may also contain tuples such as:<br> ('flow', widget) always treat widget as a flow widget<br> ('fixed', width, widget) give this column a fixed width<br> ('weight', weight, widget) give this column a relative weight<br> <br> widgets not in a tuple are the same as ('weight', 1, widget)<br> <br> box_columns is ignored when this widget is being used as a<br> box widget because in that case all columns are treated as box<br> widgets.</tt></dd></dl> <dl><dt><a name="Columns-column_widths"><strong>column_widths</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a list of column widths.<br> <br> size -- (maxcol,) if self.<strong>widget_list</strong> contains flow widgets or<br> (maxcol, maxrow) if it contains box widgets.</tt></dd></dl> <dl><dt><a name="Columns-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return the cursor coordinates from the focus widget.</tt></dd></dl> <dl><dt><a name="Columns-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return the widget in focus.</tt></dd></dl> <dl><dt><a name="Columns-get_focus_column"><strong>get_focus_column</strong></a>(self)</dt><dd><tt>Return the focus column index.</tt></dd></dl> <dl><dt><a name="Columns-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return the pref col from the column in focus.</tt></dd></dl> <dl><dt><a name="Columns-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to the focus column.<br> <br> size -- (maxcol,) if self.<strong>widget_list</strong> contains flow widgets or<br> (maxcol, maxrow) if it contains box widgets.</tt></dd></dl> <dl><dt><a name="Columns-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Send event to appropriate column.<br> May change focus on button 1 press.</tt></dd></dl> <dl><dt><a name="Columns-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt><dd><tt>Choose a selectable column to focus based on the coords.</tt></dd></dl> <dl><dt><a name="Columns-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render columns and return canvas.<br> <br> size -- (maxcol,) if self.<strong>widget_list</strong> contains flow widgets or<br> (maxcol, maxrow) if it contains box widgets.</tt></dd></dl> <dl><dt><a name="Columns-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of rows required by the columns.<br> Only makes sense if self.<strong>widget_list</strong> contains flow widgets.</tt></dd></dl> <dl><dt><a name="Columns-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return the selectable value of the focus column.</tt></dd></dl> <dl><dt><a name="Columns-set_focus"><strong>set_focus</strong></a>(self, item)</dt><dd><tt>Set the item in focus. <br> <br> item -- widget or integer index</tt></dd></dl> <dl><dt><a name="Columns-set_focus_column"><strong>set_focus_column</strong></a>(self, num)</dt><dd><tt>Set the column in focus by its index in self.<strong>widget_list</strong>.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>contents</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Columns-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Columns-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Columns-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Pile"></a><h3>function Pile <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Pile">class <strong>Pile</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Pile</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Pile-__init__"><strong>__init__</strong></a>(self, widget_list, focus_item<font color="#909090">=None</font>)</dt><dd><tt>widget_list -- list of widgets<br> focus_item -- widget or integer index, if None the first<br> selectable widget will be chosen.<br> <br> widget_list may also contain tuples such as:<br> ('flow', widget) always treat widget as a flow widget<br> ('fixed', height, widget) give this box widget a fixed height<br> ('weight', weight, widget) if the pile is treated as a box<br> widget then treat widget as a box widget with a<br> height based on its relative weight value, otherwise<br> treat widget as a flow widget<br> <br> widgets not in a tuple are the same as ('weight', 1, widget)<br> <br> If the pile is treated as a box widget there must be at least<br> one 'weight' tuple in widget_list.</tt></dd></dl> <dl><dt><a name="Pile-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return the cursor coordinates of the focus widget.</tt></dd></dl> <dl><dt><a name="Pile-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return the widget in focus.</tt></dd></dl> <dl><dt><a name="Pile-get_item_rows"><strong>get_item_rows</strong></a>(self, size, focus)</dt><dd><tt>Return a list of the number of rows used by each widget<br> in self.<strong>item_list</strong>.</tt></dd></dl> <dl><dt><a name="Pile-get_item_size"><strong>get_item_size</strong></a>(self, size, i, focus, item_rows<font color="#909090">=None</font>)</dt><dd><tt>Return a size appropriate for passing to self.<strong>widget_list</strong>[i]</tt></dd></dl> <dl><dt><a name="Pile-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return the preferred column for the cursor, or None.</tt></dd></dl> <dl><dt><a name="Pile-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass the keypress to the widget in focus.<br> Unhandled 'up' and 'down' keys may cause a focus change.</tt></dd></dl> <dl><dt><a name="Pile-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Pass the event to the contained widget.<br> May change focus on button 1 press.</tt></dd></dl> <dl><dt><a name="Pile-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt><dd><tt>Capture pref col and set new focus.</tt></dd></dl> <dl><dt><a name="Pile-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render all widgets in self.<strong>widget_list</strong> and return the results<br> stacked one on top of the next.</tt></dd></dl> <dl><dt><a name="Pile-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of rows required for this widget.</tt></dd></dl> <dl><dt><a name="Pile-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if the focus item is selectable.</tt></dd></dl> <dl><dt><a name="Pile-set_focus"><strong>set_focus</strong></a>(self, item)</dt><dd><tt>Set the item in focus. <br> <br> item -- widget or integer index</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>contents</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Pile-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Pile-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Pile-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="GridFlow"></a><h3>function GridFlow <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="GridFlow">class <strong>GridFlow</strong></a>(FlowWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>GridFlow</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="GridFlow-__init__"><strong>__init__</strong></a>(self, cells, cell_width, h_sep, v_sep, align)</dt><dd><tt>cells -- list of flow widgets to display<br> cell_width -- column width for each cell<br> h_sep -- blank columns between each cell horizontally<br> v_sep -- blank rows between cells vertically (if more than<br> one row is required to display all the cells)<br> align -- horizontal alignment of cells, see "align" parameter<br> of Padding widget for available options</tt></dd></dl> <dl><dt><a name="GridFlow-generate_display_widget"><strong>generate_display_widget</strong></a>(self, size)</dt><dd><tt>Actually generate display widget (ignoring cache)</tt></dd></dl> <dl><dt><a name="GridFlow-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Get cursor from display widget.</tt></dd></dl> <dl><dt><a name="GridFlow-get_display_widget"><strong>get_display_widget</strong></a>(self, size)</dt><dd><tt>Arrange the cells into columns (and possibly a pile) for <br> display, input or to calculate rows.</tt></dd></dl> <dl><dt><a name="GridFlow-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return the widget in focus.</tt></dd></dl> <dl><dt><a name="GridFlow-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return pref col from display widget.</tt></dd></dl> <dl><dt><a name="GridFlow-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to display widget for handling. <br> Capture focus changes.</tt></dd></dl> <dl><dt><a name="GridFlow-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Send mouse event to contained widget.</tt></dd></dl> <dl><dt><a name="GridFlow-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt><dd><tt>Set the widget in focus based on the col + row.</tt></dd></dl> <dl><dt><a name="GridFlow-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Use display widget to render.</tt></dd></dl> <dl><dt><a name="GridFlow-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return rows used by this widget.</tt></dd></dl> <dl><dt><a name="GridFlow-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if the cell in focus is selectable.</tt></dd></dl> <dl><dt><a name="GridFlow-set_focus"><strong>set_focus</strong></a>(self, cell)</dt><dd><tt>Set the cell in focus. <br> <br> cell -- widget or integer index into self.<strong>cells</strong></tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="GridFlow-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="GridFlow-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="GridFlow-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="BoxAdapter"></a><h3>function BoxAdapter <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="BoxAdapter">class <strong>BoxAdapter</strong></a>(WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>BoxAdapter</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="BoxAdapter-__getattr__"><strong>__getattr__</strong></a>(self, name)</dt><dd><tt>Pass calls to box widget.</tt></dd></dl> <dl><dt><a name="BoxAdapter-__init__"><strong>__init__</strong></a>(self, box_widget, height)</dt><dd><tt>Create a flow widget that contains a box widget<br> <br> box_widget -- box widget (stored as self.<strong>original_widget</strong>)<br> height -- number of rows for box widget<br> <br> >>> BoxAdapter(SolidFill(u"x"), 5) # 5-rows of x's<br> <BoxAdapter flow widget <SolidFill box widget 'x'> height=5></tt></dd></dl> <dl><dt><a name="BoxAdapter-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt># The next few functions simply tack-on our height and pass through<br> # to self.<strong>_original_widget</strong></tt></dd></dl> <dl><dt><a name="BoxAdapter-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt></dl> <dl><dt><a name="BoxAdapter-keypress"><strong>keypress</strong></a>(self, size, key)</dt></dl> <dl><dt><a name="BoxAdapter-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt></dl> <dl><dt><a name="BoxAdapter-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt></dl> <dl><dt><a name="BoxAdapter-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="BoxAdapter-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the predetermined height (behave like a flow widget)<br> <br> >>> BoxAdapter(SolidFill(u"x"), 5).rows((20,))<br> 5</tt></dd></dl> <dl><dt><a name="BoxAdapter-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>box_widget</strong></dt> </dl> <hr> Methods inherited from WidgetDecoration:<br> <dl><dt><a name="BoxAdapter-selectable"><strong>selectable</strong></a>(self)</dt></dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="BoxAdapter-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="BoxAdapter-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Overlay"></a><h3>function Overlay <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Overlay">class <strong>Overlay</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Overlay</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Overlay-__init__"><strong>__init__</strong></a>(self, top_w, bottom_w, align, width, valign, height, min_width<font color="#909090">=None</font>, min_height<font color="#909090">=None</font>)</dt><dd><tt>top_w -- a flow, box or fixed widget to overlay "on top"<br> bottom_w -- a box widget to appear "below" previous widget<br> align -- one of:<br> 'left', 'center', 'right'<br> ('fixed left', columns)<br> ('fixed right', columns)<br> ('relative', percentage 0=left 100=right)<br> width -- one of:<br> None if top_w is a fixed widget<br> number of columns wide<br> ('fixed right', columns) Only if align is 'fixed left'<br> ('fixed left', columns) Only if align is 'fixed right'<br> ('relative', percentage of total width)<br> valign -- one of:<br> 'top', 'middle', 'bottom'<br> ('fixed top', rows)<br> ('fixed bottom', rows)<br> ('relative', percentage 0=top 100=bottom)<br> height -- one of:<br> None if top_w is a flow or fixed widget<br> number of rows high<br> ('fixed bottom', rows) Only if valign is 'fixed top'<br> ('fixed top', rows) Only if valign is 'fixed bottom'<br> ('relative', percentage of total height)<br> min_width -- the minimum number of columns for top_w<br> when width is not fixed<br> min_height -- one of:<br> minimum number of rows for the widget when height not fixed<br> <br> Overlay widgets behave similarly to Padding and Filler widgets<br> when determining the size and position of top_w. bottom_w is<br> always rendered the full size available "below" top_w.</tt></dd></dl> <dl><dt><a name="Overlay-calculate_padding_filler"><strong>calculate_padding_filler</strong></a>(self, size, focus)</dt><dd><tt>Return (padding left, right, filler top, bottom).</tt></dd></dl> <dl><dt><a name="Overlay-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return cursor coords from top_w, if any.</tt></dd></dl> <dl><dt><a name="Overlay-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Pass keypress to top_w.</tt></dd></dl> <dl><dt><a name="Overlay-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>Pass event to top_w, ignore if outside of top_w.</tt></dd></dl> <dl><dt><a name="Overlay-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render top_w overlayed on bottom_w.</tt></dd></dl> <dl><dt><a name="Overlay-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return selectable from top_w.</tt></dd></dl> <dl><dt><a name="Overlay-set_overlay_parameters"><strong>set_overlay_parameters</strong></a>(self, align, width, valign, height, min_width<font color="#909090">=None</font>, min_height<font color="#909090">=None</font>)</dt><dd><tt>Adjust the overlay size and position parameters.<br> <br> See __init__() for a description of the parameters.</tt></dd></dl> <dl><dt><a name="Overlay-top_w_size"><strong>top_w_size</strong></a>(self, size, left, right, top, bottom)</dt><dd><tt>Return the size to pass to top_w.</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Overlay-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Overlay-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Overlay-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Content widgets</h2><a name="Text"></a><h3>function Text <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Text">class <strong>Text</strong></a>(FlowWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Text</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Text-__init__"><strong>__init__</strong></a>(self, markup, align<font color="#909090">='left'</font>, wrap<font color="#909090">='space'</font>, layout<font color="#909090">=None</font>)</dt><dd><tt>markup -- content of text widget, one of:<br> plain string -- string is displayed<br> ( attr, markup2 ) -- markup2 is given attribute attr<br> [ markupA, markupB, ... ] -- list items joined together<br> align -- align mode for text layout<br> wrap -- wrap mode for text layout<br> layout -- layout object to use, defaults to StandardTextLayout<br> <br> >>> Text(u"Hello")<br> <Text flow widget 'Hello'><br> >>> t = Text(('bold', u"stuff"), 'right', 'any')<br> >>> t<br> <Text flow widget 'stuff' align='right' wrap='any'><br> >>> print t.text<br> stuff<br> >>> t.attrib<br> [('bold', 5)]</tt></dd></dl> <dl><dt><a name="Text-get_line_translation"><strong>get_line_translation</strong></a>(self, maxcol, ta<font color="#909090">=None</font>)</dt><dd><tt>Return layout structure used to map self.<strong>text</strong> to a canvas.<br> This method is used internally, but may be useful for<br> debugging custom layout classes.<br> <br> maxcol -- columns available for display<br> ta -- None or the (text, attr) tuple returned from<br> get_text()</tt></dd></dl> <dl><dt><a name="Text-get_text"><strong>get_text</strong></a>(self)</dt><dd><tt>Returns (text, attributes).<br> <br> text -- complete string content (unicode) of text widget<br> attributes -- run length encoded attributes for text<br> <br> >>> Text(u"Hello").get_text() # ... = u in Python 2<br> (...'Hello', [])<br> >>> Text(('bright', u"Headline")).get_text()<br> (...'Headline', [('bright', 8)])<br> >>> Text([('a', u"one"), u"two", ('b', u"three")]).get_text()<br> (...'onetwothree', [('a', 3), (None, 3), ('b', 5)])</tt></dd></dl> <dl><dt><a name="Text-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of screen columns and rows required for<br> this Text widget to be displayed without wrapping or <br> clipping, as a single element tuple.<br> <br> size -- None for unlimited screen columns or (maxcol,) to<br> specify a maximum column size<br> <br> >>> Text(u"important things").pack()<br> (16, 1)<br> >>> Text(u"important things").pack((15,))<br> (9, 2)<br> >>> Text(u"important things").pack((8,))<br> (8, 2)</tt></dd></dl> <dl><dt><a name="Text-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render contents with wrapping and alignment. Return canvas.<br> <br> >>> Text(u"important things").render((18,)).text # ... = b in Python 3<br> [...'important things ']<br> >>> Text(u"important things").render((11,)).text<br> [...'important ', ...'things ']</tt></dd></dl> <dl><dt><a name="Text-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of rows the rendered text spans.<br> <br> >>> Text(u"important things").rows((18,))<br> 1<br> >>> Text(u"important things").rows((11,))<br> 2</tt></dd></dl> <dl><dt><a name="Text-set_align_mode"><strong>set_align_mode</strong></a>(self, mode)</dt><dd><tt>Set text alignment / justification.<br> <br> Valid modes for StandardTextLayout are:<br> 'left', 'center' and 'right'<br> <br> >>> t = Text(u"word")<br> >>> t.set_align_mode('right')<br> >>> t.align<br> 'right'<br> >>> t.render((10,)).text # ... = b in Python 3<br> [...' word']<br> >>> t.align = 'center'<br> >>> t.render((10,)).text<br> [...' word ']<br> >>> t.align = 'somewhere'<br> Traceback (most recent call last):<br> TextError: Alignment mode 'somewhere' not supported.</tt></dd></dl> <dl><dt><a name="Text-set_layout"><strong>set_layout</strong></a>(self, align, wrap, layout<font color="#909090">=None</font>)</dt><dd><tt>Set layout object, align and wrap modes.<br> <br> align -- align mode for text layout<br> wrap -- wrap mode for text layout<br> layout -- layout object to use, defaults to StandardTextLayout<br> <br> >>> t = Text(u"hi")<br> >>> t.set_layout('right', 'clip')<br> >>> t<br> <Text flow widget 'hi' align='right' wrap='clip'></tt></dd></dl> <dl><dt><a name="Text-set_text"><strong>set_text</strong></a>(self, markup)</dt><dd><tt>Set content of text widget.<br> <br> markup -- see __init__() for description.<br> <br> >>> t = Text(u"foo")<br> >>> print t.text<br> foo<br> >>> t.set_text(u"bar")<br> >>> print t.text<br> bar<br> >>> t.text = u"baz" # not supported because text stores text but set_text() takes markup<br> Traceback (most recent call last):<br> AttributeError: can't set attribute</tt></dd></dl> <dl><dt><a name="Text-set_wrap_mode"><strong>set_wrap_mode</strong></a>(self, mode)</dt><dd><tt>Set wrap mode.<br> <br> Valid modes for StandardTextLayout are :<br> 'any' : wrap at any character<br> 'space' : wrap on space character<br> 'clip' : truncate lines instead of wrapping<br> <br> >>> t = Text(u"some words")<br> >>> t.render((6,)).text # ... = b in Python 3<br> [...'some ', ...'words ']<br> >>> t.set_wrap_mode('clip')<br> >>> t.wrap<br> 'clip'<br> >>> t.render((6,)).text<br> [...'some w']<br> >>> t.wrap = 'any' # Urwid 0.9.9 or later<br> >>> t.render((6,)).text<br> [...'some w', ...'ords ']<br> >>> t.wrap = 'somehow'<br> Traceback (most recent call last):<br> TextError: Wrap mode 'somehow' not supported.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>align</strong></dt> </dl> <dl><dt><strong>attrib</strong></dt> </dl> <dl><dt><strong>layout</strong></dt> </dl> <dl><dt><strong>text</strong></dt> </dl> <dl><dt><strong>wrap</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Text-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Text-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="Text-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Edit"></a><h3>function Edit <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Edit">class <strong>Edit</strong></a>(Text) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Edit</dd> <dd>Text</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Edit-__init__"><strong>__init__</strong></a>(self, caption<font color="#909090">=u''</font>, edit_text<font color="#909090">=u''</font>, multiline<font color="#909090">=False</font>, align<font color="#909090">='left'</font>, wrap<font color="#909090">='space'</font>, allow_tab<font color="#909090">=False</font>, edit_pos<font color="#909090">=None</font>, layout<font color="#909090">=None</font>, mask<font color="#909090">=None</font>)</dt><dd><tt>caption -- markup for caption preceeding edit_text<br> edit_text -- text string for editing<br> multiline -- True: 'enter' inserts newline False: return it<br> align -- align mode<br> wrap -- wrap mode<br> allow_tab -- True: 'tab' inserts 1-8 spaces False: return it<br> edit_pos -- initial position for cursor, None:at end<br> layout -- layout object<br> mask -- character to mask away text with, None means no masking<br> <br> >>> Edit()<br> <Edit selectable flow widget '' edit_pos=0><br> >>> Edit(u"Y/n? ", u"yes")<br> <Edit selectable flow widget 'yes' caption='Y/n? ' edit_pos=3><br> >>> Edit(u"Name ", u"Smith", edit_pos=1)<br> <Edit selectable flow widget 'Smith' caption='Name ' edit_pos=1><br> >>> Edit(u"", u"3.14", align='right')<br> <Edit selectable flow widget '3.14' align='right' edit_pos=4></tt></dd></dl> <dl><dt><a name="Edit-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return the (x,y) coordinates of cursor within widget.<br> <br> >>> Edit("? ","yes").get_cursor_coords((10,))<br> (5, 0)</tt></dd></dl> <dl><dt><a name="Edit-get_edit_text"><strong>get_edit_text</strong></a>(self)</dt><dd><tt>Return the edit text for this widget.<br> <br> >>> e = Edit(u"What? ", u"oh, nothing.")<br> >>> print e.get_edit_text()<br> oh, nothing.<br> >>> print e.edit_text<br> oh, nothing.</tt></dd></dl> <dl><dt><a name="Edit-get_line_translation"><strong>get_line_translation</strong></a>(self, maxcol, ta<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="Edit-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return the preferred column for the cursor, or the<br> current cursor x value. May also return 'left' or 'right'<br> to indicate the leftmost or rightmost column available.<br> <br> This method is used internally and by other widgets when<br> moving the cursor up or down between widgets so that the <br> column selected is one that the user would expect.<br> <br> >>> size = (10,)<br> >>> Edit().get_pref_col(size)<br> 0<br> >>> e = Edit("","word")<br> >>> e.get_pref_col(size)<br> 4<br> >>> e.keypress(size, 'left')<br> >>> e.get_pref_col(size)<br> 3<br> >>> e.keypress(size, 'end')<br> >>> e.get_pref_col(size)<br> 'right'<br> >>> e = Edit("","2\nwords")<br> >>> e.keypress(size, 'left')<br> >>> e.keypress(size, 'up')<br> >>> e.get_pref_col(size)<br> 4<br> >>> e.keypress(size, 'left')<br> >>> e.get_pref_col(size)<br> 0</tt></dd></dl> <dl><dt><a name="Edit-get_text"><strong>get_text</strong></a>(self)</dt><dd><tt>Returns (text, attributes).<br> <br> text -- complete text of caption and edit_text, maybe masked away<br> attributes -- run length encoded attributes for text<br> <br> >>> Edit("What? ","oh, nothing.").get_text() # ... = u in Python 2<br> (...'What? oh, nothing.', [])<br> >>> Edit(('bright',"user@host:~$ "),"ls").get_text()<br> (...'user@host:~$ ls', [('bright', 13)])</tt></dd></dl> <dl><dt><a name="Edit-insert_text"><strong>insert_text</strong></a>(self, text)</dt><dd><tt>Insert text at the cursor position and update cursor.<br> This method is used by the keypress() method when inserting<br> one or more characters into edit_text.<br> <br> >>> e = Edit(u"", u"42")<br> >>> e.insert_text(u".5")<br> >>> e<br> <Edit selectable flow widget '42.5' edit_pos=4><br> >>> e.set_edit_pos(2)<br> >>> e.insert_text(u"a")<br> >>> print e.edit_text<br> 42a.5</tt></dd></dl> <dl><dt><a name="Edit-insert_text_result"><strong>insert_text_result</strong></a>(self, text)</dt><dd><tt>Return result of insert_text(text) without actually performing the<br> insertion. Handy for pre-validation.</tt></dd></dl> <dl><dt><a name="Edit-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Handle editing keystrokes, return others.<br> <br> >>> e, size = Edit(), (20,)<br> >>> e.keypress(size, 'x')<br> >>> e.keypress(size, 'left')<br> >>> e.keypress(size, '1')<br> >>> print e.edit_text<br> 1x<br> >>> e.keypress(size, 'backspace')<br> >>> e.keypress(size, 'end')<br> >>> e.keypress(size, '2')<br> >>> print e.edit_text<br> x2<br> >>> e.keypress(size, 'shift f1')<br> 'shift f1'</tt></dd></dl> <dl><dt><a name="Edit-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Move the cursor to the location clicked for button 1.<br> <br> >>> size = (20,)<br> >>> e = Edit("","words here")<br> >>> e.mouse_event(size, 'mouse press', 1, 2, 0, True)<br> True<br> >>> e.edit_pos<br> 2</tt></dd></dl> <dl><dt><a name="Edit-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, x, y)</dt><dd><tt>Set the cursor position with (x,y) coordinates.<br> Returns True if move succeeded, False otherwise.<br> <br> >>> size = (10,)<br> >>> e = Edit("","edit\ntext")<br> >>> e.move_cursor_to_coords(size, 5, 0)<br> True<br> >>> e.edit_pos<br> 4<br> >>> e.move_cursor_to_coords(size, 5, 3)<br> False<br> >>> e.move_cursor_to_coords(size, 0, 1)<br> True<br> >>> e.edit_pos<br> 5</tt></dd></dl> <dl><dt><a name="Edit-position_coords"><strong>position_coords</strong></a>(self, maxcol, pos)</dt><dd><tt>Return (x,y) coordinates for an offset into self.<strong>edit_text</strong>.</tt></dd></dl> <dl><dt><a name="Edit-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render edit widget and return canvas. Include cursor when in<br> focus.<br> <br> >>> c = Edit("? ","yes").render((10,), focus=True)<br> >>> c.text # ... = b in Python 3<br> [...'? yes ']<br> >>> c.cursor<br> (5, 0)</tt></dd></dl> <dl><dt><a name="Edit-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="Edit-set_caption"><strong>set_caption</strong></a>(self, caption)</dt><dd><tt>Set the caption markup for this widget.<br> <br> caption -- see Text.__init__() for description of markup<br> <br> >>> e = Edit("")<br> >>> e.set_caption("cap1")<br> >>> print e.caption<br> cap1<br> >>> e.set_caption(('bold', "cap2"))<br> >>> print e.caption<br> cap2<br> >>> e.attrib<br> [('bold', 4)]<br> >>> e.caption = "cap3" # not supported because caption stores text but set_caption() takes markup<br> Traceback (most recent call last):<br> AttributeError: can't set attribute</tt></dd></dl> <dl><dt><a name="Edit-set_edit_pos"><strong>set_edit_pos</strong></a>(self, pos)</dt><dd><tt>Set the cursor position with a self.<strong>edit_text</strong> offset. <br> Clips pos to [0, len(edit_text)].<br> <br> >>> e = Edit(u"", u"word")<br> >>> e.edit_pos<br> 4<br> >>> e.set_edit_pos(2)<br> >>> e.edit_pos<br> 2<br> >>> e.edit_pos = -1 # Urwid 0.9.9 or later<br> >>> e.edit_pos<br> 0<br> >>> e.edit_pos = 20<br> >>> e.edit_pos<br> 4</tt></dd></dl> <dl><dt><a name="Edit-set_edit_text"><strong>set_edit_text</strong></a>(self, text)</dt><dd><tt>Set the edit text for this widget.<br> <br> >>> e = Edit()<br> >>> e.set_edit_text(u"yes")<br> >>> print e.edit_text<br> yes<br> >>> e<br> <Edit selectable flow widget 'yes' edit_pos=0><br> >>> e.edit_text = u"no" # Urwid 0.9.9 or later<br> >>> print e.edit_text<br> no</tt></dd></dl> <dl><dt><a name="Edit-set_mask"><strong>set_mask</strong></a>(self, mask)</dt><dd><tt>Set the character for masking text away. Empty means no masking.</tt></dd></dl> <dl><dt><a name="Edit-set_text"><strong>set_text</strong></a>(self, markup)</dt><dd><tt>Not supported by Edit widget.<br> <br> >>> Edit().set_text("test")<br> Traceback (most recent call last):<br> EditError: set_text() not supported. Use set_caption() or set_edit_text() instead.</tt></dd></dl> <dl><dt><a name="Edit-update_text"><strong>update_text</strong></a>(self)</dt><dd><tt>No longer supported.<br> <br> >>> Edit().update_text()<br> Traceback (most recent call last):<br> EditError: update_text() has been removed. Use set_caption() or set_edit_text() instead.</tt></dd></dl> <dl><dt><a name="Edit-valid_char"><strong>valid_char</strong></a>(self, ch)</dt><dd><tt>Return true for printable characters.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>caption</strong></dt> </dl> <dl><dt><strong>edit_pos</strong></dt> </dl> <dl><dt><strong>edit_text</strong></dt> <dd><tt>Return the edit text for this widget.<br> <br> >>> e = Edit(u"What? ", u"oh, nothing.")<br> >>> print e.get_edit_text()<br> oh, nothing.<br> >>> print e.edit_text<br> oh, nothing.</tt></dd> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>signals</strong> = ['change']</dl> <hr> Methods inherited from Text:<br> <dl><dt><a name="Edit-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of screen columns and rows required for<br> this Text widget to be displayed without wrapping or <br> clipping, as a single element tuple.<br> <br> size -- None for unlimited screen columns or (maxcol,) to<br> specify a maximum column size<br> <br> >>> Text(u"important things").pack()<br> (16, 1)<br> >>> Text(u"important things").pack((15,))<br> (9, 2)<br> >>> Text(u"important things").pack((8,))<br> (8, 2)</tt></dd></dl> <dl><dt><a name="Edit-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of rows the rendered text spans.<br> <br> >>> Text(u"important things").rows((18,))<br> 1<br> >>> Text(u"important things").rows((11,))<br> 2</tt></dd></dl> <dl><dt><a name="Edit-set_align_mode"><strong>set_align_mode</strong></a>(self, mode)</dt><dd><tt>Set text alignment / justification.<br> <br> Valid modes for StandardTextLayout are:<br> 'left', 'center' and 'right'<br> <br> >>> t = Text(u"word")<br> >>> t.set_align_mode('right')<br> >>> t.align<br> 'right'<br> >>> t.render((10,)).text # ... = b in Python 3<br> [...' word']<br> >>> t.align = 'center'<br> >>> t.render((10,)).text<br> [...' word ']<br> >>> t.align = 'somewhere'<br> Traceback (most recent call last):<br> TextError: Alignment mode 'somewhere' not supported.</tt></dd></dl> <dl><dt><a name="Edit-set_layout"><strong>set_layout</strong></a>(self, align, wrap, layout<font color="#909090">=None</font>)</dt><dd><tt>Set layout object, align and wrap modes.<br> <br> align -- align mode for text layout<br> wrap -- wrap mode for text layout<br> layout -- layout object to use, defaults to StandardTextLayout<br> <br> >>> t = Text(u"hi")<br> >>> t.set_layout('right', 'clip')<br> >>> t<br> <Text flow widget 'hi' align='right' wrap='clip'></tt></dd></dl> <dl><dt><a name="Edit-set_wrap_mode"><strong>set_wrap_mode</strong></a>(self, mode)</dt><dd><tt>Set wrap mode.<br> <br> Valid modes for StandardTextLayout are :<br> 'any' : wrap at any character<br> 'space' : wrap on space character<br> 'clip' : truncate lines instead of wrapping<br> <br> >>> t = Text(u"some words")<br> >>> t.render((6,)).text # ... = b in Python 3<br> [...'some ', ...'words ']<br> >>> t.set_wrap_mode('clip')<br> >>> t.wrap<br> 'clip'<br> >>> t.render((6,)).text<br> [...'some w']<br> >>> t.wrap = 'any' # Urwid 0.9.9 or later<br> >>> t.render((6,)).text<br> [...'some w', ...'ords ']<br> >>> t.wrap = 'somehow'<br> Traceback (most recent call last):<br> TextError: Wrap mode 'somehow' not supported.</tt></dd></dl> <hr> Data descriptors inherited from Text:<br> <dl><dt><strong>align</strong></dt> </dl> <dl><dt><strong>attrib</strong></dt> </dl> <dl><dt><strong>layout</strong></dt> </dl> <dl><dt><strong>text</strong></dt> </dl> <dl><dt><strong>wrap</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Edit-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Edit-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="IntEdit"></a><h3>function IntEdit <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="IntEdit">class <strong>IntEdit</strong></a>(Edit) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>IntEdit</dd> <dd>Edit</dd> <dd>Text</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="IntEdit-__init__"><strong>__init__</strong></a>(self, caption<font color="#909090">=''</font>, default<font color="#909090">=None</font>)</dt><dd><tt>caption -- caption markup<br> default -- default edit value<br> <br> >>> IntEdit(u"", 42)<br> <IntEdit selectable flow widget '42' edit_pos=2></tt></dd></dl> <dl><dt><a name="IntEdit-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Handle editing keystrokes. Remove leading zeros.<br> <br> >>> e, size = IntEdit(u"", 5002), (10,)<br> >>> e.keypress(size, 'home')<br> >>> e.keypress(size, 'delete')<br> >>> print e.edit_text<br> 002<br> >>> e.keypress(size, 'end')<br> >>> print e.edit_text<br> 2</tt></dd></dl> <dl><dt><a name="IntEdit-valid_char"><strong>valid_char</strong></a>(self, ch)</dt><dd><tt>Return true for decimal digits.</tt></dd></dl> <dl><dt><a name="IntEdit-value"><strong>value</strong></a>(self)</dt><dd><tt>Return the numeric value of self.<strong>edit_text</strong>.<br> <br> >>> e, size = IntEdit(), (10,)<br> >>> e.keypress(size, '5')<br> >>> e.keypress(size, '1')<br> >>> e.value() == 51<br> True</tt></dd></dl> <hr> Methods inherited from Edit:<br> <dl><dt><a name="IntEdit-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>Return the (x,y) coordinates of cursor within widget.<br> <br> >>> Edit("? ","yes").get_cursor_coords((10,))<br> (5, 0)</tt></dd></dl> <dl><dt><a name="IntEdit-get_edit_text"><strong>get_edit_text</strong></a>(self)</dt><dd><tt>Return the edit text for this widget.<br> <br> >>> e = Edit(u"What? ", u"oh, nothing.")<br> >>> print e.get_edit_text()<br> oh, nothing.<br> >>> print e.edit_text<br> oh, nothing.</tt></dd></dl> <dl><dt><a name="IntEdit-get_line_translation"><strong>get_line_translation</strong></a>(self, maxcol, ta<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="IntEdit-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>Return the preferred column for the cursor, or the<br> current cursor x value. May also return 'left' or 'right'<br> to indicate the leftmost or rightmost column available.<br> <br> This method is used internally and by other widgets when<br> moving the cursor up or down between widgets so that the <br> column selected is one that the user would expect.<br> <br> >>> size = (10,)<br> >>> Edit().get_pref_col(size)<br> 0<br> >>> e = Edit("","word")<br> >>> e.get_pref_col(size)<br> 4<br> >>> e.keypress(size, 'left')<br> >>> e.get_pref_col(size)<br> 3<br> >>> e.keypress(size, 'end')<br> >>> e.get_pref_col(size)<br> 'right'<br> >>> e = Edit("","2\nwords")<br> >>> e.keypress(size, 'left')<br> >>> e.keypress(size, 'up')<br> >>> e.get_pref_col(size)<br> 4<br> >>> e.keypress(size, 'left')<br> >>> e.get_pref_col(size)<br> 0</tt></dd></dl> <dl><dt><a name="IntEdit-get_text"><strong>get_text</strong></a>(self)</dt><dd><tt>Returns (text, attributes).<br> <br> text -- complete text of caption and edit_text, maybe masked away<br> attributes -- run length encoded attributes for text<br> <br> >>> Edit("What? ","oh, nothing.").get_text() # ... = u in Python 2<br> (...'What? oh, nothing.', [])<br> >>> Edit(('bright',"user@host:~$ "),"ls").get_text()<br> (...'user@host:~$ ls', [('bright', 13)])</tt></dd></dl> <dl><dt><a name="IntEdit-insert_text"><strong>insert_text</strong></a>(self, text)</dt><dd><tt>Insert text at the cursor position and update cursor.<br> This method is used by the keypress() method when inserting<br> one or more characters into edit_text.<br> <br> >>> e = Edit(u"", u"42")<br> >>> e.insert_text(u".5")<br> >>> e<br> <Edit selectable flow widget '42.5' edit_pos=4><br> >>> e.set_edit_pos(2)<br> >>> e.insert_text(u"a")<br> >>> print e.edit_text<br> 42a.5</tt></dd></dl> <dl><dt><a name="IntEdit-insert_text_result"><strong>insert_text_result</strong></a>(self, text)</dt><dd><tt>Return result of insert_text(text) without actually performing the<br> insertion. Handy for pre-validation.</tt></dd></dl> <dl><dt><a name="IntEdit-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Move the cursor to the location clicked for button 1.<br> <br> >>> size = (20,)<br> >>> e = Edit("","words here")<br> >>> e.mouse_event(size, 'mouse press', 1, 2, 0, True)<br> True<br> >>> e.edit_pos<br> 2</tt></dd></dl> <dl><dt><a name="IntEdit-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, x, y)</dt><dd><tt>Set the cursor position with (x,y) coordinates.<br> Returns True if move succeeded, False otherwise.<br> <br> >>> size = (10,)<br> >>> e = Edit("","edit\ntext")<br> >>> e.move_cursor_to_coords(size, 5, 0)<br> True<br> >>> e.edit_pos<br> 4<br> >>> e.move_cursor_to_coords(size, 5, 3)<br> False<br> >>> e.move_cursor_to_coords(size, 0, 1)<br> True<br> >>> e.edit_pos<br> 5</tt></dd></dl> <dl><dt><a name="IntEdit-position_coords"><strong>position_coords</strong></a>(self, maxcol, pos)</dt><dd><tt>Return (x,y) coordinates for an offset into self.<strong>edit_text</strong>.</tt></dd></dl> <dl><dt><a name="IntEdit-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render edit widget and return canvas. Include cursor when in<br> focus.<br> <br> >>> c = Edit("? ","yes").render((10,), focus=True)<br> >>> c.text # ... = b in Python 3<br> [...'? yes ']<br> >>> c.cursor<br> (5, 0)</tt></dd></dl> <dl><dt><a name="IntEdit-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="IntEdit-set_caption"><strong>set_caption</strong></a>(self, caption)</dt><dd><tt>Set the caption markup for this widget.<br> <br> caption -- see Text.__init__() for description of markup<br> <br> >>> e = Edit("")<br> >>> e.set_caption("cap1")<br> >>> print e.caption<br> cap1<br> >>> e.set_caption(('bold', "cap2"))<br> >>> print e.caption<br> cap2<br> >>> e.attrib<br> [('bold', 4)]<br> >>> e.caption = "cap3" # not supported because caption stores text but set_caption() takes markup<br> Traceback (most recent call last):<br> AttributeError: can't set attribute</tt></dd></dl> <dl><dt><a name="IntEdit-set_edit_pos"><strong>set_edit_pos</strong></a>(self, pos)</dt><dd><tt>Set the cursor position with a self.<strong>edit_text</strong> offset. <br> Clips pos to [0, len(edit_text)].<br> <br> >>> e = Edit(u"", u"word")<br> >>> e.edit_pos<br> 4<br> >>> e.set_edit_pos(2)<br> >>> e.edit_pos<br> 2<br> >>> e.edit_pos = -1 # Urwid 0.9.9 or later<br> >>> e.edit_pos<br> 0<br> >>> e.edit_pos = 20<br> >>> e.edit_pos<br> 4</tt></dd></dl> <dl><dt><a name="IntEdit-set_edit_text"><strong>set_edit_text</strong></a>(self, text)</dt><dd><tt>Set the edit text for this widget.<br> <br> >>> e = Edit()<br> >>> e.set_edit_text(u"yes")<br> >>> print e.edit_text<br> yes<br> >>> e<br> <Edit selectable flow widget 'yes' edit_pos=0><br> >>> e.edit_text = u"no" # Urwid 0.9.9 or later<br> >>> print e.edit_text<br> no</tt></dd></dl> <dl><dt><a name="IntEdit-set_mask"><strong>set_mask</strong></a>(self, mask)</dt><dd><tt>Set the character for masking text away. Empty means no masking.</tt></dd></dl> <dl><dt><a name="IntEdit-set_text"><strong>set_text</strong></a>(self, markup)</dt><dd><tt>Not supported by Edit widget.<br> <br> >>> Edit().set_text("test")<br> Traceback (most recent call last):<br> EditError: set_text() not supported. Use set_caption() or set_edit_text() instead.</tt></dd></dl> <dl><dt><a name="IntEdit-update_text"><strong>update_text</strong></a>(self)</dt><dd><tt>No longer supported.<br> <br> >>> Edit().update_text()<br> Traceback (most recent call last):<br> EditError: update_text() has been removed. Use set_caption() or set_edit_text() instead.</tt></dd></dl> <hr> Data descriptors inherited from Edit:<br> <dl><dt><strong>caption</strong></dt> </dl> <dl><dt><strong>edit_pos</strong></dt> </dl> <dl><dt><strong>edit_text</strong></dt> <dd><tt>Return the edit text for this widget.<br> <br> >>> e = Edit(u"What? ", u"oh, nothing.")<br> >>> print e.get_edit_text()<br> oh, nothing.<br> >>> print e.edit_text<br> oh, nothing.</tt></dd> </dl> <hr> Data and other attributes inherited from Edit:<br> <dl><dt><strong>signals</strong> = ['change']</dl> <hr> Methods inherited from Text:<br> <dl><dt><a name="IntEdit-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of screen columns and rows required for<br> this Text widget to be displayed without wrapping or <br> clipping, as a single element tuple.<br> <br> size -- None for unlimited screen columns or (maxcol,) to<br> specify a maximum column size<br> <br> >>> Text(u"important things").pack()<br> (16, 1)<br> >>> Text(u"important things").pack((15,))<br> (9, 2)<br> >>> Text(u"important things").pack((8,))<br> (8, 2)</tt></dd></dl> <dl><dt><a name="IntEdit-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return the number of rows the rendered text spans.<br> <br> >>> Text(u"important things").rows((18,))<br> 1<br> >>> Text(u"important things").rows((11,))<br> 2</tt></dd></dl> <dl><dt><a name="IntEdit-set_align_mode"><strong>set_align_mode</strong></a>(self, mode)</dt><dd><tt>Set text alignment / justification.<br> <br> Valid modes for StandardTextLayout are:<br> 'left', 'center' and 'right'<br> <br> >>> t = Text(u"word")<br> >>> t.set_align_mode('right')<br> >>> t.align<br> 'right'<br> >>> t.render((10,)).text # ... = b in Python 3<br> [...' word']<br> >>> t.align = 'center'<br> >>> t.render((10,)).text<br> [...' word ']<br> >>> t.align = 'somewhere'<br> Traceback (most recent call last):<br> TextError: Alignment mode 'somewhere' not supported.</tt></dd></dl> <dl><dt><a name="IntEdit-set_layout"><strong>set_layout</strong></a>(self, align, wrap, layout<font color="#909090">=None</font>)</dt><dd><tt>Set layout object, align and wrap modes.<br> <br> align -- align mode for text layout<br> wrap -- wrap mode for text layout<br> layout -- layout object to use, defaults to StandardTextLayout<br> <br> >>> t = Text(u"hi")<br> >>> t.set_layout('right', 'clip')<br> >>> t<br> <Text flow widget 'hi' align='right' wrap='clip'></tt></dd></dl> <dl><dt><a name="IntEdit-set_wrap_mode"><strong>set_wrap_mode</strong></a>(self, mode)</dt><dd><tt>Set wrap mode.<br> <br> Valid modes for StandardTextLayout are :<br> 'any' : wrap at any character<br> 'space' : wrap on space character<br> 'clip' : truncate lines instead of wrapping<br> <br> >>> t = Text(u"some words")<br> >>> t.render((6,)).text # ... = b in Python 3<br> [...'some ', ...'words ']<br> >>> t.set_wrap_mode('clip')<br> >>> t.wrap<br> 'clip'<br> >>> t.render((6,)).text<br> [...'some w']<br> >>> t.wrap = 'any' # Urwid 0.9.9 or later<br> >>> t.render((6,)).text<br> [...'some w', ...'ords ']<br> >>> t.wrap = 'somehow'<br> Traceback (most recent call last):<br> TextError: Wrap mode 'somehow' not supported.</tt></dd></dl> <hr> Data descriptors inherited from Text:<br> <dl><dt><strong>align</strong></dt> </dl> <dl><dt><strong>attrib</strong></dt> </dl> <dl><dt><strong>layout</strong></dt> </dl> <dl><dt><strong>text</strong></dt> </dl> <dl><dt><strong>wrap</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="IntEdit-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="IntEdit-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="Button"></a><h3>function Button <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Button">class <strong>Button</strong></a>(WidgetWrap) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Button</dd> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Button-__init__"><strong>__init__</strong></a>(self, label, on_press<font color="#909090">=None</font>, user_data<font color="#909090">=None</font>)</dt><dd><tt>label -- markup for button label<br> on_press, user_data -- shorthand for connect_signal()<br> function call for a single callback<br> <br> Signals supported: 'click'<br> Register signal handler with:<br> connect_signal(button, 'click', callback [,user_data])<br> where callback is callback(button [,user_data])<br> Unregister signal handlers with:<br> disconnect_signal(button, 'click', callback [,user_data])<br> <br> >>> Button(u"Ok")<br> <Button selectable widget 'Ok'><br> >>> b = Button("Cancel")<br> >>> b.render((15,), focus=True).text # ... = b in Python 3<br> [...'< Cancel >']</tt></dd></dl> <dl><dt><a name="Button-get_label"><strong>get_label</strong></a>(self)</dt><dd><tt>Return label text.<br> <br> >>> b = Button(u"Ok")<br> >>> print b.get_label()<br> Ok<br> >>> print b.label # Urwid 0.9.9 or later<br> Ok</tt></dd></dl> <dl><dt><a name="Button-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Send 'click' signal on 'activate' command.<br> <br> >>> assert Button._command_map[' '] == 'activate'<br> >>> assert Button._command_map['enter'] == 'activate'<br> >>> size = (15,)<br> >>> b = Button(u"Cancel")<br> >>> clicked_buttons = []<br> >>> def handle_click(button):<br> ... clicked_buttons.append(button.label)<br> >>> connect_signal(b, 'click', handle_click)<br> >>> b.keypress(size, 'enter')<br> >>> b.keypress(size, ' ')<br> >>> clicked_buttons # ... = u in Python 2<br> [...'Cancel', ...'Cancel']</tt></dd></dl> <dl><dt><a name="Button-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Send 'click' signal on button 1 press.<br> <br> >>> size = (15,)<br> >>> b = Button(u"Ok")<br> >>> clicked_buttons = []<br> >>> def handle_click(button):<br> ... clicked_buttons.append(button.label)<br> >>> connect_signal(b, 'click', handle_click)<br> >>> b.mouse_event(size, 'mouse press', 1, 4, 0, True)<br> True<br> >>> b.mouse_event(size, 'mouse press', 2, 4, 0, True) # ignored<br> False<br> >>> clicked_buttons # ... = u in Python 2<br> [...'Ok']</tt></dd></dl> <dl><dt><a name="Button-set_label"><strong>set_label</strong></a>(self, label)</dt><dd><tt>Change the button label.<br> <br> label -- markup for button label<br> <br> >>> b = Button("Ok")<br> >>> b.set_label(u"Yup yup")<br> >>> b<br> <Button selectable widget 'Yup yup'></tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>label</strong></dt> <dd><tt>Return label text.<br> <br> >>> b = Button(u"Ok")<br> >>> print b.get_label()<br> Ok<br> >>> print b.label # Urwid 0.9.9 or later<br> Ok</tt></dd> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>button_left</strong> = <Text flow widget b'<'></dl> <dl><dt><strong>button_right</strong> = <Text flow widget b'>'></dl> <dl><dt><strong>signals</strong> = ['click']</dl> <hr> Data descriptors inherited from WidgetWrap:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="Button-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Button-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="CheckBox"></a><h3>function CheckBox <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="CheckBox">class <strong>CheckBox</strong></a>(WidgetWrap) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>CheckBox</dd> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="CheckBox-__init__"><strong>__init__</strong></a>(self, label, state<font color="#909090">=False</font>, has_mixed<font color="#909090">=False</font>, on_state_change<font color="#909090">=None</font>, user_data<font color="#909090">=None</font>)</dt><dd><tt>label -- markup for check box label<br> state -- False, True or "mixed"<br> has_mixed -- True if "mixed" is a state to cycle through<br> on_state_change, user_data -- shorthand for connect_signal()<br> function call for a single callback<br> <br> Signals supported: 'change'<br> Register signal handler with:<br> connect_signal(check_box, 'change', callback [,user_data])<br> where callback is callback(check_box, new_state [,user_data])<br> Unregister signal handlers with:<br> disconnect_signal(check_box, 'change', callback [,user_data])<br> <br> >>> CheckBox(u"Confirm")<br> <CheckBox selectable widget 'Confirm' state=False><br> >>> CheckBox(u"Yogourt", "mixed", True)<br> <CheckBox selectable widget 'Yogourt' state='mixed'><br> >>> cb = CheckBox(u"Extra onions", True)<br> >>> cb<br> <CheckBox selectable widget 'Extra onions' state=True><br> >>> cb.render((20,), focus=True).text # ... = b in Python 3<br> [...'[X] Extra onions ']</tt></dd></dl> <dl><dt><a name="CheckBox-get_label"><strong>get_label</strong></a>(self)</dt><dd><tt>Return label text.<br> <br> >>> cb = CheckBox(u"Seriously")<br> >>> print cb.get_label()<br> Seriously<br> >>> print cb.label # Urwid 0.9.9 or later<br> Seriously<br> >>> cb.set_label([('bright_attr', u"flashy"), u" normal"])<br> >>> print cb.label # only text is returned<br> flashy normal</tt></dd></dl> <dl><dt><a name="CheckBox-get_state"><strong>get_state</strong></a>(self)</dt><dd><tt>Return the state of the checkbox.</tt></dd></dl> <dl><dt><a name="CheckBox-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Toggle state on 'activate' command. <br> <br> >>> assert CheckBox._command_map[' '] == 'activate'<br> >>> assert CheckBox._command_map['enter'] == 'activate'<br> >>> size = (10,)<br> >>> cb = CheckBox('press me')<br> >>> cb.state<br> False<br> >>> cb.keypress(size, ' ')<br> >>> cb.state<br> True<br> >>> cb.keypress(size, ' ')<br> >>> cb.state<br> False</tt></dd></dl> <dl><dt><a name="CheckBox-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Toggle state on button 1 press.<br> <br> >>> size = (20,)<br> >>> cb = CheckBox("clickme")<br> >>> cb.state<br> False<br> >>> cb.mouse_event(size, 'mouse press', 1, 2, 0, True)<br> True<br> >>> cb.state<br> True</tt></dd></dl> <dl><dt><a name="CheckBox-set_label"><strong>set_label</strong></a>(self, label)</dt><dd><tt>Change the check box label.<br> <br> label -- markup for label. See Text widget for description<br> of text markup.<br> <br> >>> cb = CheckBox(u"foo")<br> >>> cb<br> <CheckBox selectable widget 'foo' state=False><br> >>> cb.set_label(('bright_attr', u"bar"))<br> >>> cb<br> <CheckBox selectable widget 'bar' state=False></tt></dd></dl> <dl><dt><a name="CheckBox-set_state"><strong>set_state</strong></a>(self, state, do_callback<font color="#909090">=True</font>)</dt><dd><tt>Set the CheckBox state.<br> <br> state -- True, False or "mixed"<br> do_callback -- False to supress signal from this change<br> <br> >>> changes = []<br> >>> def callback_a(cb, state, user_data): <br> ... changes.append("A %r %r" % (state, user_data))<br> >>> def callback_b(cb, state): <br> ... changes.append("B %r" % state)<br> >>> cb = CheckBox('test', False, False)<br> >>> connect_signal(cb, 'change', callback_a, "user_a")<br> >>> connect_signal(cb, 'change', callback_b)<br> >>> cb.set_state(True) # both callbacks will be triggered<br> >>> cb.state<br> True<br> >>> disconnect_signal(cb, 'change', callback_a, "user_a")<br> >>> cb.state = False # Urwid 0.9.9 or later<br> >>> cb.state<br> False<br> >>> cb.set_state(True)<br> >>> cb.state<br> True<br> >>> cb.set_state(False, False) # don't send signal<br> >>> changes<br> ["A True 'user_a'", 'B True', 'B False', 'B True']</tt></dd></dl> <dl><dt><a name="CheckBox-toggle_state"><strong>toggle_state</strong></a>(self)</dt><dd><tt>Cycle to the next valid state.<br> <br> >>> cb = CheckBox("3-state", has_mixed=True)<br> >>> cb.state<br> False<br> >>> cb.toggle_state()<br> >>> cb.state<br> True<br> >>> cb.toggle_state()<br> >>> cb.state<br> 'mixed'<br> >>> cb.toggle_state()<br> >>> cb.state<br> False</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>label</strong></dt> <dd><tt>Return label text.<br> <br> >>> cb = CheckBox(u"Seriously")<br> >>> print cb.get_label()<br> Seriously<br> >>> print cb.label # Urwid 0.9.9 or later<br> Seriously<br> >>> cb.set_label([('bright_attr', u"flashy"), u" normal"])<br> >>> print cb.label # only text is returned<br> flashy normal</tt></dd> </dl> <dl><dt><strong>state</strong></dt> <dd><tt>Return the state of the checkbox.</tt></dd> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>reserve_columns</strong> = 4</dl> <dl><dt><strong>signals</strong> = ['change']</dl> <dl><dt><strong>states</strong> = {False: <SelectableIcon selectable flow widget b'[ ]'>, True: <SelectableIcon selectable flow widget b'[X]'>, 'mixed': <SelectableIcon selectable flow widget b'[#]'>}</dl> <hr> Data descriptors inherited from WidgetWrap:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="CheckBox-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="CheckBox-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="RadioButton"></a><h3>function RadioButton <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="RadioButton">class <strong>RadioButton</strong></a>(CheckBox) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>RadioButton</dd> <dd>CheckBox</dd> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="RadioButton-__init__"><strong>__init__</strong></a>(self, group, label, state<font color="#909090">='first True'</font>, on_state_change<font color="#909090">=None</font>, user_data<font color="#909090">=None</font>)</dt><dd><tt>group -- list for radio buttons in same group<br> label -- markup for radio button label<br> state -- False, True, "mixed" or "first True"<br> on_state_change, user_data -- shorthand for connect_signal()<br> function call for a single 'change' callback<br> <br> This function will append the new radio button to group.<br> "first True" will set to True if group is empty.<br> <br> Signals supported: 'change'<br> Register signal handler with:<br> connect_signal(radio_button, 'change', callback [,user_data])<br> where callback is callback(radio_button, new_state [,user_data])<br> Unregister signal handlers with:<br> disconnect_signal(radio_button, 'change', callback [,user_data])<br> <br> >>> bgroup = [] # button group<br> >>> b1 = RadioButton(bgroup, u"Agree")<br> >>> b2 = RadioButton(bgroup, u"Disagree")<br> >>> len(bgroup)<br> 2<br> >>> b1<br> <RadioButton selectable widget 'Agree' state=True><br> >>> b2<br> <RadioButton selectable widget 'Disagree' state=False><br> >>> b2.render((15,), focus=True).text # ... = b in Python 3<br> [...'( ) Disagree ']</tt></dd></dl> <dl><dt><a name="RadioButton-set_state"><strong>set_state</strong></a>(self, state, do_callback<font color="#909090">=True</font>)</dt><dd><tt>Set the RadioButton state.<br> <br> state -- True, False or "mixed"<br> do_callback -- False to supress signal from this change<br> <br> If state is True all other radio buttons in the same button<br> group will be set to False.<br> <br> >>> bgroup = [] # button group<br> >>> b1 = RadioButton(bgroup, u"Agree")<br> >>> b2 = RadioButton(bgroup, u"Disagree")<br> >>> b3 = RadioButton(bgroup, u"Unsure")<br> >>> b1.state, b2.state, b3.state<br> (True, False, False)<br> >>> b2.set_state(True)<br> >>> b1.state, b2.state, b3.state<br> (False, True, False)<br> >>> def relabel_button(radio_button, new_state):<br> ... radio_button.set_label(u"Think Harder!")<br> >>> connect_signal(b3, 'change', relabel_button)<br> >>> b3<br> <RadioButton selectable widget 'Unsure' state=False><br> >>> b3.set_state(True) # this will trigger the callback<br> >>> b3<br> <RadioButton selectable widget 'Think Harder!' state=True></tt></dd></dl> <dl><dt><a name="RadioButton-toggle_state"><strong>toggle_state</strong></a>(self)</dt><dd><tt>Set state to True.<br> <br> >>> bgroup = [] # button group<br> >>> b1 = RadioButton(bgroup, "Agree")<br> >>> b2 = RadioButton(bgroup, "Disagree")<br> >>> b1.state, b2.state<br> (True, False)<br> >>> b2.toggle_state()<br> >>> b1.state, b2.state<br> (False, True)<br> >>> b2.toggle_state()<br> >>> b1.state, b2.state<br> (False, True)</tt></dd></dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>reserve_columns</strong> = 4</dl> <dl><dt><strong>states</strong> = {False: <SelectableIcon selectable flow widget b'( )'>, True: <SelectableIcon selectable flow widget b'(X)'>, 'mixed': <SelectableIcon selectable flow widget b'(#)'>}</dl> <hr> Methods inherited from CheckBox:<br> <dl><dt><a name="RadioButton-get_label"><strong>get_label</strong></a>(self)</dt><dd><tt>Return label text.<br> <br> >>> cb = CheckBox(u"Seriously")<br> >>> print cb.get_label()<br> Seriously<br> >>> print cb.label # Urwid 0.9.9 or later<br> Seriously<br> >>> cb.set_label([('bright_attr', u"flashy"), u" normal"])<br> >>> print cb.label # only text is returned<br> flashy normal</tt></dd></dl> <dl><dt><a name="RadioButton-get_state"><strong>get_state</strong></a>(self)</dt><dd><tt>Return the state of the checkbox.</tt></dd></dl> <dl><dt><a name="RadioButton-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Toggle state on 'activate' command. <br> <br> >>> assert CheckBox._command_map[' '] == 'activate'<br> >>> assert CheckBox._command_map['enter'] == 'activate'<br> >>> size = (10,)<br> >>> cb = CheckBox('press me')<br> >>> cb.state<br> False<br> >>> cb.keypress(size, ' ')<br> >>> cb.state<br> True<br> >>> cb.keypress(size, ' ')<br> >>> cb.state<br> False</tt></dd></dl> <dl><dt><a name="RadioButton-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt><dd><tt>Toggle state on button 1 press.<br> <br> >>> size = (20,)<br> >>> cb = CheckBox("clickme")<br> >>> cb.state<br> False<br> >>> cb.mouse_event(size, 'mouse press', 1, 2, 0, True)<br> True<br> >>> cb.state<br> True</tt></dd></dl> <dl><dt><a name="RadioButton-set_label"><strong>set_label</strong></a>(self, label)</dt><dd><tt>Change the check box label.<br> <br> label -- markup for label. See Text widget for description<br> of text markup.<br> <br> >>> cb = CheckBox(u"foo")<br> >>> cb<br> <CheckBox selectable widget 'foo' state=False><br> >>> cb.set_label(('bright_attr', u"bar"))<br> >>> cb<br> <CheckBox selectable widget 'bar' state=False></tt></dd></dl> <hr> Data descriptors inherited from CheckBox:<br> <dl><dt><strong>label</strong></dt> <dd><tt>Return label text.<br> <br> >>> cb = CheckBox(u"Seriously")<br> >>> print cb.get_label()<br> Seriously<br> >>> print cb.label # Urwid 0.9.9 or later<br> Seriously<br> >>> cb.set_label([('bright_attr', u"flashy"), u" normal"])<br> >>> print cb.label # only text is returned<br> flashy normal</tt></dd> </dl> <dl><dt><strong>state</strong></dt> <dd><tt>Return the state of the checkbox.</tt></dd> </dl> <hr> Data and other attributes inherited from CheckBox:<br> <dl><dt><strong>signals</strong> = ['change']</dl> <hr> Data descriptors inherited from WidgetWrap:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="RadioButton-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="RadioButton-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Graphics</h2><a name="BarGraph"></a><h3>function BarGraph <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="BarGraph">class <strong>BarGraph</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>BarGraph</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="BarGraph-__init__"><strong>__init__</strong></a>(self, attlist, hatt<font color="#909090">=None</font>, satt<font color="#909090">=None</font>)</dt><dd><tt>Create a bar graph with the passed display characteristics.<br> see set_segment_attributes for a description of the parameters.</tt></dd></dl> <dl><dt><a name="BarGraph-calculate_bar_widths"><strong>calculate_bar_widths</strong></a>(self, size, bardata)</dt><dd><tt>Return a list of bar widths, one for each bar in data.<br> <br> If self.<strong>bar_width</strong> is None this implementation will stretch <br> the bars across the available space specified by maxcol.</tt></dd></dl> <dl><dt><a name="BarGraph-calculate_display"><strong>calculate_display</strong></a>(self, size)</dt><dd><tt>Calculate display data.</tt></dd></dl> <dl><dt><a name="BarGraph-hlines_display"><strong>hlines_display</strong></a>(self, disp, top, hlines, maxrow)</dt><dd><tt>Add hlines to display structure represented as bar_type tuple<br> values:<br> (bg, 0-5)<br> bg is the segment that has the hline on it<br> 0-5 is the hline graphic to use where 0 is a regular underscore<br> and 1-5 are the UTF-8 horizontal scan line characters.</tt></dd></dl> <dl><dt><a name="BarGraph-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render BarGraph.</tt></dd></dl> <dl><dt><a name="BarGraph-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return False.</tt></dd></dl> <dl><dt><a name="BarGraph-set_bar_width"><strong>set_bar_width</strong></a>(self, width)</dt><dd><tt>Set a preferred bar width for calculate_bar_widths to use.<br> <br> width -- width of bar or None for automatic width adjustment</tt></dd></dl> <dl><dt><a name="BarGraph-set_data"><strong>set_data</strong></a>(self, bardata, top, hlines<font color="#909090">=None</font>)</dt><dd><tt>Store bar data, bargraph top and horizontal line positions.<br> <br> bardata -- a list of bar values.<br> top -- maximum value for segments within bardata<br> hlines -- None or a bar value marking horizontal line positions<br> <br> bar values are [ segment1, segment2, ... ] lists where top is <br> the maximal value corresponding to the top of the bar graph and<br> segment1, segment2, ... are the values for the top of each <br> segment of this bar. Simple bar graphs will only have one<br> segment in each bar value.<br> <br> Eg: if top is 100 and there is a bar value of [ 80, 30 ] then<br> the top of this bar will be at 80% of full height of the graph<br> and it will have a second segment that starts at 30%.</tt></dd></dl> <dl><dt><a name="BarGraph-set_segment_attributes"><strong>set_segment_attributes</strong></a>(self, attlist, hatt<font color="#909090">=None</font>, satt<font color="#909090">=None</font>)</dt><dd><tt>attlist -- list containing attribute or (attribute, character)<br> tuple for background, first segment, and optionally<br> following segments. ie. len(attlist) == num segments+1<br> character defaults to ' ' if not specified.<br> hatt -- list containing attributes for horizontal lines. First <br> lement is for lines on background, second is for lines<br> on first segment, third is for lines on second segment<br> etc..<br> satt -- dictionary containing attributes for smoothed <br> transitions of bars in UTF-8 display mode. The values<br> are in the form:<br> (fg,bg) : attr<br> fg and bg are integers where 0 is the graph background,<br> 1 is the first segment, 2 is the second, ... <br> fg > bg in all values. attr is an attribute with a <br> foreground corresponding to fg and a background <br> corresponding to bg.<br> <br> If satt is not None and the bar graph is being displayed in<br> a terminal using the UTF-8 encoding then the character cell<br> that is shared between the segments specified will be smoothed<br> with using the UTF-8 vertical eighth characters.<br> <br> eg: set_segment_attributes( ['no', ('unsure',"?"), 'yes'] )<br> will use the attribute 'no' for the background (the area from<br> the top of the graph to the top of the bar), question marks <br> with the attribute 'unsure' will be used for the topmost <br> segment of the bar, and the attribute 'yes' will be used for<br> the bottom segment of the bar.</tt></dd></dl> <dl><dt><a name="BarGraph-smooth_display"><strong>smooth_display</strong></a>(self, disp)</dt><dd><tt>smooth (col, row*8) display into (col, row) display using<br> UTF vertical eighth characters represented as bar_type<br> tuple values:<br> ( fg, bg, 1-7 )<br> where fg is the lower segment, bg is the upper segment and<br> 1-7 is the vertical eighth character to use.</tt></dd></dl> <dl><dt><a name="BarGraph-use_smoothed"><strong>use_smoothed</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>get_data</strong></dt> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.graphics.BarGraphMeta'><dd><tt>Detect subclass get_data() method and dynamic change to<br> get_data() method and disable caching in these cases.<br> <br> This is for backwards compatibility only, new programs<br> should use set_data() instead of overriding get_data().</tt></dl> <dl><dt><strong>eighths</strong> = u' <font color="#c040c0">\u2581\u2582\u2583\u2584\u2585\u2586\u2587</font>'</dl> <dl><dt><strong>hlines</strong> = u'_<font color="#c040c0">\u23ba\u23bb\u2500\u23bc\u23bd</font>'</dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="BarGraph-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="BarGraph-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="BarGraph-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <a name="GraphVScale"></a><h3>function GraphVScale <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="GraphVScale">class <strong>GraphVScale</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>GraphVScale</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="GraphVScale-__init__"><strong>__init__</strong></a>(self, labels, top)</dt><dd><tt>GraphVScale( [(label1 position, label1 markup),...], top )<br> label position -- 0 < position < top for the y position<br> label markup -- text markup for this label<br> top -- top y position<br> <br> This widget is a vertical scale for the BarGraph widget that<br> can correspond to the BarGraph's horizontal lines</tt></dd></dl> <dl><dt><a name="GraphVScale-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render GraphVScale.</tt></dd></dl> <dl><dt><a name="GraphVScale-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return False.</tt></dd></dl> <dl><dt><a name="GraphVScale-set_scale"><strong>set_scale</strong></a>(self, labels, top)</dt><dd><tt>set_scale( [(label1 position, label1 markup),...], top )<br> label position -- 0 < position < top for the y position<br> label markup -- text markup for this label<br> top -- top y position</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="GraphVScale-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="GraphVScale-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="GraphVScale-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="ProgressBar"></a><h3>function ProgressBar <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="ProgressBar">class <strong>ProgressBar</strong></a>(FlowWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>ProgressBar</dd> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="ProgressBar-__init__"><strong>__init__</strong></a>(self, normal, complete, current<font color="#909090">=0</font>, done<font color="#909090">=100</font>, satt<font color="#909090">=None</font>)</dt><dd><tt>normal -- attribute for uncomplete part of progress bar<br> complete -- attribute for complete part of progress bar<br> current -- current progress<br> done -- progress amount at 100%<br> satt -- attribute for smoothed part of bar where the foreground<br> of satt corresponds to the normal part and the<br> background corresponds to the complete part. If satt<br> is None then no smoothing will be done.</tt></dd></dl> <dl><dt><a name="ProgressBar-get_text"><strong>get_text</strong></a>(self)</dt><dd><tt>Return the progress bar percentage text.</tt></dd></dl> <dl><dt><a name="ProgressBar-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Render the progress bar.</tt></dd></dl> <dl><dt><a name="ProgressBar-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="ProgressBar-set_completion"><strong>set_completion</strong></a>(self, current)</dt><dd><tt>current -- current progress</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>current</strong></dt> </dl> <dl><dt><strong>done</strong></dt> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>eighths</strong> = u' <font color="#c040c0">\u258f\u258e\u258d\u258c\u258b\u258a\u2589</font>'</dl> <dl><dt><strong>text_align</strong> = 'center'</dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="ProgressBar-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="ProgressBar-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="ProgressBar-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="ProgressBar-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="PopUpLauncher"></a><h3>function PopUpLauncher <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="PopUpLauncher">class <strong>PopUpLauncher</strong></a>(DelegateToWidgetMixin, WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>PopUpLauncher</dd> <dd>DelegateToWidgetMixin</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="PopUpLauncher-__init__"><strong>__init__</strong></a>(self, original_widget)</dt></dl> <dl><dt><a name="PopUpLauncher-close_pop_up"><strong>close_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="PopUpLauncher-create_pop_up"><strong>create_pop_up</strong></a>(self)</dt><dd><tt>Subclass must override this method and have is return a widget<br> to be used for the pop-up. This method is called once each time<br> the pop-up is opened.</tt></dd></dl> <dl><dt><a name="PopUpLauncher-get_pop_up_parameters"><strong>get_pop_up_parameters</strong></a>(self)</dt><dd><tt>Subclass must override this method and have it return a dict, eg:<br> <br> {'left':0, 'top':1, 'overlay_width':30, 'overlay_height':4}<br> <br> This method is called each time this widget is rendered.</tt></dd></dl> <dl><dt><a name="PopUpLauncher-open_pop_up"><strong>open_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="PopUpLauncher-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>keypress</strong></dt> </dl> <dl><dt><strong>mouse_event</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="PopUpLauncher-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="PopUpTarget"></a><h3>function PopUpTarget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="PopUpTarget">class <strong>PopUpTarget</strong></a>(WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>PopUpTarget</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="PopUpTarget-__init__"><strong>__init__</strong></a>(self, original_widget)</dt></dl> <dl><dt><a name="PopUpTarget-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt></dl> <dl><dt><a name="PopUpTarget-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt></dl> <dl><dt><a name="PopUpTarget-keypress"><strong>keypress</strong></a>(self, size, key)</dt></dl> <dl><dt><a name="PopUpTarget-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, x, y, focus)</dt></dl> <dl><dt><a name="PopUpTarget-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, x, y)</dt></dl> <dl><dt><a name="PopUpTarget-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="PopUpTarget-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Methods inherited from WidgetDecoration:<br> <dl><dt><a name="PopUpTarget-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="PopUpTarget-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="PopUpTarget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="BigText"></a><h3>function BigText <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="BigText">class <strong>BigText</strong></a>(FixedWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>BigText</dd> <dd>FixedWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="BigText-__init__"><strong>__init__</strong></a>(self, markup, font)</dt><dd><tt>markup -- same as Text widget markup<br> font -- instance of a Font class</tt></dd></dl> <dl><dt><a name="BigText-get_text"><strong>get_text</strong></a>(self)</dt><dd><tt>Returns (text, attributes).</tt></dd></dl> <dl><dt><a name="BigText-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="BigText-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="BigText-set_font"><strong>set_font</strong></a>(self, font)</dt></dl> <dl><dt><a name="BigText-set_text"><strong>set_text</strong></a>(self, markup)</dt></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="BigText-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="BigText-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="BigText-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="get_all_fonts"></a><h3>function get_all_fonts <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-get_all_fonts"><strong>get_all_fonts</strong></a>()</dt><dd><tt>Return a list of (font name, font class) tuples.</tt></dd></dl> <h2>Build custom widgets</h2><a name="WidgetWrap"></a><h3>function WidgetWrap <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="WidgetWrap">class <strong>WidgetWrap</strong></a>(DelegateToWidgetMixin, Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="WidgetWrap-__init__"><strong>__init__</strong></a>(self, w)</dt><dd><tt>w -- widget to wrap, stored as self.<strong>_w</strong><br> <br> This object will pass the functions defined in Widget interface<br> definition to self.<strong>_w</strong>.<br> <br> The purpose of this widget is to provide a base class for<br> widgets that compose other widgets for their display and<br> behaviour. The details of that composition should not affect<br> users of the subclass. The subclass may decide to expose some<br> of the wrapped widgets by behaving like a ContainerWidget or<br> WidgetDecoration, or it may hide them from outside access.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="WidgetWrap-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>keypress</strong></dt> </dl> <dl><dt><strong>mouse_event</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="WidgetWrap-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="WidgetDecoration"></a><h3>function WidgetDecoration <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="WidgetDecoration">class <strong>WidgetDecoration</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="WidgetDecoration-__init__"><strong>__init__</strong></a>(self, original_widget)</dt><dd><tt>original_widget -- the widget being decorated<br> <br> This is a base class for decoration widgets, widgets<br> that contain one or more widgets and only ever have<br> a single focus. This type of widget will affect the<br> display or behaviour of the original_widget but it is<br> not part of determining a chain of focus.<br> <br> Don't actually do this -- use a WidgetDecoration subclass<br> instead, these are not real widgets:<br> >>> WidgetDecoration(Text(u"hi"))<br> <WidgetDecoration flow widget <Text flow widget 'hi'>></tt></dd></dl> <dl><dt><a name="WidgetDecoration-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="WidgetDecoration-sizing"><strong>sizing</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="WidgetDecoration-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="WidgetDecoration-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="WidgetPlaceholder"></a><h3>function WidgetPlaceholder <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="WidgetPlaceholder">class <strong>WidgetPlaceholder</strong></a>(DelegateToWidgetMixin, WidgetDecoration) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>WidgetPlaceholder</dd> <dd>DelegateToWidgetMixin</dd> <dd>WidgetDecoration</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="WidgetPlaceholder-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>keypress</strong></dt> </dl> <dl><dt><strong>mouse_event</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>selectable</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from WidgetDecoration:<br> <dl><dt><a name="WidgetPlaceholder-__init__"><strong>__init__</strong></a>(self, original_widget)</dt><dd><tt>original_widget -- the widget being decorated<br> <br> This is a base class for decoration widgets, widgets<br> that contain one or more widgets and only ever have<br> a single focus. This type of widget will affect the<br> display or behaviour of the original_widget but it is<br> not part of determining a chain of focus.<br> <br> Don't actually do this -- use a WidgetDecoration subclass<br> instead, these are not real widgets:<br> >>> WidgetDecoration(Text(u"hi"))<br> <WidgetDecoration flow widget <Text flow widget 'hi'>></tt></dd></dl> <hr> Data descriptors inherited from WidgetDecoration:<br> <dl><dt><strong>base_widget</strong></dt> <dd><tt>Return the widget without decorations. If there is only one<br> Decoration then this is the same as original_widget.<br> <br> >>> t = Text('hello')<br> >>> wd1 = WidgetDecoration(t)<br> >>> wd2 = WidgetDecoration(wd1)<br> >>> wd3 = WidgetDecoration(wd2)<br> >>> wd3.original_widget is wd2<br> True<br> >>> wd3.base_widget is t<br> True</tt></dd> </dl> <dl><dt><strong>original_widget</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="WidgetPlaceholder-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Abstract widgets & interfaces</h2><h3><a name="Widget_interface_definition"></a><strong>Widget interface definition</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="WidgetInterface-get_cursor_coords"><strong>get_cursor_coords</strong></a>(self, size)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the widget when rendered<br> <br> Returns (col,row) coordinates for cursor or None if no cursor.<br> <br> MUST be implemented if render function returns a canvas with<br> a cursor. <br> MUST match the cursor in the canvas returned by render function<br> when focus=True.<br> Caller MUST treat no implementation as equivalent to an <br> implementation that always returns None.</tt></dd></dl> <dl><dt><a name="WidgetInterface-get_pref_col"><strong>get_pref_col</strong></a>(self, size)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the widget when rendered<br> <br> Returns the preferred screen column as an integer or None.<br> <br> Caller MUST treat no implementation as equivalent to an <br> implementation that always returns None.</tt></dd></dl> <dl><dt><a name="WidgetInterface-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the widget when rendered<br> key -- key pressed<br> <br> Returns None if key was handled, returns key if not handled.<br> <br> MUST be implemented if selectable function returns True.<br> MUST NOT be called if selectable function returns False.</tt></dd></dl> <dl><dt><a name="WidgetInterface-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the widget when rendered<br> event -- event part of mouse event structure, eg. 'press',<br> 'release', 'drag', 'meta press' etc..<br> button -- button number for event between 1 and 5, may be 0<br> on button release events if button is unknown<br> col -- screen column of event, relative to left edge of widget<br> row -- screen row of event, relative to top edge of widget<br> focus -- True if this widget is in focus<br> <br> Returns True if event was handled, False otherwise.<br> <br> Caller MUST treat no implementation as equivalent to an<br> implementation that always returns False.</tt></dd></dl> <dl><dt><a name="WidgetInterface-move_cursor_to_coords"><strong>move_cursor_to_coords</strong></a>(self, size, col, row)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the widget when rendered<br> col -- desired screen column for cursor to appear, relative<br> to left edge of widget<br> row -- desired screen row for cursor to appear, relative to<br> top edge of widget<br> <br> Returns True on success, False on failure.<br> <br> MUST succeed if there is any column on passed row that the<br> cursor may be moved to.<br> Caller MUST treat no implementation as equivalent to an<br> implementation that always returns True.</tt></dd></dl> <dl><dt><a name="WidgetInterface-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>size -- flow widgets: (maxcol,) box widgets: (maxcol,maxrow)<br> where maxcol and maxrow are the maximum screen columns<br> and rows for the canvas returned<br> focus -- True if this widget is in focus<br> <br> Returns a canvas object.<br> <br> MUST be implemented.<br> MUST NOT return a canvas with a cursor when focus=False.</tt></dd></dl> <dl><dt><a name="WidgetInterface-rows"><strong>rows</strong></a>(self, (maxcol,), focus<font color="#909090">=False</font>)</dt><dd><tt>maxcol -- maximum screen columns for rendered widget<br> focus -- True if this widget is in focus<br> <br> Returns an integer number or screen rows required.<br> <br> MUST be implemented by all flow widgets.<br> MUST match the number of rows in the canvas returned by<br> render function called with the same parameters.</tt></dd></dl> <dl><dt><a name="WidgetInterface-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Returns True if this widget will accept keyboard input and<br> should take the focus when changing focus between widgets.<br> <br> MUST be implemented.</tt></dd></dl> <a name="BoxWidget"></a><h3>function BoxWidget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="BoxWidget">class <strong>BoxWidget</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="BoxWidget-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>All widgets must implement this function.</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="BoxWidget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="BoxWidget-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="BoxWidget-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="BoxWidget-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="FlowWidget"></a><h3>function FlowWidget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="FlowWidget">class <strong>FlowWidget</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>FlowWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="FlowWidget-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>All widgets must implement this function.</tt></dd></dl> <dl><dt><a name="FlowWidget-rows"><strong>rows</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>All flow widgets must implement this function.</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="FlowWidget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="FlowWidget-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="FlowWidget-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="FlowWidget-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="FixedWidget"></a><h3>function FixedWidget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="FixedWidget">class <strong>FixedWidget</strong></a>(Widget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>FixedWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="FixedWidget-pack"><strong>pack</strong></a>(self, size<font color="#909090">=None</font>, focus<font color="#909090">=False</font>)</dt><dd><tt>All fixed widgets must implement this function.</tt></dd></dl> <dl><dt><a name="FixedWidget-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>All widgets must implement this function.</tt></dd></dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="FixedWidget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="FixedWidget-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Return True if this widget should take focus. Default<br> implementation returns the value of self.<strong>_selectable</strong>.</tt></dd></dl> <dl><dt><a name="FixedWidget-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>ListBox list walkers</h2><h3><a name="List_Walker_interface_definition"></a><strong>List Walker interface definition</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="ListWalkerInterface-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Returns (widget, position).<br> <br> MUST be implemented.<br> Caller MUST NOT assume that position object may be stored and<br> reused after contents of list change.</tt></dd></dl> <dl><dt><a name="ListWalkerInterface-get_next"><strong>get_next</strong></a>(self, position)</dt><dd><tt>position -- a position returned by get_focus or get_next<br> <br> Returns (widget below, position below).<br> <br> MUST be implemented.<br> Caller MUST NOT assume that position object may be stored and<br> reused after contents of list change.</tt></dd></dl> <dl><dt><a name="ListWalkerInterface-get_prev"><strong>get_prev</strong></a>(self, position)</dt><dd><tt>position -- a position returned by get_focus or get_prev<br> <br> Returns (widget above, position above).<br> <br> MUST be implemented.<br> Caller MUST NOT assume that position object may be stored and<br> reused after contents of list change.</tt></dd></dl> <dl><dt><a name="ListWalkerInterface-set_focus"><strong>set_focus</strong></a>(self, position)</dt><dd><tt>position -- a position returned by get_focus, get_next or<br> get_prev<br> <br> Returns None.<br> <br> MUST be implemented. Should send "modified" signal (or call<br> self.<strong>_modified</strong> if inheriting from ListWalker)</tt></dd></dl> <a name="ListWalker"></a><h3>function ListWalker <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="ListWalker">class <strong>ListWalker</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="ListWalker-__hash__"><strong>__hash__</strong></a>(self)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.signals.MetaSignals'><dd><tt>register the list of signals in the class varable signals,<br> including signals in superclasses.</tt></dl> <dl><dt><strong>signals</strong> = ['modified']</dl> <a name="SimpleListWalker"></a><h3>function SimpleListWalker <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="SimpleListWalker">class <strong>SimpleListWalker</strong></a>(MonitoredList, ListWalker) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>SimpleListWalker</dd> <dd>MonitoredList</dd> <dd>list</dd> <dd>ListWalker</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="SimpleListWalker-__hash__"><strong>__hash__</strong></a>(self)</dt></dl> <dl><dt><a name="SimpleListWalker-__init__"><strong>__init__</strong></a>(self, contents)</dt><dd><tt>contents -- list to copy into this object<br> <br> Changes made to this object (when it is treated as a list) are<br> detected automatically and will cause ListBox objects using<br> this list walker to be updated.</tt></dd></dl> <dl><dt><a name="SimpleListWalker-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return (focus widget, focus position).</tt></dd></dl> <dl><dt><a name="SimpleListWalker-get_next"><strong>get_next</strong></a>(self, start_from)</dt><dd><tt>Return (widget after start_from, position after start_from).</tt></dd></dl> <dl><dt><a name="SimpleListWalker-get_prev"><strong>get_prev</strong></a>(self, start_from)</dt><dd><tt>Return (widget before start_from, position before start_from).</tt></dd></dl> <dl><dt><a name="SimpleListWalker-set_focus"><strong>set_focus</strong></a>(self, position)</dt><dd><tt>Set focus position.</tt></dd></dl> <dl><dt><a name="SimpleListWalker-set_modified_callback"><strong>set_modified_callback</strong></a>(self, callback)</dt><dd><tt>This function inherited from MonitoredList is not <br> implemented in SimleListWalker.<br> <br> Use connect_signal(list_walker, "modified", ...) instead.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>contents</strong></dt> <dd><tt>Return self.<br> <br> Provides compatibility with old SimpleListWalker class.</tt></dd> </dl> <hr> Methods inherited from MonitoredList:<br> <dl><dt><a name="SimpleListWalker-__add__"><strong>__add__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__delitem__"><strong>__delitem__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__delslice__"><strong>__delslice__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__iadd__"><strong>__iadd__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__imul__"><strong>__imul__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__repr__"><strong>__repr__</strong></a>(self)</dt></dl> <dl><dt><a name="SimpleListWalker-__rmul__"><strong>__rmul__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__setitem__"><strong>__setitem__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-__setslice__"><strong>__setslice__</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-append"><strong>append</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-extend"><strong>extend</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-insert"><strong>insert</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-pop"><strong>pop</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-remove"><strong>remove</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-reverse"><strong>reverse</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <dl><dt><a name="SimpleListWalker-sort"><strong>sort</strong></a> = call_modified_wrapper(self, *args, **kwargs)</dt></dl> <hr> Data descriptors inherited from MonitoredList:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Methods inherited from list:<br> <dl><dt><a name="SimpleListWalker-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>x.__contains__(y) <==> y in x</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.__eq__(y) <==> x==y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.__ge__(y) <==> x>=y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.__getattribute__('name') <==> x.name</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.__getitem__(y) <==> x[y]</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.__getslice__(i, j) <==> x[i:j]<br> <br> Use of negative indices is not supported.</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.__gt__(y) <==> x>y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.__iter__() <==> iter(x)</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.__le__(y) <==> x<=y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.__len__() <==> len(x)</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.__lt__(y) <==> x<y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__mul__"><strong>__mul__</strong></a>(...)</dt><dd><tt>x.__mul__(n) <==> x*n</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.__ne__(y) <==> x!=y</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__reversed__"><strong>__reversed__</strong></a>(...)</dt><dd><tt>L.__reversed__() -- return a reverse iterator over the list</tt></dd></dl> <dl><dt><a name="SimpleListWalker-__sizeof__"><strong>__sizeof__</strong></a>(...)</dt><dd><tt>L.__sizeof__() -- size of L in memory, in bytes</tt></dd></dl> <dl><dt><a name="SimpleListWalker-count"><strong>count</strong></a>(...)</dt><dd><tt>L.count(value) -> integer -- return number of occurrences of value</tt></dd></dl> <dl><dt><a name="SimpleListWalker-index"><strong>index</strong></a>(...)</dt><dd><tt>L.index(value, [start, [stop]]) -> integer -- return first index of value.<br> Raises ValueError if the value is not present.</tt></dd></dl> <hr> Data and other attributes inherited from list:<br> <dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.__new__(S, ...) -> a new object with type S, a subtype of T</tt></dl> <hr> Data and other attributes inherited from ListWalker:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.signals.MetaSignals'><dd><tt>register the list of signals in the class varable signals,<br> including signals in superclasses.</tt></dl> <dl><dt><strong>signals</strong> = ['modified']</dl> <a name="PollingListWalker"></a><h3>function PollingListWalker <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="PollingListWalker">class <strong>PollingListWalker</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="PollingListWalker-__init__"><strong>__init__</strong></a>(self, contents)</dt><dd><tt>contents -- list to poll for changes<br> <br> This class is deprecated. Use SimpleListWalker instead.</tt></dd></dl> <dl><dt><a name="PollingListWalker-get_focus"><strong>get_focus</strong></a>(self)</dt><dd><tt>Return (focus widget, focus position).</tt></dd></dl> <dl><dt><a name="PollingListWalker-get_next"><strong>get_next</strong></a>(self, start_from)</dt><dd><tt>Return (widget after start_from, position after start_from).</tt></dd></dl> <dl><dt><a name="PollingListWalker-get_prev"><strong>get_prev</strong></a>(self, start_from)</dt><dd><tt>Return (widget before start_from, position before start_from).</tt></dd></dl> <dl><dt><a name="PollingListWalker-set_focus"><strong>set_focus</strong></a>(self, position)</dt><dd><tt>Set focus position.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <h2>Dynamic tree views</h2><a name="TreeWidget"></a><h3>function TreeWidget <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TreeWidget">class <strong>TreeWidget</strong></a>(WidgetWrap) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>TreeWidget</dd> <dd>WidgetWrap</dd> <dd>DelegateToWidgetMixin</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="TreeWidget-__init__"><strong>__init__</strong></a>(self, node)</dt></dl> <dl><dt><a name="TreeWidget-first_child"><strong>first_child</strong></a>(self)</dt><dd><tt>Return first child if expanded.</tt></dd></dl> <dl><dt><a name="TreeWidget-get_display_text"><strong>get_display_text</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-get_indent_cols"><strong>get_indent_cols</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-get_indented_widget"><strong>get_indented_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-get_inner_widget"><strong>get_inner_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-get_node"><strong>get_node</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-keypress"><strong>keypress</strong></a>(self, size, key)</dt><dd><tt>Handle expand & collapse requests (non-leaf nodes)</tt></dd></dl> <dl><dt><a name="TreeWidget-last_child"><strong>last_child</strong></a>(self)</dt><dd><tt>Return last child if expanded.</tt></dd></dl> <dl><dt><a name="TreeWidget-load_inner_widget"><strong>load_inner_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeWidget-mouse_event"><strong>mouse_event</strong></a>(self, size, event, button, col, row, focus)</dt></dl> <dl><dt><a name="TreeWidget-next_inorder"><strong>next_inorder</strong></a>(self)</dt><dd><tt>Return the next TreeWidget depth first from this one.</tt></dd></dl> <dl><dt><a name="TreeWidget-prev_inorder"><strong>prev_inorder</strong></a>(self)</dt><dd><tt>Return the previous TreeWidget depth first from this one.</tt></dd></dl> <dl><dt><a name="TreeWidget-selectable"><strong>selectable</strong></a>(self)</dt><dd><tt>Allow selection of non-leaf nodes so children may be (un)expanded</tt></dd></dl> <dl><dt><a name="TreeWidget-update_expanded_icon"><strong>update_expanded_icon</strong></a>(self)</dt><dd><tt>Update display widget text for parent widgets</tt></dd></dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>expanded_icon</strong> = <SelectableIcon selectable flow widget b'-'></dl> <dl><dt><strong>indent_cols</strong> = 3</dl> <dl><dt><strong>unexpanded_icon</strong> = <SelectableIcon selectable flow widget b'+'></dl> <hr> Data descriptors inherited from WidgetWrap:<br> <dl><dt><strong>w</strong></dt> </dl> <hr> Methods inherited from DelegateToWidgetMixin:<br> <dl><dt><a name="TreeWidget-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <hr> Data descriptors inherited from DelegateToWidgetMixin:<br> <dl><dt><strong>get_cursor_coords</strong></dt> </dl> <dl><dt><strong>get_pref_col</strong></dt> </dl> <dl><dt><strong>move_cursor_to_coords</strong></dt> </dl> <dl><dt><strong>pack</strong></dt> </dl> <dl><dt><strong>rows</strong></dt> </dl> <dl><dt><strong>sizing</strong></dt> </dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="TreeWidget-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <a name="TreeNode"></a><h3>function TreeNode <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TreeNode">class <strong>TreeNode</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TreeNode-__init__"><strong>__init__</strong></a>(self, value, parent<font color="#909090">=None</font>, key<font color="#909090">=None</font>, depth<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="TreeNode-change_key"><strong>change_key</strong></a>(self, key)</dt></dl> <dl><dt><a name="TreeNode-get_depth"><strong>get_depth</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_index"><strong>get_index</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_key"><strong>get_key</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_parent"><strong>get_parent</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_root"><strong>get_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_value"><strong>get_value</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_widget"><strong>get_widget</strong></a>(self, reload<font color="#909090">=False</font>)</dt><dd><tt>Return the widget for this node.</tt></dd></dl> <dl><dt><a name="TreeNode-is_root"><strong>is_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-load_parent"><strong>load_parent</strong></a>(self)</dt><dd><tt>Provide TreeNode with a parent for the current node. This function<br> is only required if the tree was instantiated from a child node<br> (virtual function)</tt></dd></dl> <dl><dt><a name="TreeNode-load_widget"><strong>load_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-next_sibling"><strong>next_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-prev_sibling"><strong>prev_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-set_key"><strong>set_key</strong></a>(self, key)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <a name="ParentNode"></a><h3>function ParentNode <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="ParentNode"></a><strong>ParentNode</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TreeNode-__init__"><strong>__init__</strong></a>(self, value, parent<font color="#909090">=None</font>, key<font color="#909090">=None</font>, depth<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="TreeNode-change_key"><strong>change_key</strong></a>(self, key)</dt></dl> <dl><dt><a name="TreeNode-get_depth"><strong>get_depth</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_index"><strong>get_index</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_key"><strong>get_key</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_parent"><strong>get_parent</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_root"><strong>get_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_value"><strong>get_value</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_widget"><strong>get_widget</strong></a>(self, reload<font color="#909090">=False</font>)</dt><dd><tt>Return the widget for this node.</tt></dd></dl> <dl><dt><a name="TreeNode-is_root"><strong>is_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-load_parent"><strong>load_parent</strong></a>(self)</dt><dd><tt>Provide TreeNode with a parent for the current node. This function<br> is only required if the tree was instantiated from a child node<br> (virtual function)</tt></dd></dl> <dl><dt><a name="TreeNode-load_widget"><strong>load_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-next_sibling"><strong>next_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-prev_sibling"><strong>prev_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-set_key"><strong>set_key</strong></a>(self, key)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <a name="TreeWalker"></a><h3>function TreeWalker <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TreeWalker"></a><strong>TreeWalker</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TreeNode-__init__"><strong>__init__</strong></a>(self, value, parent<font color="#909090">=None</font>, key<font color="#909090">=None</font>, depth<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="TreeNode-change_key"><strong>change_key</strong></a>(self, key)</dt></dl> <dl><dt><a name="TreeNode-get_depth"><strong>get_depth</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_index"><strong>get_index</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_key"><strong>get_key</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_parent"><strong>get_parent</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_root"><strong>get_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_value"><strong>get_value</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_widget"><strong>get_widget</strong></a>(self, reload<font color="#909090">=False</font>)</dt><dd><tt>Return the widget for this node.</tt></dd></dl> <dl><dt><a name="TreeNode-is_root"><strong>is_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-load_parent"><strong>load_parent</strong></a>(self)</dt><dd><tt>Provide TreeNode with a parent for the current node. This function<br> is only required if the tree was instantiated from a child node<br> (virtual function)</tt></dd></dl> <dl><dt><a name="TreeNode-load_widget"><strong>load_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-next_sibling"><strong>next_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-prev_sibling"><strong>prev_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-set_key"><strong>set_key</strong></a>(self, key)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <a name="TreeListBox"></a><h3>function TreeListBox <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TreeListBox"></a><strong>TreeListBox</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TreeNode-__init__"><strong>__init__</strong></a>(self, value, parent<font color="#909090">=None</font>, key<font color="#909090">=None</font>, depth<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="TreeNode-change_key"><strong>change_key</strong></a>(self, key)</dt></dl> <dl><dt><a name="TreeNode-get_depth"><strong>get_depth</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_index"><strong>get_index</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_key"><strong>get_key</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_parent"><strong>get_parent</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_root"><strong>get_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_value"><strong>get_value</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-get_widget"><strong>get_widget</strong></a>(self, reload<font color="#909090">=False</font>)</dt><dd><tt>Return the widget for this node.</tt></dd></dl> <dl><dt><a name="TreeNode-is_root"><strong>is_root</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-load_parent"><strong>load_parent</strong></a>(self)</dt><dd><tt>Provide TreeNode with a parent for the current node. This function<br> is only required if the tree was instantiated from a child node<br> (virtual function)</tt></dd></dl> <dl><dt><a name="TreeNode-load_widget"><strong>load_widget</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-next_sibling"><strong>next_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-prev_sibling"><strong>prev_sibling</strong></a>(self)</dt></dl> <dl><dt><a name="TreeNode-set_key"><strong>set_key</strong></a>(self, key)</dt></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <h2>Experimental</h2><a name="Terminal"></a><h3>function Terminal <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Terminal">class <strong>Terminal</strong></a>(BoxWidget) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Terminal</dd> <dd>BoxWidget</dd> <dd>Widget</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Terminal-__init__"><strong>__init__</strong></a>(self, command, env<font color="#909090">=None</font>, main_loop<font color="#909090">=None</font>, escape_sequence<font color="#909090">=None</font>)</dt><dd><tt>A terminal emulator within a widget.<br> <br> 'command' is the command to execute inside the terminal, provided as a<br> list of the command followed by its arguments. If 'command' is None,<br> the command is the current user's shell. You can also provide a callable<br> instead of a command, which will be executed in the subprocess.<br> <br> 'env' can be used to pass custom environment variables. If omitted,<br> os.environ is used.<br> <br> 'main_loop' should be provided, because the canvas state machine needs<br> to act on input from the PTY master device. This object must have<br> watch_file and remove_watch_file methods.<br> <br> 'escape_sequence' is the urwid key symbol which should be used to break<br> out of the terminal widget. If it's not specified, "ctrl a" is used.</tt></dd></dl> <dl><dt><a name="Terminal-add_watch"><strong>add_watch</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-beep"><strong>beep</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-change_focus"><strong>change_focus</strong></a>(self, has_focus)</dt><dd><tt>Ignore SIGINT if this widget has focus.</tt></dd></dl> <dl><dt><a name="Terminal-feed"><strong>feed</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-flush_responses"><strong>flush_responses</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-keypress"><strong>keypress</strong></a>(self, size, key)</dt></dl> <dl><dt><a name="Terminal-leds"><strong>leds</strong></a>(self, which)</dt></dl> <dl><dt><a name="Terminal-remove_watch"><strong>remove_watch</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-render"><strong>render</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt></dl> <dl><dt><a name="Terminal-respond"><strong>respond</strong></a>(self, string)</dt><dd><tt>Respond to the underlying application with 'string'.</tt></dd></dl> <dl><dt><a name="Terminal-selectable"><strong>selectable</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-set_termsize"><strong>set_termsize</strong></a>(self, width, height)</dt></dl> <dl><dt><a name="Terminal-set_title"><strong>set_title</strong></a>(self, title)</dt></dl> <dl><dt><a name="Terminal-spawn"><strong>spawn</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-terminate"><strong>terminate</strong></a>(self)</dt></dl> <dl><dt><a name="Terminal-touch_term"><strong>touch_term</strong></a>(self, width, height)</dt></dl> <dl><dt><a name="Terminal-wait_and_feed"><strong>wait_and_feed</strong></a>(self, timeout<font color="#909090">=1.0</font>)</dt></dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>signals</strong> = ['closed', 'beep', 'leds', 'title']</dl> <hr> Methods inherited from Widget:<br> <dl><dt><a name="Terminal-__repr__"><strong>__repr__</strong></a> = split_repr(self)</dt><dd><tt>Return a helpful description of the object using<br> _repr_words() and _repr_attrs() to add<br> to the description. This function may be used by<br> adding code to your class like this:<br> <br> >>> class Foo(object):<br> ... __repr__ = split_repr<br> ... def _repr_words(self):<br> ... return ["words", "here"]<br> ... def _repr_attrs(self):<br> ... return {'attrs': "appear too"}<br> >>> Foo()<br> <Foo words here attrs='appear too'><br> >>> class Bar(Foo):<br> ... def _repr_words(self):<br> ... return Foo._repr_words(self) + ["too"]<br> ... def _repr_attrs(self):<br> ... return dict(Foo._repr_attrs(self), barttr=42)<br> >>> Bar()<br> <Bar words here too attrs='appear too' barttr=42></tt></dd></dl> <dl><dt><a name="Terminal-pack"><strong>pack</strong></a>(self, size, focus<font color="#909090">=False</font>)</dt><dd><tt>Return a 'packed' (maxcol, maxrow) for this widget. Default <br> implementation (no packing defined) returns size, and<br> calculates maxrow if not given.</tt></dd></dl> <dl><dt><a name="Terminal-sizing"><strong>sizing</strong></a>(self)</dt><dd><tt>Return a set including one or more of 'box', 'flow' and<br> 'fixed'. Default implementation returns the value of<br> self.<strong>_sizing</strong>.</tt></dd></dl> <hr> Data descriptors inherited from Widget:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>base_widget</strong></dt> </dl> <hr> Data and other attributes inherited from Widget:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.widget.WidgetMeta'><dd><tt>Automatic caching of render and rows methods.<br> <br> Class variable no_cache is a list of names of methods to not cache.<br> Class variable ignore_focus if defined and True indicates that this<br> widget is not affected by the focus parameter, so it may be ignored<br> when caching.</tt></dl> <h2>Canvas painting</h2><a name="Canvas"></a><h3>function Canvas <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="Canvas">class <strong>Canvas</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="Canvas-__init__"><strong>__init__</strong></a>(self, value1<font color="#909090">=None</font>, value2<font color="#909090">=None</font>, value3<font color="#909090">=None</font>)</dt><dd><tt>value1, value2, value3 -- if not None, raise a helpful error:<br> the old Canvas class is now called TextCanvas.</tt></dd></dl> <dl><dt><a name="Canvas-cols"><strong>cols</strong></a>(self)</dt></dl> <dl><dt><a name="Canvas-content"><strong>content</strong></a>(self, trim_left<font color="#909090">=0</font>, trim_top<font color="#909090">=0</font>, cols<font color="#909090">=None</font>, rows<font color="#909090">=None</font>, attr<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="Canvas-content_delta"><strong>content_delta</strong></a>(self)</dt></dl> <dl><dt><a name="Canvas-finalize"><strong>finalize</strong></a>(self, widget, size, focus)</dt><dd><tt>Mark this canvas as finalized (should not be any future<br> changes to its content). This is required before caching<br> the canvas. This happens automatically after a widget's<br> 'render call returns the canvas thanks to some metaclass<br> magic.<br> <br> widget -- widget that rendered this canvas<br> size -- size parameter passed to widget's render method<br> focus -- focus parameter passed to widget's render method</tt></dd></dl> <dl><dt><a name="Canvas-get_cursor"><strong>get_cursor</strong></a>(self)</dt></dl> <dl><dt><a name="Canvas-get_pop_up"><strong>get_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="Canvas-rows"><strong>rows</strong></a>(self)</dt></dl> <dl><dt><a name="Canvas-set_cursor"><strong>set_cursor</strong></a>(self, c)</dt></dl> <dl><dt><a name="Canvas-set_pop_up"><strong>set_pop_up</strong></a>(self, w, left, top, overlay_width, overlay_height)</dt><dd><tt>This method adds pop-up information to the canvas. This information<br> is intercepted by a PopUpTarget widget higher in the chain to<br> display a pop-up at the given (left, top) position relative to the<br> current canvas.<br> <br> w -- widget to use for the pop-up<br> left, top -- integer x, y position eg. (0, 1) would align the<br> pop-up with this widget's left side and put its top one row below<br> this widget's top<br> overlay_width, overlay_height -- width and height parameters for<br> the Overlay widget used to position the pop-up</tt></dd></dl> <dl><dt><a name="Canvas-translate_coords"><strong>translate_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return coords shifted by (dx, dy).</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>attr</strong></dt> </dl> <dl><dt><strong>cs</strong></dt> </dl> <dl><dt><strong>cursor</strong></dt> </dl> <dl><dt><strong>text</strong></dt> <dd><tt>Return the text content of the canvas as a list of strings,<br> one for each row.</tt></dd> </dl> <dl><dt><strong>widget_info</strong></dt> </dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>cacheable</strong> = True</dl> <a name="TextCanvas"></a><h3>function TextCanvas <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="TextCanvas">class <strong>TextCanvas</strong></a>(Canvas) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>TextCanvas</dd> <dd>Canvas</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="TextCanvas-__init__"><strong>__init__</strong></a>(self, text<font color="#909090">=None</font>, attr<font color="#909090">=None</font>, cs<font color="#909090">=None</font>, cursor<font color="#909090">=None</font>, maxcol<font color="#909090">=None</font>, check_width<font color="#909090">=True</font>)</dt><dd><tt>text -- list of strings, one for each line<br> attr -- list of run length encoded attributes for text<br> cs -- list of run length encoded character set for text<br> cursor -- (x,y) of cursor or None<br> maxcol -- screen columns taken by this canvas<br> check_width -- check and fix width of all lines in text</tt></dd></dl> <dl><dt><a name="TextCanvas-cols"><strong>cols</strong></a>(self)</dt><dd><tt>Return the screen column width of this canvas.</tt></dd></dl> <dl><dt><a name="TextCanvas-content"><strong>content</strong></a>(self, trim_left<font color="#909090">=0</font>, trim_top<font color="#909090">=0</font>, cols<font color="#909090">=None</font>, rows<font color="#909090">=None</font>, attr_map<font color="#909090">=None</font>)</dt><dd><tt>Return the canvas content as a list of rows where each row<br> is a list of (attr, cs, text) tuples.<br> <br> trim_left, trim_top, cols, rows may be set by <br> CompositeCanvas when rendering a partially obscured<br> canvas.</tt></dd></dl> <dl><dt><a name="TextCanvas-content_delta"><strong>content_delta</strong></a>(self, other)</dt><dd><tt>Return the differences between other and this canvas.<br> <br> If other is the same object as self this will return no <br> differences, otherwise this is the same as calling <br> content().</tt></dd></dl> <dl><dt><a name="TextCanvas-rows"><strong>rows</strong></a>(self)</dt><dd><tt>Return the number of rows in this canvas.</tt></dd></dl> <dl><dt><a name="TextCanvas-translated_coords"><strong>translated_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return cursor coords shifted by (dx, dy), or None if there<br> is no cursor.</tt></dd></dl> <hr> Methods inherited from Canvas:<br> <dl><dt><a name="TextCanvas-finalize"><strong>finalize</strong></a>(self, widget, size, focus)</dt><dd><tt>Mark this canvas as finalized (should not be any future<br> changes to its content). This is required before caching<br> the canvas. This happens automatically after a widget's<br> 'render call returns the canvas thanks to some metaclass<br> magic.<br> <br> widget -- widget that rendered this canvas<br> size -- size parameter passed to widget's render method<br> focus -- focus parameter passed to widget's render method</tt></dd></dl> <dl><dt><a name="TextCanvas-get_cursor"><strong>get_cursor</strong></a>(self)</dt></dl> <dl><dt><a name="TextCanvas-get_pop_up"><strong>get_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="TextCanvas-set_cursor"><strong>set_cursor</strong></a>(self, c)</dt></dl> <dl><dt><a name="TextCanvas-set_pop_up"><strong>set_pop_up</strong></a>(self, w, left, top, overlay_width, overlay_height)</dt><dd><tt>This method adds pop-up information to the canvas. This information<br> is intercepted by a PopUpTarget widget higher in the chain to<br> display a pop-up at the given (left, top) position relative to the<br> current canvas.<br> <br> w -- widget to use for the pop-up<br> left, top -- integer x, y position eg. (0, 1) would align the<br> pop-up with this widget's left side and put its top one row below<br> this widget's top<br> overlay_width, overlay_height -- width and height parameters for<br> the Overlay widget used to position the pop-up</tt></dd></dl> <dl><dt><a name="TextCanvas-translate_coords"><strong>translate_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return coords shifted by (dx, dy).</tt></dd></dl> <hr> Data descriptors inherited from Canvas:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>attr</strong></dt> </dl> <dl><dt><strong>cs</strong></dt> </dl> <dl><dt><strong>cursor</strong></dt> </dl> <dl><dt><strong>text</strong></dt> <dd><tt>Return the text content of the canvas as a list of strings,<br> one for each row.</tt></dd> </dl> <dl><dt><strong>widget_info</strong></dt> </dl> <hr> Data and other attributes inherited from Canvas:<br> <dl><dt><strong>cacheable</strong> = True</dl> <a name="CompositeCanvas"></a><h3>function CompositeCanvas <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="CompositeCanvas">class <strong>CompositeCanvas</strong></a>(Canvas) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>CompositeCanvas</dd> <dd>Canvas</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="CompositeCanvas-__init__"><strong>__init__</strong></a>(self, canv<font color="#909090">=None</font>)</dt><dd><tt>canv -- a Canvas object to wrap this CompositeCanvas around.<br> <br> if canv is a CompositeCanvas, make a copy of its contents</tt></dd></dl> <dl><dt><a name="CompositeCanvas-cols"><strong>cols</strong></a>(self)</dt></dl> <dl><dt><a name="CompositeCanvas-content"><strong>content</strong></a>(self)</dt><dd><tt>Return the canvas content as a list of rows where each row<br> is a list of (attr, cs, text) tuples.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-content_delta"><strong>content_delta</strong></a>(self, other)</dt><dd><tt>Return the differences between other and this canvas.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-fill_attr"><strong>fill_attr</strong></a>(self, a)</dt><dd><tt>Apply attribute a to all areas of this canvas with default<br> attribute currently set to None, leaving other attributes<br> intact.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-fill_attr_apply"><strong>fill_attr_apply</strong></a>(self, mapping)</dt><dd><tt>Apply an attribute-mapping dictionary to the canvas.<br> <br> mapping -- dictionary of original-attribute:new-attribute items</tt></dd></dl> <dl><dt><a name="CompositeCanvas-overlay"><strong>overlay</strong></a>(self, other, left, top)</dt><dd><tt>Overlay other onto this canvas.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-pad_trim_left_right"><strong>pad_trim_left_right</strong></a>(self, left, right)</dt><dd><tt>Pad or trim this canvas on the left and right<br> <br> values > 0 indicate screen columns to pad<br> values < 0 indicate screen columns to trim</tt></dd></dl> <dl><dt><a name="CompositeCanvas-pad_trim_top_bottom"><strong>pad_trim_top_bottom</strong></a>(self, top, bottom)</dt><dd><tt>Pad or trim this canvas on the top and bottom.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-rows"><strong>rows</strong></a>(self)</dt></dl> <dl><dt><a name="CompositeCanvas-set_depends"><strong>set_depends</strong></a>(self, widget_list)</dt><dd><tt>Explicitly specify the list of widgets that this canvas<br> depends on. If any of these widgets change this canvas<br> will have to be updated.</tt></dd></dl> <dl><dt><a name="CompositeCanvas-trim"><strong>trim</strong></a>(self, top, count<font color="#909090">=None</font>)</dt><dd><tt>Trim lines from the top and/or bottom of canvas.<br> <br> top -- number of lines to remove from top<br> count -- number of lines to keep, or None for all the rest</tt></dd></dl> <dl><dt><a name="CompositeCanvas-trim_end"><strong>trim_end</strong></a>(self, end)</dt><dd><tt>Trim lines from the bottom of the canvas.<br> <br> end -- number of lines to remove from the end</tt></dd></dl> <hr> Methods inherited from Canvas:<br> <dl><dt><a name="CompositeCanvas-finalize"><strong>finalize</strong></a>(self, widget, size, focus)</dt><dd><tt>Mark this canvas as finalized (should not be any future<br> changes to its content). This is required before caching<br> the canvas. This happens automatically after a widget's<br> 'render call returns the canvas thanks to some metaclass<br> magic.<br> <br> widget -- widget that rendered this canvas<br> size -- size parameter passed to widget's render method<br> focus -- focus parameter passed to widget's render method</tt></dd></dl> <dl><dt><a name="CompositeCanvas-get_cursor"><strong>get_cursor</strong></a>(self)</dt></dl> <dl><dt><a name="CompositeCanvas-get_pop_up"><strong>get_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="CompositeCanvas-set_cursor"><strong>set_cursor</strong></a>(self, c)</dt></dl> <dl><dt><a name="CompositeCanvas-set_pop_up"><strong>set_pop_up</strong></a>(self, w, left, top, overlay_width, overlay_height)</dt><dd><tt>This method adds pop-up information to the canvas. This information<br> is intercepted by a PopUpTarget widget higher in the chain to<br> display a pop-up at the given (left, top) position relative to the<br> current canvas.<br> <br> w -- widget to use for the pop-up<br> left, top -- integer x, y position eg. (0, 1) would align the<br> pop-up with this widget's left side and put its top one row below<br> this widget's top<br> overlay_width, overlay_height -- width and height parameters for<br> the Overlay widget used to position the pop-up</tt></dd></dl> <dl><dt><a name="CompositeCanvas-translate_coords"><strong>translate_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return coords shifted by (dx, dy).</tt></dd></dl> <hr> Data descriptors inherited from Canvas:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>attr</strong></dt> </dl> <dl><dt><strong>cs</strong></dt> </dl> <dl><dt><strong>cursor</strong></dt> </dl> <dl><dt><strong>text</strong></dt> <dd><tt>Return the text content of the canvas as a list of strings,<br> one for each row.</tt></dd> </dl> <dl><dt><strong>widget_info</strong></dt> </dl> <hr> Data and other attributes inherited from Canvas:<br> <dl><dt><strong>cacheable</strong> = True</dl> <a name="BlankCanvas"></a><h3>function BlankCanvas <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="BlankCanvas"></a><strong>BlankCanvas</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>SolidCanvas</dd> <dd>Canvas</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="SolidCanvas-__init__"><strong>__init__</strong></a>(self, fill_char, cols, rows)</dt></dl> <dl><dt><a name="SolidCanvas-cols"><strong>cols</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-content"><strong>content</strong></a>(self, trim_left<font color="#909090">=0</font>, trim_top<font color="#909090">=0</font>, cols<font color="#909090">=None</font>, rows<font color="#909090">=None</font>, attr<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="SolidCanvas-content_delta"><strong>content_delta</strong></a>(self, other)</dt><dd><tt>Return the differences between other and this canvas.</tt></dd></dl> <dl><dt><a name="SolidCanvas-rows"><strong>rows</strong></a>(self)</dt></dl> <hr> Methods inherited from Canvas:<br> <dl><dt><a name="SolidCanvas-finalize"><strong>finalize</strong></a>(self, widget, size, focus)</dt><dd><tt>Mark this canvas as finalized (should not be any future<br> changes to its content). This is required before caching<br> the canvas. This happens automatically after a widget's<br> 'render call returns the canvas thanks to some metaclass<br> magic.<br> <br> widget -- widget that rendered this canvas<br> size -- size parameter passed to widget's render method<br> focus -- focus parameter passed to widget's render method</tt></dd></dl> <dl><dt><a name="SolidCanvas-get_cursor"><strong>get_cursor</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-get_pop_up"><strong>get_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-set_cursor"><strong>set_cursor</strong></a>(self, c)</dt></dl> <dl><dt><a name="SolidCanvas-set_pop_up"><strong>set_pop_up</strong></a>(self, w, left, top, overlay_width, overlay_height)</dt><dd><tt>This method adds pop-up information to the canvas. This information<br> is intercepted by a PopUpTarget widget higher in the chain to<br> display a pop-up at the given (left, top) position relative to the<br> current canvas.<br> <br> w -- widget to use for the pop-up<br> left, top -- integer x, y position eg. (0, 1) would align the<br> pop-up with this widget's left side and put its top one row below<br> this widget's top<br> overlay_width, overlay_height -- width and height parameters for<br> the Overlay widget used to position the pop-up</tt></dd></dl> <dl><dt><a name="SolidCanvas-translate_coords"><strong>translate_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return coords shifted by (dx, dy).</tt></dd></dl> <hr> Data descriptors inherited from Canvas:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>attr</strong></dt> </dl> <dl><dt><strong>cs</strong></dt> </dl> <dl><dt><strong>cursor</strong></dt> </dl> <dl><dt><strong>text</strong></dt> <dd><tt>Return the text content of the canvas as a list of strings,<br> one for each row.</tt></dd> </dl> <dl><dt><strong>widget_info</strong></dt> </dl> <hr> Data and other attributes inherited from Canvas:<br> <dl><dt><strong>cacheable</strong> = True</dl> <a name="SolidCanvas"></a><h3>function SolidCanvas <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="SolidCanvas">class <strong>SolidCanvas</strong></a>(Canvas) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>SolidCanvas</dd> <dd>Canvas</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="SolidCanvas-__init__"><strong>__init__</strong></a>(self, fill_char, cols, rows)</dt></dl> <dl><dt><a name="SolidCanvas-cols"><strong>cols</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-content"><strong>content</strong></a>(self, trim_left<font color="#909090">=0</font>, trim_top<font color="#909090">=0</font>, cols<font color="#909090">=None</font>, rows<font color="#909090">=None</font>, attr<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="SolidCanvas-content_delta"><strong>content_delta</strong></a>(self, other)</dt><dd><tt>Return the differences between other and this canvas.</tt></dd></dl> <dl><dt><a name="SolidCanvas-rows"><strong>rows</strong></a>(self)</dt></dl> <hr> Methods inherited from Canvas:<br> <dl><dt><a name="SolidCanvas-finalize"><strong>finalize</strong></a>(self, widget, size, focus)</dt><dd><tt>Mark this canvas as finalized (should not be any future<br> changes to its content). This is required before caching<br> the canvas. This happens automatically after a widget's<br> 'render call returns the canvas thanks to some metaclass<br> magic.<br> <br> widget -- widget that rendered this canvas<br> size -- size parameter passed to widget's render method<br> focus -- focus parameter passed to widget's render method</tt></dd></dl> <dl><dt><a name="SolidCanvas-get_cursor"><strong>get_cursor</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-get_pop_up"><strong>get_pop_up</strong></a>(self)</dt></dl> <dl><dt><a name="SolidCanvas-set_cursor"><strong>set_cursor</strong></a>(self, c)</dt></dl> <dl><dt><a name="SolidCanvas-set_pop_up"><strong>set_pop_up</strong></a>(self, w, left, top, overlay_width, overlay_height)</dt><dd><tt>This method adds pop-up information to the canvas. This information<br> is intercepted by a PopUpTarget widget higher in the chain to<br> display a pop-up at the given (left, top) position relative to the<br> current canvas.<br> <br> w -- widget to use for the pop-up<br> left, top -- integer x, y position eg. (0, 1) would align the<br> pop-up with this widget's left side and put its top one row below<br> this widget's top<br> overlay_width, overlay_height -- width and height parameters for<br> the Overlay widget used to position the pop-up</tt></dd></dl> <dl><dt><a name="SolidCanvas-translate_coords"><strong>translate_coords</strong></a>(self, dx, dy)</dt><dd><tt>Return coords shifted by (dx, dy).</tt></dd></dl> <hr> Data descriptors inherited from Canvas:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>attr</strong></dt> </dl> <dl><dt><strong>cs</strong></dt> </dl> <dl><dt><strong>cursor</strong></dt> </dl> <dl><dt><strong>text</strong></dt> <dd><tt>Return the text content of the canvas as a list of strings,<br> one for each row.</tt></dd> </dl> <dl><dt><strong>widget_info</strong></dt> </dl> <hr> Data and other attributes inherited from Canvas:<br> <dl><dt><strong>cacheable</strong> = True</dl> <a name="CanvasCombine"></a><h3>function CanvasCombine <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-CanvasCombine"><strong>CanvasCombine</strong></a>(l)</dt><dd><tt>Stack canvases in l vertically and return resulting canvas.<br> <br> l -- list of (canvas, position, focus) tuples. position is a value<br> that widget.set_focus will accept, or None if not allowed.<br> focus is True if this canvas is the one that would be in focus<br> if the whole widget is in focus.</tt></dd></dl> <a name="CanvasJoin"></a><h3>function CanvasJoin <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-CanvasJoin"><strong>CanvasJoin</strong></a>(l)</dt><dd><tt>Join canvases in l horizontally. Return result.<br> l -- list of (canvas, position, focus, cols) tuples. position is a <br> value that widget.set_focus will accept, or None if not allowed.<br> focus is True if this canvas is the one that would be in focus if<br> the whole widget is in focus. cols is the number of screen<br> columns that this widget will require, if larger than the actual<br> canvas.cols() value then this widget will be padded on the right.</tt></dd></dl> <a name="CanvasOverlay"></a><h3>function CanvasOverlay <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-CanvasOverlay"><strong>CanvasOverlay</strong></a>(top_c, bottom_c, left, top)</dt><dd><tt>Overlay canvas top_c onto bottom_c at position (left, top).</tt></dd></dl> <h2>Raw screen attributes</h2><a name="AttrSpec"></a><h3>function AttrSpec <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="AttrSpec">class <strong>AttrSpec</strong></a>(object) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="AttrSpec-__init__"><strong>__init__</strong></a>(self, fg, bg, colors<font color="#909090">=256</font>)</dt><dd><tt>fg -- a string containing a comma-separated foreground color<br> and settings<br> <br> Color values:<br> 'default' (use the terminal's default foreground),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray', 'dark gray',<br> 'light red', 'light green', 'yellow', 'light blue', <br> 'light magenta', 'light cyan', 'white'<br> <br> High-color example values:<br> '#009' (0% red, 0% green, 60% red, like HTML colors)<br> '#fcc' (100% red, 80% green, 80% blue)<br> 'g40' (40% gray, decimal), 'g#cc' (80% gray, hex),<br> '#000', 'g0', 'g#00' (black),<br> '#fff', 'g100', 'g#ff' (white)<br> 'h8' (color number 8), 'h255' (color number 255)<br> <br> Setting:<br> 'bold', 'underline', 'blink', 'standout'<br> <br> Some terminals use 'bold' for bright colors. Most terminals<br> ignore the 'blink' setting. If the color is not given then<br> 'default' will be assumed.<br> <br> bg -- a string containing the background color<br> <br> Color values:<br> 'default' (use the terminal's default background),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray'<br> <br> High-color exaples:<br> see fg examples above<br> <br> An empty string will be treated the same as 'default'.<br> <br> colors -- the maximum colors available for the specification<br> <br> Valid values include: 1, 16, 88 and 256. High-color <br> values are only usable with 88 or 256 colors. With<br> 1 color only the foreground settings may be used.<br> <br> >>> AttrSpec('dark red', 'light gray', 16)<br> AttrSpec('dark red', 'light gray')<br> >>> AttrSpec('yellow, underline, bold', 'dark blue')<br> AttrSpec('yellow,bold,underline', 'dark blue')<br> >>> AttrSpec('#ddb', '#004', 256) # closest colors will be found<br> AttrSpec('#dda', '#006')<br> >>> AttrSpec('#ddb', '#004', 88)<br> AttrSpec('#ccc', '#000', colors=88)</tt></dd></dl> <dl><dt><a name="AttrSpec-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Return an executable python representation of the AttrSpec<br> object.</tt></dd></dl> <dl><dt><a name="AttrSpec-get_rgb_values"><strong>get_rgb_values</strong></a>(self)</dt><dd><tt>Return (fg_red, fg_green, fg_blue, bg_red, bg_green, bg_blue) color<br> components. Each component is in the range 0-255. Values are taken<br> from the XTerm defaults and may not exactly match the user's terminal.<br> <br> If the foreground or background is 'default' then all their compenents<br> will be returned as None.<br> <br> >>> AttrSpec('yellow', '#ccf', colors=88).get_rgb_values()<br> (255, 255, 0, 205, 205, 255)<br> >>> AttrSpec('default', 'g92').get_rgb_values()<br> (None, None, None, 238, 238, 238)</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>background</strong></dt> <dd><tt>Return the background color.</tt></dd> </dl> <dl><dt><strong>background_basic</strong></dt> </dl> <dl><dt><strong>background_high</strong></dt> </dl> <dl><dt><strong>background_number</strong></dt> </dl> <dl><dt><strong>blink</strong></dt> </dl> <dl><dt><strong>bold</strong></dt> </dl> <dl><dt><strong>colors</strong></dt> <dd><tt>Return the maximum colors required for this object.<br> <br> Returns 256, 88, 16 or 1.</tt></dd> </dl> <dl><dt><strong>foreground</strong></dt> </dl> <dl><dt><strong>foreground_basic</strong></dt> </dl> <dl><dt><strong>foreground_high</strong></dt> </dl> <dl><dt><strong>foreground_number</strong></dt> </dl> <dl><dt><strong>standout</strong></dt> </dl> <dl><dt><strong>underline</strong></dt> </dl> <h2>Custom formatting rules</h2><h3><a name="TextLayout">class <strong>TextLayout</strong></a> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="TextLayout-layout"><strong>layout</strong></a>(self, text, width, align, wrap)</dt><dd><tt>Return a layout structure for text.<br> <br> text -- string in current encoding or unicode string<br> width -- number of screen columns available<br> align -- align mode for text<br> wrap -- wrap mode for text<br> <br> Layout structure is a list of line layouts, one per output line.<br> Line layouts are lists than may contain the following tuples:<br> ( column width of text segment, start offset, end offset )<br> ( number of space characters to insert, offset or None)<br> ( column width of insert text, offset, "insert text" )<br> <br> The offset in the last two tuples is used to determine the<br> attribute used for the inserted spaces or text respectively. <br> The attribute used will be the same as the attribute at that <br> text offset. If the offset is None when inserting spaces<br> then no attribute will be used.</tt></dd></dl> <dl><dt><a name="TextLayout-supports_align_mode"><strong>supports_align_mode</strong></a>(self, align)</dt><dd><tt>Return True if align is a supported align mode.</tt></dd></dl> <dl><dt><a name="TextLayout-supports_wrap_mode"><strong>supports_wrap_mode</strong></a>(self, wrap)</dt><dd><tt>Return True if wrap is a supported wrap mode.</tt></dd></dl> <h3><a name="StandardTextLayout">class <strong>StandardTextLayout</strong></a>(TextLayout) <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="StandardTextLayout-__init__"><strong>__init__</strong></a>(self)</dt></dl> <dl><dt><a name="StandardTextLayout-align_layout"><strong>align_layout</strong></a>(self, text, width, segs, wrap, align)</dt><dd><tt>Convert the layout segs to an aligned layout.</tt></dd></dl> <dl><dt><a name="StandardTextLayout-calculate_text_segments"><strong>calculate_text_segments</strong></a>(self, text, width, wrap)</dt><dd><tt>Calculate the segments of text to display given width screen<br> columns to display them.<br> <br> text - unicode text or byte string to display<br> width - number of available screen columns<br> wrap - wrapping mode used<br> <br> Returns a layout structure without aligmnent applied.</tt></dd></dl> <dl><dt><a name="StandardTextLayout-layout"><strong>layout</strong></a>(self, text, width, align, wrap)</dt><dd><tt>Return a layout structure for text.</tt></dd></dl> <dl><dt><a name="StandardTextLayout-pack"><strong>pack</strong></a>(self, maxcol, layout)</dt><dd><tt>Return a minimal maxcol value that would result in the same<br> number of lines for layout. layout must be a layout structure<br> returned by layout().</tt></dd></dl> <dl><dt><a name="StandardTextLayout-supports_align_mode"><strong>supports_align_mode</strong></a>(self, align)</dt><dd><tt>Return True if align is 'left', 'center' or 'right'.</tt></dd></dl> <dl><dt><a name="StandardTextLayout-supports_wrap_mode"><strong>supports_wrap_mode</strong></a>(self, wrap)</dt><dd><tt>Return True if wrap is 'any', 'space' or 'clip'.</tt></dd></dl> <h2>Character encoding</h2><a name="set_encoding"></a><h3>function set_encoding <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-set_encoding"><strong>set_encoding</strong></a>(encoding)</dt><dd><tt>Set the byte encoding to assume when processing strings and the<br> encoding to use when converting unicode strings.</tt></dd></dl> <a name="get_encoding_mode"></a><h3>function get_encoding_mode <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-get_encoding_mode"><strong>get_encoding_mode</strong></a>()</dt><dd><tt>Get the mode Urwid is using when processing text strings.<br> Returns 'narrow' for 8-bit encodings, 'wide' for CJK encodings<br> or 'utf8' for UTF-8 encodings.</tt></dd></dl> <a name="supports_unicode"></a><h3>function supports_unicode <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-supports_unicode"><strong>supports_unicode</strong></a>()</dt><dd><tt>Return True if python is able to convert non-ascii unicode strings<br> to the current encoding.</tt></dd></dl> <h2>Signals</h2><a name="connect_signal"></a><h3>function connect_signal <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-connect_signal"><strong>connect_signal</strong></a> = connect(self, obj, name, callback, user_arg<font color="#909090">=None</font>)<font color="#909090"><font face="helvetica, arial"> method of Signals instance</font></font></dt><dd><tt>Available as:<br> urwid.connect_signal(obj, name, callback, user_arg=None)<br> <br> obj -- the object sending a signal<br> name -- the name of the signal, typically a string<br> callback -- the function to call when that signal is sent<br> user_arg -- optional additional argument to callback, if None<br> no arguments will be added<br> <br> When a matching signal is sent, callback will be called with<br> all the positional parameters sent with the signal. If user_arg<br> is not None it will be sent added to the end of the positional<br> parameters sent to callback.</tt></dd></dl> <a name="disconnect_signal"></a><h3>function disconnect_signal <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-disconnect_signal"><strong>disconnect_signal</strong></a> = disconnect(self, obj, name, callback, user_arg<font color="#909090">=None</font>)<font color="#909090"><font face="helvetica, arial"> method of Signals instance</font></font></dt><dd><tt>Available as:<br> urwid.disconnect_signal(obj, name, callback, user_arg=None)<br> <br> This function will remove a callback from the list connected<br> to a signal with connect_signal().</tt></dd></dl> <a name="register_signal"></a><h3>function register_signal <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-register_signal"><strong>register_signal</strong></a> = register(self, sig_cls, signals)<font color="#909090"><font face="helvetica, arial"> method of Signals instance</font></font></dt><dd><tt>Available as:<br> urwid.regsiter_signal(sig_cls, signals)<br> <br> sig_class -- the class of an object that will be sending signals<br> signals -- a list of signals that may be sent, typically each<br> signal is represented by a string<br> <br> This function must be called for a class before connecting any<br> signal callbacks or emiting any signals from that class' objects</tt></dd></dl> <a name="emit_signal"></a><h3>function emit_signal <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-emit_signal"><strong>emit_signal</strong></a> = emit(self, obj, name, *args)<font color="#909090"><font face="helvetica, arial"> method of Signals instance</font></font></dt><dd><tt>Available as:<br> urwid.emit_signal(obj, name, *args)<br> <br> obj -- the object sending a signal<br> name -- the name of the signal, typically a string<br> *args -- zero or more positional arguments to pass to the signal<br> callback functions<br> <br> This function calls each of the callbacks connected to this signal<br> with the args arguments as positional parameters.<br> <br> This function returns True if any of the callbacks returned True.</tt></dd></dl> <h2>Display modules</h2><a name="raw_display.Screen"></a><h3>function raw_display.Screen <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="raw_display.Screen"></a><strong>raw_display.Screen</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Screen</dd> <dd>BaseScreen</dd> <dd>RealTerminal</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><strong>AttrSpec</strong> <em>lambda</em> self, fg, bg</dt><dd><tt># shortcut for creating an AttrSpec with this screen object's<br> # number of colors</tt></dd></dl> <dl><dt><a name="Screen-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Initialize a screen that directly prints escape codes to an output<br> terminal.</tt></dd></dl> <dl><dt><a name="Screen-clear"><strong>clear</strong></a>(self)</dt><dd><tt>Force the screen to be completely repainted on the next<br> call to draw_screen().</tt></dd></dl> <dl><dt><a name="Screen-draw_screen"><strong>draw_screen</strong></a>(self, (maxcol, maxrow), r)</dt><dd><tt>Paint screen with rendered canvas.</tt></dd></dl> <dl><dt><a name="Screen-get_cols_rows"><strong>get_cols_rows</strong></a>(self)</dt><dd><tt>Return the terminal dimensions (num columns, num rows).</tt></dd></dl> <dl><dt><a name="Screen-get_input"><strong>get_input</strong></a>(self, raw_keys<font color="#909090">=False</font>)</dt><dd><tt>Return pending input as a list.<br> <br> raw_keys -- return raw keycodes as well as translated versions<br> <br> This function will immediately return all the input since the<br> last time it was called. If there is no input pending it will<br> wait before returning an empty list. The wait time may be<br> configured with the set_input_timeouts function.<br> <br> If raw_keys is False (default) this function will return a list<br> of keys pressed. If raw_keys is True this function will return<br> a ( keys pressed, raw keycodes ) tuple instead.<br> <br> Examples of keys returned<br> -------------------------<br> ASCII printable characters: " ", "a", "0", "A", "-", "/" <br> ASCII control characters: "tab", "enter"<br> Escape sequences: "up", "page up", "home", "insert", "f1"<br> Key combinations: "shift f1", "meta a", "ctrl b"<br> Window events: "window resize"<br> <br> When a narrow encoding is not enabled<br> "Extended ASCII" characters: "\xa1", "\xb2", "\xfe"<br> <br> When a wide encoding is enabled<br> Double-byte characters: "\xa1\xea", "\xb2\xd4"<br> <br> When utf8 encoding is enabled<br> Unicode characters: u"\u00a5", u'\u253c"<br> <br> Examples of mouse events returned<br> ---------------------------------<br> Mouse button press: ('mouse press', 1, 15, 13), <br> ('meta mouse press', 2, 17, 23)<br> Mouse drag: ('mouse drag', 1, 16, 13),<br> ('mouse drag', 1, 17, 13),<br> ('ctrl mouse drag', 1, 18, 13)<br> Mouse button release: ('mouse release', 0, 18, 13),<br> ('ctrl mouse release', 0, 17, 23)</tt></dd></dl> <dl><dt><a name="Screen-get_input_descriptors"><strong>get_input_descriptors</strong></a>(self)</dt><dd><tt>Return a list of integer file descriptors that should be<br> polled in external event loops to check for user input.<br> <br> Use this method if you are implementing yout own event loop.</tt></dd></dl> <dl><dt><a name="Screen-get_input_nonblocking"><strong>get_input_nonblocking</strong></a>(self)</dt><dd><tt>Return a (next_input_timeout, keys_pressed, raw_keycodes) <br> tuple.<br> <br> Use this method if you are implementing your own event loop.<br> <br> When there is input waiting on one of the descriptors returned<br> by get_input_descriptors() this method should be called to<br> read and process the input.<br> <br> This method expects to be called in next_input_timeout seconds<br> (a floating point number) if there is no input waiting.</tt></dd></dl> <dl><dt><a name="Screen-modify_terminal_palette"><strong>modify_terminal_palette</strong></a>(self, entries)</dt><dd><tt>entries - list of (index, red, green, blue) tuples.<br> <br> Attempt to set part of the terminal pallette (this does not work<br> on all terminals.) The changes are sent as a single escape<br> sequence so they should all take effect at the same time.<br> <br> 0 <= index < 256 (some terminals will only have 16 or 88 colors)<br> 0 <= red, green, blue < 256</tt></dd></dl> <dl><dt><a name="Screen-reset_default_terminal_palette"><strong>reset_default_terminal_palette</strong></a>(self)</dt><dd><tt>Attempt to set the terminal palette to default values as taken<br> from xterm. Uses number of colors from current <br> set_terminal_properties() screen setting.</tt></dd></dl> <dl><dt><a name="Screen-run_wrapper"><strong>run_wrapper</strong></a>(self, fn, alternate_buffer<font color="#909090">=True</font>)</dt><dd><tt>Call start to initialize screen, then call fn. <br> When fn exits call stop to restore the screen to normal.<br> <br> alternate_buffer -- use alternate screen buffer and restore<br> normal screen buffer on exit</tt></dd></dl> <dl><dt><a name="Screen-set_input_timeouts"><strong>set_input_timeouts</strong></a>(self, max_wait<font color="#909090">=None</font>, complete_wait<font color="#909090">=0.125</font>, resize_wait<font color="#909090">=0.125</font>)</dt><dd><tt>Set the get_input timeout values. All values are in floating<br> point numbers of seconds.<br> <br> max_wait -- amount of time in seconds to wait for input when<br> there is no input pending, wait forever if None<br> complete_wait -- amount of time in seconds to wait when<br> get_input detects an incomplete escape sequence at the<br> end of the available input<br> resize_wait -- amount of time in seconds to wait for more input<br> after receiving two screen resize requests in a row to<br> stop Urwid from consuming 100% cpu during a gradual<br> window resize operation</tt></dd></dl> <dl><dt><a name="Screen-set_mouse_tracking"><strong>set_mouse_tracking</strong></a>(self)</dt><dd><tt>Enable mouse tracking. <br> <br> After calling this function get_input will include mouse<br> click events along with keystrokes.</tt></dd></dl> <dl><dt><a name="Screen-set_terminal_properties"><strong>set_terminal_properties</strong></a>(self, colors<font color="#909090">=None</font>, bright_is_bold<font color="#909090">=None</font>, has_underline<font color="#909090">=None</font>)</dt><dd><tt>colors -- number of colors terminal supports (1, 16, 88 or 256)<br> or None to leave unchanged<br> bright_is_bold -- set to True if this terminal uses the bold <br> setting to create bright colors (numbers 8-15), set to False<br> if this Terminal can create bright colors without bold or<br> None to leave unchanged<br> has_underline -- set to True if this terminal can use the<br> underline setting, False if it cannot or None to leave<br> unchanged</tt></dd></dl> <dl><dt><a name="Screen-signal_init"><strong>signal_init</strong></a>(self)</dt><dd><tt>Called in the startup of run wrapper to set the SIGWINCH <br> signal handler to self.<strong>_sigwinch_handler</strong>.<br> <br> Override this function to call from main thread in threaded<br> applications.</tt></dd></dl> <dl><dt><a name="Screen-signal_restore"><strong>signal_restore</strong></a>(self)</dt><dd><tt>Called in the finally block of run wrapper to restore the<br> SIGWINCH handler to the default handler.<br> <br> Override this function to call from main thread in threaded<br> applications.</tt></dd></dl> <dl><dt><a name="Screen-start"><strong>start</strong></a>(self, alternate_buffer<font color="#909090">=True</font>)</dt><dd><tt>Initialize the screen and input mode.<br> <br> alternate_buffer -- use alternate screen buffer</tt></dd></dl> <dl><dt><a name="Screen-stop"><strong>stop</strong></a>(self)</dt><dd><tt>Restore the screen.</tt></dd></dl> <hr> Methods inherited from BaseScreen:<br> <dl><dt><a name="Screen-register_palette"><strong>register_palette</strong></a>(self, palette)</dt><dd><tt>Register a set of palette entries.<br> <br> palette -- a list of (name, like_other_name) or <br> (name, foreground, background, mono, foreground_high, <br> background_high) tuples<br> <br> The (name, like_other_name) format will copy the settings<br> from the palette entry like_other_name, which must appear<br> before this tuple in the list.<br> <br> The mono and foreground/background_high values are <br> optional ie. the second tuple format may have 3, 4 or 6 <br> values. See register_palette_entry() for a description <br> of the tuple values.</tt></dd></dl> <dl><dt><a name="Screen-register_palette_entry"><strong>register_palette_entry</strong></a>(self, name, foreground, background, mono<font color="#909090">=None</font>, foreground_high<font color="#909090">=None</font>, background_high<font color="#909090">=None</font>)</dt><dd><tt>Register a single palette entry.<br> <br> name -- new entry/attribute name<br> foreground -- a string containing a comma-separated foreground <br> color and settings<br> <br> Color values:<br> 'default' (use the terminal's default foreground),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray', 'dark gray',<br> 'light red', 'light green', 'yellow', 'light blue', <br> 'light magenta', 'light cyan', 'white'<br> <br> Settings:<br> 'bold', 'underline', 'blink', 'standout'<br> <br> Some terminals use 'bold' for bright colors. Most terminals<br> ignore the 'blink' setting. If the color is not given then<br> 'default' will be assumed. <br> <br> background -- a string containing the background color<br> <br> Background color values:<br> 'default' (use the terminal's default background),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray'<br> <br> mono -- a comma-separated string containing monochrome terminal <br> settings (see "Settings" above.)<br> <br> None = no terminal settings (same as 'default')<br> <br> foreground_high -- a string containing a comma-separated <br> foreground color and settings, standard foreground<br> colors (see "Color values" above) or high-colors may <br> be used<br> <br> High-color example values:<br> '#009' (0% red, 0% green, 60% red, like HTML colors)<br> '#fcc' (100% red, 80% green, 80% blue)<br> 'g40' (40% gray, decimal), 'g#cc' (80% gray, hex),<br> '#000', 'g0', 'g#00' (black),<br> '#fff', 'g100', 'g#ff' (white)<br> 'h8' (color number 8), 'h255' (color number 255)<br> <br> None = use foreground parameter value<br> <br> background_high -- a string containing the background color,<br> standard background colors (see "Background colors" above)<br> or high-colors (see "High-color example values" above)<br> may be used<br> <br> None = use background parameter value</tt></dd></dl> <hr> Data descriptors inherited from BaseScreen:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>started</strong></dt> </dl> <hr> Data and other attributes inherited from BaseScreen:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.signals.MetaSignals'><dd><tt>register the list of signals in the class varable signals,<br> including signals in superclasses.</tt></dl> <dl><dt><strong>signals</strong> = ['update palette entry', 'input descriptors changed']</dl> <hr> Methods inherited from RealTerminal:<br> <dl><dt><a name="Screen-tty_signal_keys"><strong>tty_signal_keys</strong></a>(self, intr<font color="#909090">=None</font>, quit<font color="#909090">=None</font>, start<font color="#909090">=None</font>, stop<font color="#909090">=None</font>, susp<font color="#909090">=None</font>, fileno<font color="#909090">=None</font>)</dt><dd><tt>Read and/or set the tty's signal charater settings.<br> This function returns the current settings as a tuple.<br> <br> Use the string 'undefined' to unmap keys from their signals.<br> The value None is used when no change is being made.<br> Setting signal keys is done using the integer ascii<br> code for the key, eg. 3 for CTRL+C.<br> <br> If this function is called after start() has been called<br> then the original settings will be restored when stop()<br> is called.</tt></dd></dl> <a name="curses_display.Screen"></a><h3>function curses_display.Screen <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="curses_display.Screen"></a><strong>curses_display.Screen</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>Screen</dd> <dd>BaseScreen</dd> <dd>RealTerminal</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="Screen-__init__"><strong>__init__</strong></a>(self)</dt></dl> <dl><dt><a name="Screen-clear"><strong>clear</strong></a>(self)</dt><dd><tt>Force the screen to be completely repainted on the next<br> call to draw_screen().</tt></dd></dl> <dl><dt><a name="Screen-draw_screen"><strong>draw_screen</strong></a>(self, (cols, rows), r)</dt><dd><tt>Paint screen with rendered canvas.</tt></dd></dl> <dl><dt><a name="Screen-get_cols_rows"><strong>get_cols_rows</strong></a>(self)</dt><dd><tt>Return the terminal dimensions (num columns, num rows).</tt></dd></dl> <dl><dt><a name="Screen-get_input"><strong>get_input</strong></a>(self, raw_keys<font color="#909090">=False</font>)</dt><dd><tt>Return pending input as a list.<br> <br> raw_keys -- return raw keycodes as well as translated versions<br> <br> This function will immediately return all the input since the<br> last time it was called. If there is no input pending it will<br> wait before returning an empty list. The wait time may be<br> configured with the set_input_timeouts function.<br> <br> If raw_keys is False (default) this function will return a list<br> of keys pressed. If raw_keys is True this function will return<br> a ( keys pressed, raw keycodes ) tuple instead.<br> <br> Examples of keys returned<br> -------------------------<br> ASCII printable characters: " ", "a", "0", "A", "-", "/" <br> ASCII control characters: "tab", "enter"<br> Escape sequences: "up", "page up", "home", "insert", "f1"<br> Key combinations: "shift f1", "meta a", "ctrl b"<br> Window events: "window resize"<br> <br> When a narrow encoding is not enabled<br> "Extended ASCII" characters: "\xa1", "\xb2", "\xfe"<br> <br> When a wide encoding is enabled<br> Double-byte characters: "\xa1\xea", "\xb2\xd4"<br> <br> When utf8 encoding is enabled<br> Unicode characters: u"\u00a5", u'\u253c"<br> <br> Examples of mouse events returned<br> ---------------------------------<br> Mouse button press: ('mouse press', 1, 15, 13), <br> ('meta mouse press', 2, 17, 23)<br> Mouse button release: ('mouse release', 0, 18, 13),<br> ('ctrl mouse release', 0, 17, 23)</tt></dd></dl> <dl><dt><a name="Screen-run_wrapper"><strong>run_wrapper</strong></a>(self, fn)</dt><dd><tt>Call fn in fullscreen mode. Return to normal on exit.<br> <br> This function should be called to wrap your main program loop.<br> Exception tracebacks will be displayed in normal mode.</tt></dd></dl> <dl><dt><a name="Screen-set_input_timeouts"><strong>set_input_timeouts</strong></a>(self, max_wait<font color="#909090">=None</font>, complete_wait<font color="#909090">=0.10000000000000001</font>, resize_wait<font color="#909090">=0.10000000000000001</font>)</dt><dd><tt>Set the get_input timeout values. All values have a granularity<br> of 0.1s, ie. any value between 0.15 and 0.05 will be treated as<br> 0.1 and any value less than 0.05 will be treated as 0. The<br> maximum timeout value for this module is 25.5 seconds.<br> <br> max_wait -- amount of time in seconds to wait for input when<br> there is no input pending, wait forever if None<br> complete_wait -- amount of time in seconds to wait when<br> get_input detects an incomplete escape sequence at the<br> end of the available input<br> resize_wait -- amount of time in seconds to wait for more input<br> after receiving two screen resize requests in a row to<br> stop urwid from consuming 100% cpu during a gradual<br> window resize operation</tt></dd></dl> <dl><dt><a name="Screen-set_mouse_tracking"><strong>set_mouse_tracking</strong></a>(self)</dt><dd><tt>Enable mouse tracking. <br> <br> After calling this function get_input will include mouse<br> click events along with keystrokes.</tt></dd></dl> <dl><dt><a name="Screen-start"><strong>start</strong></a>(self)</dt><dd><tt>Initialize the screen and input mode.</tt></dd></dl> <dl><dt><a name="Screen-stop"><strong>stop</strong></a>(self)</dt><dd><tt>Restore the screen.</tt></dd></dl> <hr> Methods inherited from BaseScreen:<br> <dl><dt><a name="Screen-register_palette"><strong>register_palette</strong></a>(self, palette)</dt><dd><tt>Register a set of palette entries.<br> <br> palette -- a list of (name, like_other_name) or <br> (name, foreground, background, mono, foreground_high, <br> background_high) tuples<br> <br> The (name, like_other_name) format will copy the settings<br> from the palette entry like_other_name, which must appear<br> before this tuple in the list.<br> <br> The mono and foreground/background_high values are <br> optional ie. the second tuple format may have 3, 4 or 6 <br> values. See register_palette_entry() for a description <br> of the tuple values.</tt></dd></dl> <dl><dt><a name="Screen-register_palette_entry"><strong>register_palette_entry</strong></a>(self, name, foreground, background, mono<font color="#909090">=None</font>, foreground_high<font color="#909090">=None</font>, background_high<font color="#909090">=None</font>)</dt><dd><tt>Register a single palette entry.<br> <br> name -- new entry/attribute name<br> foreground -- a string containing a comma-separated foreground <br> color and settings<br> <br> Color values:<br> 'default' (use the terminal's default foreground),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray', 'dark gray',<br> 'light red', 'light green', 'yellow', 'light blue', <br> 'light magenta', 'light cyan', 'white'<br> <br> Settings:<br> 'bold', 'underline', 'blink', 'standout'<br> <br> Some terminals use 'bold' for bright colors. Most terminals<br> ignore the 'blink' setting. If the color is not given then<br> 'default' will be assumed. <br> <br> background -- a string containing the background color<br> <br> Background color values:<br> 'default' (use the terminal's default background),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray'<br> <br> mono -- a comma-separated string containing monochrome terminal <br> settings (see "Settings" above.)<br> <br> None = no terminal settings (same as 'default')<br> <br> foreground_high -- a string containing a comma-separated <br> foreground color and settings, standard foreground<br> colors (see "Color values" above) or high-colors may <br> be used<br> <br> High-color example values:<br> '#009' (0% red, 0% green, 60% red, like HTML colors)<br> '#fcc' (100% red, 80% green, 80% blue)<br> 'g40' (40% gray, decimal), 'g#cc' (80% gray, hex),<br> '#000', 'g0', 'g#00' (black),<br> '#fff', 'g100', 'g#ff' (white)<br> 'h8' (color number 8), 'h255' (color number 255)<br> <br> None = use foreground parameter value<br> <br> background_high -- a string containing the background color,<br> standard background colors (see "Background colors" above)<br> or high-colors (see "High-color example values" above)<br> may be used<br> <br> None = use background parameter value</tt></dd></dl> <hr> Data descriptors inherited from BaseScreen:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <dl><dt><strong>started</strong></dt> </dl> <hr> Data and other attributes inherited from BaseScreen:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.signals.MetaSignals'><dd><tt>register the list of signals in the class varable signals,<br> including signals in superclasses.</tt></dl> <dl><dt><strong>signals</strong> = ['update palette entry', 'input descriptors changed']</dl> <hr> Methods inherited from RealTerminal:<br> <dl><dt><a name="Screen-tty_signal_keys"><strong>tty_signal_keys</strong></a>(self, intr<font color="#909090">=None</font>, quit<font color="#909090">=None</font>, start<font color="#909090">=None</font>, stop<font color="#909090">=None</font>, susp<font color="#909090">=None</font>, fileno<font color="#909090">=None</font>)</dt><dd><tt>Read and/or set the tty's signal charater settings.<br> This function returns the current settings as a tuple.<br> <br> Use the string 'undefined' to unmap keys from their signals.<br> The value None is used when no change is being made.<br> Setting signal keys is done using the integer ascii<br> code for the key, eg. 3 for CTRL+C.<br> <br> If this function is called after start() has been called<br> then the original settings will be restored when stop()<br> is called.</tt></dd></dl> <h3><a name="web_display.Screen"></a><strong>web_display.Screen</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3>Methods defined here:<br> <dl><dt><a name="Screen-__init__"><strong>__init__</strong></a>(self)</dt></dl> <dl><dt><a name="Screen-clear"><strong>clear</strong></a>(self)</dt><dd><tt>Force the screen to be completely repainted on the next<br> call to draw_screen().<br> <br> (does nothing for web_display)</tt></dd></dl> <dl><dt><a name="Screen-draw_screen"><strong>draw_screen</strong></a>(self, (cols, rows), r)</dt><dd><tt>Send a screen update to the client.</tt></dd></dl> <dl><dt><a name="Screen-get_cols_rows"><strong>get_cols_rows</strong></a>(self)</dt><dd><tt>Return the screen size.</tt></dd></dl> <dl><dt><a name="Screen-get_input"><strong>get_input</strong></a>(self, raw_keys<font color="#909090">=False</font>)</dt><dd><tt>Return pending input as a list.</tt></dd></dl> <dl><dt><a name="Screen-register_palette"><strong>register_palette</strong></a>(self, l)</dt><dd><tt>Register a list of palette entries.<br> <br> l -- list of (name, foreground, background) or<br> (name, same_as_other_name) palette entries.<br> <br> calls self.<strong>register_palette_entry</strong> for each item in l</tt></dd></dl> <dl><dt><a name="Screen-register_palette_entry"><strong>register_palette_entry</strong></a>(self, name, foreground, background, mono<font color="#909090">=None</font>)</dt><dd><tt>Register a single palette entry.<br> <br> name -- new entry/attribute name<br> foreground -- foreground colour<br> background -- background colour<br> mono -- monochrome terminal attribute<br> <br> See curses_display.register_palette_entry for more info.</tt></dd></dl> <dl><dt><a name="Screen-run_wrapper"><strong>run_wrapper</strong></a>(self, fn)</dt><dd><tt>Run the application main loop, calling start() first<br> and stop() on exit.</tt></dd></dl> <dl><dt><a name="Screen-set_input_timeouts"><strong>set_input_timeouts</strong></a>(self, *args)</dt></dl> <dl><dt><a name="Screen-set_mouse_tracking"><strong>set_mouse_tracking</strong></a>(self)</dt><dd><tt>Not yet implemented</tt></dd></dl> <dl><dt><a name="Screen-start"><strong>start</strong></a>(self)</dt><dd><tt>This function reads the initial screen size, generates a<br> unique id and handles cleanup when fn exits.<br> <br> web_display.set_preferences(..) must be called before calling<br> this function for the preferences to take effect</tt></dd></dl> <dl><dt><a name="Screen-stop"><strong>stop</strong></a>(self)</dt><dd><tt>Restore settings and clean up.</tt></dd></dl> <dl><dt><a name="Screen-tty_signal_keys"><strong>tty_signal_keys</strong></a>(self, *args, **vargs)</dt><dd><tt>Do nothing.</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>started</strong></dt> </dl> <h2>Screen capture</h2><a name="html_fragment.screenshot_init"></a><h3>function html_fragment.screenshot_init <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-html_fragment.screenshot_init"><strong>html_fragment.screenshot_init</strong></a> = screenshot_init(sizes, keys)</dt><dd><tt>Replace curses_display.Screen and raw_display.Screen class with <br> HtmlGenerator.<br> <br> Call this function before executing an application that uses <br> curses_display.Screen to have that code use HtmlGenerator instead.<br> <br> sizes -- list of ( columns, rows ) tuples to be returned by each call<br> to HtmlGenerator.get_cols_rows()<br> keys -- list of lists of keys to be returned by each call to<br> HtmlGenerator.get_input()<br> <br> Lists of keys may include "window resize" to force the application to<br> call get_cols_rows and read a new screen size.<br> <br> For example, the following call will prepare an application to:<br> 1. start in 80x25 with its first call to get_cols_rows()<br> 2. take a screenshot when it calls draw_screen(..)<br> 3. simulate 5 "down" keys from get_input()<br> 4. take a screenshot when it calls draw_screen(..)<br> 5. simulate keys "a", "b", "c" and a "window resize"<br> 6. resize to 20x10 on its second call to get_cols_rows()<br> 7. take a screenshot when it calls draw_screen(..)<br> 8. simulate a "Q" keypress to quit the application<br> <br> screenshot_init( [ (80,25), (20,10) ],<br> [ ["down"]*5, ["a","b","c","window resize"], ["Q"] ] )</tt></dd></dl> <a name="html_fragment.screenshot_collect"></a><h3>function html_fragment.screenshot_collect <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt><a name="-html_fragment.screenshot_collect"><strong>html_fragment.screenshot_collect</strong></a> = screenshot_collect()</dt><dd><tt>Return screenshots as a list of HTML fragments.</tt></dd></dl> <a name="html_fragment.HtmlGenerator"></a><h3>function html_fragment.HtmlGenerator <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><h3><a name="html_fragment.HtmlGenerator"></a><strong>html_fragment.HtmlGenerator</strong> <span style="font-size:small; padding-left: 20px">[<a href="#top">back to top</a>]</span></h3><dl><dt>Method resolution order:</dt> <dd>HtmlGenerator</dd> <dd>BaseScreen</dd> <dd>object</dd> </dl> <hr> Methods defined here:<br> <dl><dt><a name="HtmlGenerator-__init__"><strong>__init__</strong></a>(self)</dt></dl> <dl><dt><a name="HtmlGenerator-clear"><strong>clear</strong></a>(self)</dt><dd><tt>Force the screen to be completely repainted on the next<br> call to draw_screen().<br> <br> (does nothing for html_fragment)</tt></dd></dl> <dl><dt><a name="HtmlGenerator-draw_screen"><strong>draw_screen</strong></a>(self, (cols, rows), r)</dt><dd><tt>Create an html fragment from the render object. <br> Append it to HtmlGenerator.fragments list.</tt></dd></dl> <dl><dt><a name="HtmlGenerator-get_cols_rows"><strong>get_cols_rows</strong></a>(self)</dt><dd><tt>Return the next screen size in HtmlGenerator.sizes.</tt></dd></dl> <dl><dt><a name="HtmlGenerator-get_input"><strong>get_input</strong></a>(self, raw_keys<font color="#909090">=False</font>)</dt><dd><tt>Return the next list of keypresses in HtmlGenerator.keys.</tt></dd></dl> <dl><dt><a name="HtmlGenerator-reset_default_terminal_palette"><strong>reset_default_terminal_palette</strong></a>(self, *args)</dt></dl> <dl><dt><a name="HtmlGenerator-run_wrapper"><strong>run_wrapper</strong></a>(self, fn)</dt><dd><tt>Call fn.</tt></dd></dl> <dl><dt><a name="HtmlGenerator-set_input_timeouts"><strong>set_input_timeouts</strong></a>(self, *args)</dt></dl> <dl><dt><a name="HtmlGenerator-set_mouse_tracking"><strong>set_mouse_tracking</strong></a>(self)</dt><dd><tt>Not yet implemented</tt></dd></dl> <dl><dt><a name="HtmlGenerator-set_terminal_properties"><strong>set_terminal_properties</strong></a>(self, colors<font color="#909090">=None</font>, bright_is_bold<font color="#909090">=None</font>, has_underline<font color="#909090">=None</font>)</dt></dl> <dl><dt><a name="HtmlGenerator-start"><strong>start</strong></a>(self)</dt></dl> <dl><dt><a name="HtmlGenerator-stop"><strong>stop</strong></a>(self)</dt></dl> <hr> Data and other attributes defined here:<br> <dl><dt><strong>fragments</strong> = []</dl> <dl><dt><strong>keys</strong> = []</dl> <dl><dt><strong>sizes</strong> = []</dl> <dl><dt><strong>started</strong> = True</dl> <hr> Methods inherited from BaseScreen:<br> <dl><dt><a name="HtmlGenerator-register_palette"><strong>register_palette</strong></a>(self, palette)</dt><dd><tt>Register a set of palette entries.<br> <br> palette -- a list of (name, like_other_name) or <br> (name, foreground, background, mono, foreground_high, <br> background_high) tuples<br> <br> The (name, like_other_name) format will copy the settings<br> from the palette entry like_other_name, which must appear<br> before this tuple in the list.<br> <br> The mono and foreground/background_high values are <br> optional ie. the second tuple format may have 3, 4 or 6 <br> values. See register_palette_entry() for a description <br> of the tuple values.</tt></dd></dl> <dl><dt><a name="HtmlGenerator-register_palette_entry"><strong>register_palette_entry</strong></a>(self, name, foreground, background, mono<font color="#909090">=None</font>, foreground_high<font color="#909090">=None</font>, background_high<font color="#909090">=None</font>)</dt><dd><tt>Register a single palette entry.<br> <br> name -- new entry/attribute name<br> foreground -- a string containing a comma-separated foreground <br> color and settings<br> <br> Color values:<br> 'default' (use the terminal's default foreground),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray', 'dark gray',<br> 'light red', 'light green', 'yellow', 'light blue', <br> 'light magenta', 'light cyan', 'white'<br> <br> Settings:<br> 'bold', 'underline', 'blink', 'standout'<br> <br> Some terminals use 'bold' for bright colors. Most terminals<br> ignore the 'blink' setting. If the color is not given then<br> 'default' will be assumed. <br> <br> background -- a string containing the background color<br> <br> Background color values:<br> 'default' (use the terminal's default background),<br> 'black', 'dark red', 'dark green', 'brown', 'dark blue',<br> 'dark magenta', 'dark cyan', 'light gray'<br> <br> mono -- a comma-separated string containing monochrome terminal <br> settings (see "Settings" above.)<br> <br> None = no terminal settings (same as 'default')<br> <br> foreground_high -- a string containing a comma-separated <br> foreground color and settings, standard foreground<br> colors (see "Color values" above) or high-colors may <br> be used<br> <br> High-color example values:<br> '#009' (0% red, 0% green, 60% red, like HTML colors)<br> '#fcc' (100% red, 80% green, 80% blue)<br> 'g40' (40% gray, decimal), 'g#cc' (80% gray, hex),<br> '#000', 'g0', 'g#00' (black),<br> '#fff', 'g100', 'g#ff' (white)<br> 'h8' (color number 8), 'h255' (color number 255)<br> <br> None = use foreground parameter value<br> <br> background_high -- a string containing the background color,<br> standard background colors (see "Background colors" above)<br> or high-colors (see "High-color example values" above)<br> may be used<br> <br> None = use background parameter value</tt></dd></dl> <hr> Data descriptors inherited from BaseScreen:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> <hr> Data and other attributes inherited from BaseScreen:<br> <dl><dt><strong>__metaclass__</strong> = <class 'urwid.signals.MetaSignals'><dd><tt>register the list of signals in the class varable signals,<br> including signals in superclasses.</tt></dl> <dl><dt><strong>signals</strong> = ['update palette entry', 'input descriptors changed']</dl> </body> </html>