Closes #91 There's some details to still figure out, which are in new issues: - #109: When opening a window, no handle is returned that gives access to the window from the opener. Technically this can all be wired up manually, with exception of requeesting the window close. - #107: How can a window close itself? Once we have a handle type, we still need a mechanism to allow a button on a window request that the window closes gracefully. The examples that currently close the window call exit instad.
3.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Breaking Changes
- Many bounds required
UnwindSafedue to a misunderstanding on how to handle this trait inappit. All requirements forUnwindSafehave been removed. Gooeyno longer implements default. To gain access to aGooeyinstance, create aPendingAppor get a reference to the runningApp.Window::newno longer accepts aGooeyparameter. The window now adopts theGooeyfrom the application it is opened within.MakeWidget::into_window()no longer takes any parameters.
Changed
-
#92: When a Window is resizable and the root widget's
layout()function returns a size larger than the window's inner size, the window will no longer be resized to fit. The content will be forced to render in the given space, which may result in clipping.Using a
Resizewidget in the root hierarchy allows setting minimum width and heights for the content.
Added
-
Validations::validate_resultattaches aDynamic<Result<T,E>>to the validations. This was already available onwhenconditioned validations. -
Dynamic::[try_]compare_swapallows swapping the contents of a dynamic after verifying the current contents. -
#91: Multi-window support has been implemented.
PendingAppallows opening one or more windows before starting the program.Appis a handle to the running application that can be used to open additional windows at runtime.Openis a new trait that allows various types to open as a window given a reference to an application. This trait is implemented for all types that implementedRun, which means any type that was previously able to be run as a standalone executable can now be opened as a window within a multi-window application.The
multi-windowexample demonstates using this feature to open multiple windows before starting Gooey as well as dynamically opening windows at runtime. -
Window::on_closesets a callback to be invoked when the window has closed.
v0.1.3 (2023-12-19)
Added
-
#94
Window::inner_sizeallows setting a dynamic that will be synchronized with the window's inner size. When the dynamic is set to a new value, a resize request will be sent to the operating system. When the window's size is changed by the operating system, this dynamic will be updated with the new value.This dynamic is also accessible through
RunningWindow::inner_size, which is accessible through contexts passed into variousWidgetfunctions. -
Progressnow implementsDefaultby returningProgress::Indeterminant. -
WeakDynamic<T>now implementsDebugwhenTisDebug.
Fixed
-
#97:
Dynamiccallback invocations could be missed for a value when multiple threads were updating values at the same time. Now it is guaranteed that each callback will observe the latest value at least once.Cycles on the same thread are still detected and logged to prevent infinite loops from callback chain cycles.
-
An integer underflow has been fixed in the Grid/Stack widgets.
-
Padding is now rounded to the nearest whole pixel when applied across widgets.
v0.1.2 (2023-12-18)
Fixed
- Gooey now compiles for Windows. An indirect dependency,
appit, also needs to be updated to v0.1.1. Runningcargo updateshould be enough to updateappit.
v0.1.1 (2023-12-18)
This release only contains fixed links in the README. No code was changed.
v0.1.0 (2023-12-18)
This is the initial alpha release of Gooey.