Releases: rafern/lazy-widgets
Releases · rafern/lazy-widgets
0.10.9: Added Root.tabFocusable, stretch layers
Changes
- Added Root.tabFocusable
- true by default, to keep backwards-compatible behaviour
- when false, KeyboardDriver will not dispatch any TabSelectEvent to the Root
- LayeredContainer now stretches all layers to fit the final container dimensions
- LayeredContainer now avoids the helper iterators internally. This should not cause any changes to the end-user
- Added insertValueIntoOrderedSubsetList helper function (moved from KeyboardDriver)
0.10.8: Hotfix
Fixes
- Fixed missing repaint when changing Slider#minValue/maxValue
0.10.7: Bug fixes and more exposed Slider properties
Changes
- Slider minValue, maxValue and snapIncrement are now read-write instead of read-only
Fixes
- Removed optimisation that caused bad BaseLabel width
- Fixed bad TextInput cursor position after layout change
0.10.6: Single-pass layout resolution and bug fixes
Changes
- The layout resolution algorithm was changed again
- Instead of doing 1-2 passes (depending on Root layout constraints), it now only does 1 pass
- The flexbox layout resolution is now also more generic, instead of having 4 big special cases
- Due to the aforementioned change, Widget.resolveDimensionsAsTop is now deprecated
- Some minor refactoring
Fixes
- Fixed text measuring edge-case
- Measuring anywhere except the start or end of a width-overriding TextRenderGroup would lead to incorrect measurements
- This was mostly seen when typing multiple spaces in a TextInput and moving the cursor around
- Fixed flexbox cross-axis stretching (affects FlexAlignment.Stretch and FlexAlignment.SoftStretch)
0.10.5: EffectImageBitmap and broader image support
Changes
- Support CanvasImageSource in Icon widget (in theory, not properly tested; please let me know if there are issues)
- Added AsyncImageBitmap
- Added EffectImageBitmap; lets you tint images
0.10.4: Alignment.SoftStretch
Changes
- Added Alignment.SoftStretch; like Alignment.Stretch, but avoids using the container maximum axis length
0.10.3: Hotfix
Fixes
- Fixed vertical slider widgets
0.10.2: Hotfix
Fixes
- Use
anonymous
crossOrigin on images and videos to prevent tainted canvas
0.10.1: Hotfix
Fixes
- Fixed bad interaction between
flexBasis
and text widgets- Cross-length of multi-containers was not being re-measured after widgets were grown or shrunk, causing cross-lengths to grow unnecessarily
0.10.0: More layout system improvements
Changes
- Improved flexbox system
- Flexbox growing now applies to a target length instead of a maximum length. This means that it's going to be based on the minimum length most of the time, except for when the maximum length is exceeded (which will cause shrinking)
- Added
flexShrink
; if > 0, then the widget will be shrunk to fit the constraints of the container, and the shrunk amount will be relative to sibling widgets'flexShrink
, just like theflex
property - Added
flexBasis
; if not null, then overrides the widget's initial main axis length, independent of whether or not this would violate the layout constraints of the widget. Useful for, for example, distributing space exactly 50/50 between two growing widgets, by setting theflexBasis
to 0 andflex
to 1 on each widget
- Removed
ArtificialConstraint
widget;Widget
class now has built-in constraints- You can now specify a
minWidth
,minHeight
,maxWidth
andmaxHeight
via the properties object, or by setting it in the widget directly
- You can now specify a
- Added
ChildToParent
axis coupling forViewportWidget
:- Uni-directional coupling from the child to the parent. The child's resolved axis length will be used as the
ViewportWidget
's minimum axis length. - You probably want to use this for scrollable viewports affecting layouts with unknown sizes
- Uni-directional coupling from the child to the parent. The child's resolved axis length will be used as the
- Renamed
Uni
axis coupling toParentToChild
, but keptUni
as an alias. The alias is deprecated and will be removed in the future - Removed a bunch of convenience widgets that were unnecessarily bloating the library:
BaseLabelledTextInput
LabelledCheckbox
LabelledRadioButton
LabelledTextInput
LiveLabelledCheckbox
LiveLabelledRadioButton
LiveLabelledTextInput
- All virtual keyboard widgets no longer have
minWidth
andminHeight
arguments, due to the aforementioned changes - All virtual keyboard widgets no longer use
ArtificialConstraint
, so you no longer access its button viachild
; just accessthis
instead - Default container alignment was changed to
Stretch
on both axes - Deprecated
Center
andMargin
widgets; prefer using theContainer
widget directly