1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
|
CHANGE HISTORY
==============
LATEST
------
1.15.0
------
- Dropped support for Python 2, Python 3.9 or above is now required.
- Added support for ColouredText titles in MultiColumnLIstBox.
- Added gutter option to Layout.
- Added speed option to Sprite.
- Fixed bug where moving focus between Frames resulted in no current focus.
- Fixed internal state of RadioButton values to be consistent with selection.
- Fixed handling of zero width modifiers.
- Fixed image conversion to use modern PIL API and sort off-by-one height error.
- Fixed parser bug returning list instead of colour tuple.
1.14.0
------
- Added AnsiArtPlayer and AsciinemaPlayer
- Added dynamically sized, animated sprites to ray caster demo.
- Added fit parameter to DropdownList.
- Added support for default colours to AnsiTerminalParser
- Added VBarChart renderer.
- BREAKING VISUAL CHANGE: Frame now supports scroll bars without borders, to have no border and no scroll bar you now need Frame(has_border=False, can_scroll=False)
- Added TextBox.hide_cursor and TextBox.auto_scroll properties
- Added optional diameter parameter to ShootScreen.
- Improved DropEmitter effect - will now typically take a little longer to clear the screen.
- Fixed bug in widget focus - eliminated duplicate events and some cases that failed to move focus
- Fixed bug in clear_widgets() - also reset any focus in the layout.
- Fixed bug: layout could still be a tab stop with no active widgets.
1.13.0
------
- Added ability to change a `Button`'s text through a `.text` attribute.
- Added ability to accept a name attribute in the `Button` and `Label` constructors.
- Added ability to detect job pause/resume and force full screen refresh.
- Added ability to request terminal default colours using `Screen.COLOUR_DEFAULT`.
- Converted widgets to a sub-package.
- Fixed issue with labels in a layout column preventing buttons from being pressed.
- Fixed issue with visual overrun on Listboxes when there is a label offset.
- Fixed issue with TextBox hitting IndexError in double buffers due to lack of clipping.
- Fixed issue with Text/TextBox start columns on reset.
- Added troubleshooting on terminal colour handling.
1.12.0
------
- Added ColouredText objects to handle embedded colour codes in text for some widgets.
- Added parsers to handle Asciimatics and Ansi Terminal escape sequences.
- Added ControlCodeParser to create human readable text from raw text with control codes in it.
- Added readonly logic for Text and TextBox.
- Added ability to enable/disable widgets by column in layouts.
- Added left/right/up/down navigation to nearest widget.
- Added ability to scroll screen/canvas by variable number of lines.
- Created terminal demo
- Fixed exception on reinstating NoneType signal handler.
- Fixed float/int issue with recent builds of pywin32.
- Fixed issue where setting options changed the selected value (even if it was still present).
- Fixed erroneous trigger of on_load for all Frames at start of day.
- Fixed bug where Frames passed on events that they already handled.
- Fixed bug: Restore current theme on screen resize.
- Fixed bug in scrolling the screen up.
1.11.0
------
- Added `allow_int` parameter to `Screen.play()`.
- Added `max_length` parameter to `Text`.
- Added support for page up/down in `TextBox`.
- Added optional scroll bars to `MultiColumnListBox`.
- Added `file_filter` parameter to `FileBrowser`.
- Added `wait_for_input` method to `Screen`.
- Added optional `theme` parameter to `PopupDialog`.
- Added optional `jitter` parameter to `Noise`.
- Added `ManagedScreen` decorator.
- Improved performance of double-buffering.
- NOTE: Drawing off-screen with a large scrolling buffer is no longer supported (as it wasn't
needed).
- Added optional `pattern` parameter to `Stars`.
- Improved handling of permission errors in `FileBrowser`.
- Added formal support for defining your own colour theme.
- Added `clear_widgets` to `Layout` objects.
- Fixed height of PopUpDialog when no buttons are specified.
- Fixed bug where asciimatics Scenes would hang when the clock is moved back in time.
- Fixed off-by-one error in BarChart labels.
- Fixed bug where Labels ignored the custom_colour property.
- Added default date and time to DatePicker and TimePicker when no value specified.
1.10.0
------
- Added 'Frame.focussed_widget' to access current focussed widget of the frame.
- Added `PopupMenu` for dynamic contextual menus.
- Added `DropdownList` widget.
- Added `VerticalDivider` widget.
- Added optional scroll bar to Listboxes.
- Added `line_wrap` option to TextBoxes.
- Added `line_char` option to Dividers.
- Added `align` option to Labels.
- Added `width` property to widgets.
- Added `set_theme` to Frames and provided some new colour schemes.
- Fixed `Screen.wrapper()` to return result from wrapped function.
- Fixed list box truncation when lines are too long.
- Fixed issue with background colour when scrolling GNOME terminal.
- Fixed Text validator to support instance methods.
- Fixed exception raised by getdefaultlocale on some curses systems.
- Performance tweaks for non-unicode widgets.
- Relaxed restriction on static function callbacks for pop-up dialogs.
- Fixed bug where `Listbox.reset()` overrode current selected value.
- Fixed handling of decomposed unicode file names in `FileBrowser` for MacOS
- Fixed CJK issues with `Screen.paint()` and `SpeechBubble`.
- Fixed issue with dynamically added Frames so that they are reset before displayed for the first
time.
1.9.0
-----
- Added FileBrowser, DatePicker and TimePicker widgets.
- Made `screen` a mandatory positional parameter to all Effects in the process.
- NOTE: Any custom Effects you have created will now need to pass the screen down to the parent
class.
- Added `fill_polygon()` to Screen and Canvas.
- Added the Kaleidoscope and RotatedDuplicate renderers.
- Created Maps demo - which renders vector tiles and satellite images from Mapbox.
- Added optional `is_modal` parameter to Frame constructor.
- Added `on_blur` and `on_focus` parameters to all interactive Widgets.
- Added `colour` property to Cogs Effect.
- Added `title` property to Frame.
- Added `text` property to Label.
- Added `hide_char` parameter to Text constructor to hide any entered text - e.g. for passwords.
- Added optional `height` parameter to Label constructor.
- Allowed programs to set "default" values for Widgets - which means you need to reset each field
in a Frame explicitly rather than relying on reset to blank out uninitialized fields.
- Fixed up signal handling to re-instate old handlers on Screen.close().
- Fixed missing on_select handler for ListBox.
1.8.0
-----
- Added MultiColumnListBox for displaying tabular data in widgets.
- Improved efficiency of screen refresh on curses systems.
- Improved start-up time by avoiding use of deepcopy()
- Added unicode characters to ColourFileImage to increase rendering resolution.
- Added support for validated free-form text to Text widgets.
- Added force_update() to allow background refresh of the Screen.
- Added custom_colour property to widgets.
- Added support for DELETE key to text widgets.
- Fixed ZeroDivisionError in Frames.
- Fixed issues with double-width glyphs as used by CJK languages.
- Tweaked widget navigation using cursor keys to be more like web forms.
1.7.0
-----
- Added unicode support for input and output.
- Reworked Screen construction.
- Added open() and close() methods to Screen.
- Retired from_windows(), from_curses() and from_blessed() methods.
- Retired Blessed support.
- Added set_scenes() and draw_next_frame() to allow asynchronous frameworks to
use Screen.
- Added Plasma renderer and sample code to use it.
- Added background colour support to ColourImageFile.
- Added support for multi-colour rendering using ${c,a,b} syntax.
- Added highlight() method to Screen and Canvas.
- Added UT framework for testing and CI configurations to run the tests.
- Added shadows to Frames.
- Fixed bug in restoring console colours on Exit for Windows.
- Fixed up logic for handling Ctrl keys and documented OS restrictions.
- Fixed refresh timer in play() when handling intensive computational load.
- Added repeat flag to play() to allow termination of the animation instead of
infinite looping.
- Improved CPU usage for Widgets-based UIs.
- General docs and test tidy up.
1.6.0
-----
- Added `widgets` sub-package, providing a Frame effect for encapsulating a User
Interface, a Layout to organise the content and the following widgets:
- Button
- CheckBox
- Divider
- Label
- ListBox
- RadioButtons
- Text
- TextBox
- Added PopUpDialog for simple alerting in a UI.
- Added `attr` option to Print Effect.
- Added `keys` option to BarChart Renderer.
1.5.0
-----
- Created the ParticleEffect and associated classes.
- Implemented the StarFirework, RingFirework, SerpentFirework, PalmFirework,
Explosion, DropScreen, ShootScreen and Rain effects.
- Added background colour options to BarChart renderer.
- Added set_title() method to set title for window that owns the Screen.
1.4.2
-----
- Fix for Python 3 support on Linux variants.
1.4.1
-----
- Minor fixes to setup.py to correct packaging meta-data.
1.4.0
-----
- Added Fire renderer and demo.
- Added Mouse support. This had 2 major impacts:
1. It meant that blessed support is now completely deprecated as it doesn't
support mouse input.
2. All references to processing keys is now deprecated. You must now use the
`get_event()` equivalent API instead.
- Added support for dynamic addition/removal of Effects from a Scene, using
`add_effect()` and `remove_effect()`.
- Converted all effects to use `**kwargs` to pass through to base Effect class
so that future common frame related features were instantly available. These
parameters must now always be specified as keyword arguments as a result.
- Added support for background colours.
- Renamed `getch()` and `putch()` to `get_from()` and `print_at()`. Old
functions are still present, but deprecated.
- Fixed up `get_from()` so that it is consistent across all platforms and
includes all character attributes.
1.3.0
-----
- Added BarChart renderer and demo.
- Added support for extended key codes on Windows and Linux.
- Added support for dynamic paths using keyboard input. Created interactive
demo sample to show how this works.
- Split Renderer into StaticRenderer and DynamicRenderer. Code that used
Renderer should now use StaticRenderer.
- Added speed option to Print effect.
- Fixed up curses colour detection and Unicode bug in python2 on Windows.
1.2.0
-----
- Added Windows support, complete with `Screen.wrapper()` to handle all
required screen set up. The old from_XXX class methods are now deprecated.
- Fixed ColourImageFile to do bare minimum rendering on low colour terminals.
- Added formal palette property to Screen for image conversions.
- Verified Python 3.4 support.
1.1.0
-----
- Added the Julia Set and Cog effects.
- Fixed up off-by-one error in line drawing.
- Added support for screen resizing while playing a scene.
- Added support for Python 3.
1.0.0
-----
- Added Bressenham line drawing algorithm with anti-aliasing.
- Added Random Noise effect.
- Added support for blessed as well as curses - if you want to continue to
use curses, construct the Screen using the `from_curses()` class method.
- Fixed up some docs errors.
0.4.0
-----
- Added support for 256 colour terminals.
- Moved ${c,a} syntax for inline colouring from Screen to Renderer.
- Created some samples for 256 colour mode and colour images.
0.3.0
-----
- Added support for multi-colour rendering using ${c,a} syntax.
- Added Snow effect.
- Fixed bug when erasing small Sprites.
- Fixed up various documentation niggles.
0.2.0
-----
- Original public release.
|