Note: for further information about specific classes and methods visit the [documentation on ReadTheDocs.org](https://peng3d.readthedocs.io/).
This release is available in the attachments and on the Python Package Index [here](https://pypi.python.org/pypi/peng3d/1.8.0a1).
Most Features are listed in Chronological order.
- Added `visible` option for containers for controlling visibilty
- Dynamic Widget Positions via functions/lambdas now get the size of the parent widget instead of the window size, this may change some behaviour in old applications
- Added `pos` and `size` properties to `SubMenu` to facilitate the aforementioned changes
- Added the `textchange` action to Labels
- Added toggleable multiline support for Labels
- Fixed bugs with invisible containers
- Rewrote major parts of `ButtonBackground` removing a lot of redundant code and making it more modular
- Added feature to easily add Borderstyles to `ButtonBackground`
- Removed lots of code from various other backgrounds, most are now only slightly customized variants of `ButtonBackground`
- Added `pressed` and `is_hovering` helper properties to `Background`, note that they may not always reflect the true state of the widget, see the docs for more information
- Calling `redraw()` multiple times in one frame now does not immediately redraw the widget, it is only redrawn once, in a semi-asynchronous manner
- Custom Widgets should put their redrawing code into `on_redraw()` instead of `redraw()` to support these new features
- Removed already deprecated feature for non-batch vertex lists in Widgets, use batches instead
- Fixed a bug that would cause an OpenGL error and crash if widget sizes went into the negative realm, e.g. during resizing
- Added experimental feature to remove widgets, not yet recommended for production use
- Added support for cut/copy/paste in TextInput, requires pyperclip
- Fixed bugs related to improper line editing in TextInput
- Added support for HTML Labels, see the docs for information about which tags are supported
- Added `LayeredWidget`, allows for (theoretically) infinity combinations of layers to widgets
- Added Widget Layers for most commonly used functionality
- Added peng3d.util package containing most utility functions
- Moved most module-level functions to peng3d.util
- Updated setup.py to include new packages
- ResourceManager now returns a missing texture instead of crashing if the category does not exist
- Added `statechanged` action to BasicWidget
- Added `getState()` method to BasicWidget, see docs for more info
- Cleaned up some old code from test_*.py files
- Added example template
- Added example for layered widgets
- Moved test_*.py files to examples/
- Updated docs to reflect changes since last release
In total, 37 Files were modified and 2029 Additions and 526 Deletions were made.