Skip to content

Latest commit

 

History

History
286 lines (254 loc) · 11.8 KB

CHANGES.rst

File metadata and controls

286 lines (254 loc) · 11.8 KB

CHANGE HISTORY

LATEST

  • Added border option to PopupMenu
  • Fixed double-width alignment issues on DropdownList
  • Improved TextBox line wrapping to break on word boundaries.
  • Fixed logic for highlighting selected widget controls without focus.

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.