Urwid 1.1.1
* Fix for Pile not changing focus on mouse events
* Fix for Overlay.get_cursor_coords()
Urwid 1.1.0
* New common container API: focus, focus_position, contents,
options(), get_focus_path(), set_focus_path(), __getitem__,
__iter__(), __reversed__() implemented across all included
container widgets
A full description doesn't fit here, see the Container Widgets
section in the manual for details
* New Sphinx-based documentation now included in source:
Tutorial rewritten, manual revised and new reference based
on updated docstrings (by Marco Giusti, Patrick Totzke)
* New list walker SimpleFocusListWalker like SimpleListWalker but
updates focus position as items are inserted or removed
* New decoration widget WidgetDisable to disable interaction
with the widgets it wraps
* SelectableIcon selectable text widget used by button widgets is
now documented (available since 0.9.9)
* Columns widget now tries to keep column in focus visible, hiding
columns on the left when necessary
* Padding widget now defaults to ('relative', 100) instead of
'pack' so that left and right parameters are more useful and more
child widgets are supported
* New list walker "API Version 2" that is simpler for many list
walker uses; "API Version 1" will still continue to be supported
* List walkers may now allow iteration from the absolute top or
bottom of the list if they provide a positions() method
* raw_display now erases to the end of the line with EL escape
sequence to improve copy+paste behavior for some terminals
* Filler now has top and bottom parameters like Padding's left and
right parameters and accepts 'pack' instead of None as a height
value for widgets that calculate their own number of rows
* Pile and Columns now accepts 'pack' instead of 'flow' for widgets
that calculate their own number of rows or columns
* Pile and Columns now accept 'given' instead of 'fixed' for
cases where the number of rows or columns are specified by the
container options
* Pile and Columns widgets now accept any iterable to their
__init__() methods
* Widget now has a default focus_position property that raises
an IndexError when read to be consistent with new common container
API
* GridFlow now supports multiple cell widths within the same widget
* BoxWidget, FlowWidget and FixedWidget are deprecated, instead
use the sizing() function or _sizing attribute to specify the
supported sizing modes for your custom widgets
* Some new shift+arrow and numpad input sequences from RXVT and
xterm are now recognized
* Fix for alarms when used with a screen event loop (e.g.
curses_display)
* Fix for raw_display when terminal width is 1 column
* Fixes for a Columns.get_cursor_coords() regression and a
SelectableIcon.get_cursor_coords() bug
* Fixes for incorrect handling of box columns in a number of
Columns methods when that column is selectable
* Fix for Terminal widget input handling with Python 3
Urwid 1.0.3
* Fix for alarms when used with a screen event loop (e.g.
curses_display)
* Fix for Overlay.get_cursor_coords()
Urwid 1.0.2
* Fix for bug when entering Unicode text into Edit widget with
bytes caption
* Fix a regression when not running in UTF-8 mode
* Fix for a MainLoop.remove_watch_pipe() bug
* Fix for a bug when packing empty Edit widgets
* Fix for a ListBox "contents too long" error with very large
Edit widgets
* Prevent ListBoxes from selecting 0-height selectable widgets
when moving up or down
* Fix a number of bugs caused by 0-height widgets in a ListBox
Urwid 1.0.1
* Fix for Terminal widget in BSD/OSX
* Fix for a Filler mouse_event() position bug
* Fix support for mouse positions up to x=255, y=255
* Fixes for a number of string encoding issues under Python 3
* Fix for a LineBox border __init__() parameters
* Fix input input of UTF-8 in tour.py example by converting captions
to unicode
* Fix tutorial examples' use of TextCanvas and switch to using
unicode literals
* Prevent raw_display from calling tcseattr() or tcgetattr() on
non-ttys
* Disable curses_display external event loop support: screen resizing
and gpm events are not properly supported
* Mark PollingListWalker as deprecated
Urwid 1.0.0
* New support for Python 3.2 from the same 2.x code base,
requires distribute instead of setuptools (by Kirk McDonald,
Wendell, Marien Zwart) everything except TwistedEventLoop and
GLibEventLoop is supported
* New experimental Terminal widget with xterm emulation and
terminal.py example program (by aszlig)
* Edit widget now supports a mask (for passwords), has a
insert_text_result() method for full-field validation and
normalizes input text to Unicode or bytes based on the caption
type used
* New TreeWidget, TreeNode, ParentNode, TreeWalker
and TreeListBox classes for lazy expanding/collapsing tree
views factored out of browse.py example program, with new
treesample.py example program (by Rob Lanphier)
* MainLoop now calls draw_screen() just before going idle, so extra
calls to draw_screen() in user code may now be removed
* New MainLoop.watch_pipe() method for subprocess or threaded
communication with the process/thread updating the UI, and new
subproc.py example demonstrating its use
* New PopUpLauncher and PopUpTarget widgets and MainLoop option
for creating pop-ups and drop-downs, and new pop_up.py example
program
* New twisted_serve_ssh.py example (by Ali Afshar) that serves
multiple displays over ssh from the same application using
Twisted and the TwistedEventLoop
* ListBox now includes a get_cursor_coords() method, allowing
nested ListBox widgets
* Columns widget contents may now be marked to always be treated
as flow widgets for mixing flow and box widgets more easily
* New lcd_display module with support for CF635 USB LCD panel and
lcd_cf635.py example program with menus, slider controls and a custom
font
* Shared command_map instance is now stored as Widget._command_map
class attribute and may be overridden in subclasses or individual
widgets for more control over special keystrokes
* Overlay widget parameters may now be adjusted after creation with
set_overlay_parameters() method
* New WidgetPlaceholder widget useful for swapping widgets without
having to manipulate a container widget's contents
* LineBox widgets may now include title text
* ProgressBar text content and alignment may now be overridden
* Use reactor.stop() in TwistedEventLoop and document that Twisted's
reactor is not designed to be stopped then restarted
* curses_display now supports AttrSpec and external event loops
(Twisted or GLib) just like raw_display
* raw_display and curses_display now support the IBMPC character
set (currently only used by Terminal widget)
* Fix for a gpm_mev bug preventing user input when on the console
* Fix for leaks of None objects in str_util extension
* Fix for WidgetWrap and AttrMap not working with fixed widgets
* Fix for a lock up when attempting to wrap text containing wide
characters into a single character column
Urwid 0.9.9.2
* Fix for an Overlay get_cursor_coords(), and Text top-widget bug
* Fix for a Padding rows() bug when used with width=PACK
* Fix for a bug with large flow widgets used in an Overlay
* Fix for a gpm_mev bug
* Fix for Pile and GraphVScale when rendered with no contents
* Fix for a Python 2.3 incompatibility (0.9.9 is the last release
to claim support Python 2.3)
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
Fix PR pkg/43104
pkgsrc-changes:
o added documentation and example
o use setuptools
Changelog
- Urwid 0.9.9.1
* Fix for ListBox snapping to selectable widgets taller than the
ListBox itself
* raw_display switching to alternate buffer now works properly with
Terminal.app
* Fix for BoxAdapter backwards incompatibility introduced in 0.9.9
* Fix for a doctest failure under powerpc
* Fix for systems with gpm_mev installed but not running gpm
- Urwid 0.9.9
* New support for 256 and 88 color terminals with raw_display
and html_fragment display modules
* New palette_test example program to demonstrate high color
modes
* New AttrSpec class for specifying specific colors instead of
using attributes defined in the screen's palette
* New MainLoop class ties together widgets, user input, screen
display and one of a number of new event loops, removing the
need for tedious, error-prone boilerplate code
* New GLibEventLoop allows running Urwid applications with GLib
(makes D-Bus integration easier)
* New TwistedEventLoop allows running Urwid with a Twisted reactor
* Added new docstrings and doctests to many widget classes
* New AttrMap widget supports mapping any attribute to any other
attribute, replaces AttrWrap widget
* New WidgetDecoration base class for AttrMap, BoxAdapter, Padding,
Filler and LineBox widgets creates a common method for accessing
and updating their contained widgets
* New left and right values may be specified in Padding widgets
* New command_map for specifying which keys cause actions such as
clicking Button widgets and scrolling ListBox widgets
* New tty_signal_keys() method of raw_display.Screen and
curses_display.Screen allows changing or disabling the keys used
to send signals to the application
* Added helpful __repr__ for many widget classes
* Updated all example programs to use MainLoop class
* Updated tutorial with MainLoop usage and improved examples
* Renamed WidgetWrap.w to _w, indicating its intended use as a way
to implement a widget with other widgets, not necessarily as
a container for other widgets
* Replaced all tabs with 4 spaces, code is now more aerodynamic
(and PEP 8 compliant)
* Added saving of stdin and stdout in raw_display module allowing
the originals to be redirected
* Updated BigText widget's HalfBlock5x4Font
* Fixed graph example CPU usage when animation is stopped
* Fixed a memory leak related to objects listening for signals
* Fixed a Popen3 deprecation warning
- Urwid 0.9.8.4
* Fixed incompatibilities with Python 2.6 (by Friedrich Weber)
* Fixed a SimpleListWalker with emptied list bug (found by Walter
Mundt)
* Fixed a curses_display stop()/start() bug (found by Christian
Scharkus)
* Fixed an is_wide_character() segfault on bad input data bug
(by Andrew Psaltis)
* Fixed a CanvasCache with render() used in both a widget and its
superclass bug (found by Andrew Psaltis)
* Fixed a ListBox.ends_visible() on empty list bug (found by Marc
Hartstein)
* Fixed a tutorial example bug (found by Kurtis D. Rader)
* Fixed an Overlay.keypress() bug (found by Andreas Klöckner)
* Fixed setuptools configuration (by Andreas Klöckner)
- Urwid 0.9.8.3
* Fixed a canvas cache memory leak affecting 0.9.8, 0.9.8.1 and
0.9.8.2 (found by John Goodfellow)
* Fixed a canvas fill_attr() bug (found by Joern Koerner)
- Urwid 0.9.8.2
* Fixed incompatibilities with Python 2.3
* Fixed Pile cursor pref_col bug, WidgetWrap rows caching bug, Button
mouse_event with no callback bug, Filler body bug triggered by the
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
Full changelog is at http://excess.org/urwid/wiki/ChangeLog
- Rendering is now significantly faster.
- The curses_display module can now draw in the lower-right corner of the screen.
- New Widget base class for all widgets. It includes automatic caching of rows() and render() methods. It also adds a new __super attribute for accessing methods in superclasses.
- Widgets must now call self._invalidate() to notify the cache when their content has changed.
- To disable caching in a widget set the class variable no_cache to a list that includes the string "render".
- Canvas classes have been reorganized: Canvas has been renamed to TextCanvas and Canvas is now the base class for all canvases. New canvas classes include BlankCanvas, SolidCanvas and CompositeCanvas.
- All display modules now have start() and stop() methods that may be used instead of calling run_wrapper().
- Many internal string processing functions have been rewritten in C to improve their performance.
- Compatible with Python >= 2.2. Python 2.1 is no longer supported.
- Improved performance in UTF-8 mode when ASCII text is used.
- Added a clear() function to the the display modules to force the screen to be repainted on the next draw_screen() call.
Take maintainership, agreed by minskim@
From changelog:
* tons of bugfixes
* Added initial support for fixed widgets - widgets that have a
fixed size on screen.
* New BigText class that draws text with fonts made of grids of
character cells.
* Overlay class can now accept a fixed widget as the widget to
display "on top".
* New Canvas functions: pad_trim(..) and pad_trim_left_right(..).
* Fixed Unicode conversion and locale issues when using Urwid with
Python < 2.4.
a private email.
Changes since 0.8.4:
- Many new widgets including Filler, Button, RadioButton, CheckBox, etc.
- Improved support for CJK encodings.
- Expanded tutorial.
- Bug fixes.
Urwid is a curses-based user interface library. It includes many
features useful for text console application developers including,
fluid interface resizing (xterm window resizing / fbset on Linux
console), support for 8-bit and CJK encodings, multiple text alignment
and wrapping modes built-in, ability to register user-defined text
alignment and wrapping modes, simple markup for setting text
attributes, powerful list box that handles scrolling between different
widget types, list box contents may be managed with a user-defined
class, flexible edit box for editing many different types of text, and
easy interface for creating HTML screen shots.