0.3 --- Release
===============

*Released*

The 0.3 release introduced the release pipeline, the installer, and the first set of
core widgets and objects.

Changes
-------

Releasing
~~~~~~~~~

- Added ``VIS release`` command to build and release a version of the project
- Uses ``project.json`` to generate a PyInstaller spec file for compilation
- Can switch from screen to screen using internal methods (``os.execl``)
- Can release a single screen (``VIS release Screen <name>``)
- Releasing creates installers for the project

Screen Functionality
~~~~~~~~~~~~~~~~~~~~

- Default form changed
- Currently active screen is tracked in ``Project``
- Screens can load with args

Objects
-------

- ``VIMG`` can bind image path resizing to a widget

New Widgets
-----------

- ``Window`` --- mixin class for fullscreen control and icon loading
- ``Root`` (Tk, Window) --- main application window
- ``SubRoot`` (Toplevel, Window) --- popup/secondary window
- ``WindowGeometry`` --- window sizing and positioning helper
- ``LayoutFrame`` (ttk.Frame) --- frame with a ``Layout`` object pre-attached
- ``QuestionWindow`` (SubRoot) --- configurable dialog with response buttons
- ``ScrollableFrame`` (ttk.Frame) --- frame with vertical scrollbar
- ``ScrollMenu`` (ScrollableFrame) --- scrollable VISMenu

Updated Widgets
---------------

- **Menu** --- buttons highlight on hover; can provide screen names instead of paths
- **MenuItem** (Button) --- now the button itself with auto-sized text; uses
  ``screen.load()`` when provided with a screen name
