This file will contain a changelog for all release versions of py_cui.
This release focuses on improving debugging tools for py_cui developers, adds mouse press support, improves user defineable callbacks for certain actions, and allows for "forgetting" widgets. It also drops support for python versions older than 3.6, improves some logging message levels, overhauls the widget ID system, and adds a large amount of various bugfixes and other minor new features. Please see the more detailed breakdown and issue list below.
What this pull request changes
- Live-Debug mode added. When enabled, a certain keybinding (default
Ctrl-D
) will open up an overlay widget with recent logger messages displayed. Log messages buffered up until a certain maximum. Standard logging levels are supported. Will make debugging UI issues and especiallypy_cui
development much easier. - Support for variety of mouse functions - left/right/middle clicks, double clicks, triple clicks, presses and releases
- Allow for user setting of mouse commands like key commands
- Allow setting an on-selection-change event function for scroll menus
- Python versions older than 3.6 dropped from support. I had wanted to keep around support for older versions due to the vintage of OS I used at work - but we have recently migrated everything to RHEL 8, giving me an excuse to drop older versions
- Some changes to log message levels
- Change to widget ID system - widgets now just get integers as IDs, this is cleaner
- Add ability to "forget" a widget and remove it from an active UI
- #106
- #58
- #109
- #98
- #115
- #113
- #100
- #72
- #126
- #119
- #114
- #107
- There should be no major outward facing breaking changes with this release
This release adds filedialog popup support, a significant overhaul of the slider widget, overhaul of testing, scroll menu improvements, and minor bugfixes
- New popup - Filedialog popup allows for seamlessly asking user to select a file, directory, or a save location.
- Slider widget improved, adding options for alignment, as well as
- Allow for border color to be set for in-focus and out of focus seperately
- Test overhaul to use pytest fixtures. Modernized pytest structure
- Version auto-detection during packaging process
- Example improvements + bugfixes
- IDE annotations added to examples
- Cyrillic input support for textboxes
- Avoid drawing bolded black on white - produces illegible results on many terminals
- Raise exceptions when function required to be implemented is not.
- #49
- #68
- #75
- #57
- #61
- #86
- #64
- #88
- #90
The slider widget has had some changes to the outer facing API. No other breaking changes were made.
Next iterative release of py_cui
. This release fixes some minor issues with the old version, adds form and slider popups and widgets, expands color and key options, and makes performance improvements.
- Huge performance improvement. Only redraw changed areas of screen.
- Functions to allow setting timeout for waiting for user input to refresh. Allows for editing values in second thread and seeing them update without having to interact with the UI
- Many new Colors added (56 total combinations, up from 10)
- Many new keys supported (Modifiers + letters, some special keys)
- Support for setting widget cycling keys for navigating between widgets even when in focus mode. (Defaults to Ctrl + left/right arrow keys).
- Support for a slider widget added.
- Form entry popup added. Allows for asking for several fields of input
- Greatly expanded coloration options. Can now individually set border color, text color, and selected text color
- #54
- #46
- #50
- #63
- #60
No breaking changes were made to the outer-facing API in this PR. Internally, certain functions had arguments added, but externally these are treated as keyword arguments.
Next iterative release of py_cui
, meant to add some requested functionality and improvements, particularly for scroll and checkbox menu widgets. Also adds mouse click support
- Create
CheckBoxMenuImplementation
class - Allow menu items to receive objects as well as strings
- Add additional default keys for faster menu navigation
- Mouse click support
- Fix bug with block label widget centering
- Fix some minor encapsulation issues
- #44
- #45
- #16
- #51
The only (minor) breaking change in this release is the change in the scoping of the title bar variable in the root PyCUI class. Most applications should not be affected, unless referencing the variable directly, instead of through getters/setters.
First alpha release of py_cui
, adds many requested features, but has some minor breaking changes, that shouldn't affect many programs.
- Add logging support for debug purposes
- Improve code reuse, restructure widget and popup classes
- Add set of central base classes for UI elements and implementations
- Move CI/CD to github actions
- Fix bug with window resize with widget sets on
win32
- Improve error handling in main draw loop
- Improved widget navigation
- Fix
KEY_BACKSPACE
on MacOS - Add ability to run in simulated terminal to improve testing capabilities
- #40
- #38
- #36
- #35
- #27
- #21
- WidgetSet objects should no longer be directly created, but instead should be spawned with the
create_new_widget_set
function. - Many internal variable name changes, are now accessible via getter and setter methods. Any instances where direct access to internal variables was made may be broken, but can easily be replaced without functionality loss with getter/setter alternatives
Next iterative release of py_cui
- Custom border characters. You may now use non-ascii unicode border characters (
toggle_unicode_borders
) - TextBox password option. You may now enable password protection on standard textboxes
- Improved doc generation
- Navigation between widgets that are not directly adjacent improved
- Missing
DELETE
key functionality added for textbox and textbox popup - Removed redundant docstrings
- Mark checked option fixed for checkbox menu widget
- Loading bar now will always be correct size
- Add loading animation to loading bar
Next iterative release of py_cui
- label.toggle_border() for showing label borders
move_focus
command should work correctly- Fix issue with windows installs
- Improve doc auto-generation
- Improve docs in code and examples
- Fix incorrect use of function in
move_focus
Initial pre-release version of py_cui
.
- Collection of default widgets
- Popup support
- Loading icon support
- Ability to switch between windows
- Ascii based interface renderer
- Basic text color options
- Grid layout manager
- Automated CI/CD unit testing with TravisCI
- Windows version does not seem to pull
windows-curses
from pypi automatically move_focus
does not reset status bar text- Docs are incomplete
- Improved layout management
- More intuitive color rule definition
py_cui_constructor
helper script for buildingpy_cui
interface templates- Code cleanup and bug fixes