Nick
11/22/2021, 4:41 PMuser
11/23/2021, 4:38 PMBig Chungus
11/23/2021, 7:07 PMuser
11/25/2021, 12:48 PMholgerbrandl
11/27/2021, 8:29 PMBig Chungus
11/28/2021, 9:54 AMtherealbluepandabear
11/29/2021, 4:24 AMRobert Jaros
11/29/2021, 4:23 PMJakob Löhnertz
11/30/2021, 5:11 PMmarcinmoskala
12/01/2021, 11:24 AMuser
12/02/2021, 1:18 PMuser
12/02/2021, 4:48 PMAaron Todd
12/02/2021, 6:52 PMMichael Grigoryan
12/02/2021, 7:04 PMtodd.ginsberg
12/02/2021, 10:02 PMMichael Grigoryan
12/03/2021, 4:10 AMBig Chungus
12/03/2021, 7:46 PMelye
12/04/2021, 3:10 AMDhaval Gondaliya
12/04/2021, 4:17 AMBig Chungus
12/05/2021, 3:00 AMprintln
in color (or not if it successfully detects missing support)!louiscad
12/06/2021, 12:23 AMuser
12/08/2021, 12:28 PMuser
12/08/2021, 3:38 PMuser
12/09/2021, 4:08 PMuser
12/10/2021, 11:38 AMuser
12/10/2021, 4:08 PMakuleshov7
12/11/2021, 10:18 PMNick
12/12/2021, 2:00 PMValueSlider
, Slider
and CircularSlider
were previously tied to a Double
. This meant it was not easy to force use cases where integer values would be more appropriate. This is now fixed, as these controls are now strongly typed to a numeric value instead of only supporting Double.
val slider = Slider(10 .. 20)
slider.value = 11.2 // will not compile since slider has a type of Int
More Flexible Layouts
Layouts are generally triggered whenever their container's size
changes or a child of the container has a bounds
change. But there are cases when this default behavior does not work as well. A good example is a Layout that depends on a child's idealSize
. Such a Layout won't be invoked when the idealSizes
change, and will be out of date in some cases.
This is now fixed by giving Layouts a chance to act when min/ideal-size changes for children of a Container. There are actually 3 new APIs that provide a lot of flexibility in how Layouts behave.
public fun requiresLayout(container: PositionableContainer, old: Size, new: Size): Boolean = true
public fun requiresLayout(child: Positionable, of: PositionableContainer, old: Rectangle, new: Rectangle): Boolean = false
public fun requiresLayout(child: Positionable, of: PositionableContainer, old: SizePreferences, new: SizePreferences): Boolean = false
Form Controls
• New switch
and switchList
form controls
• New spinner
form control
• New framed
form control to wrap other controls in a configurable container
• New check
form control with arbitrary view as annotation
• radioList
, checkList
, named
and labeled
form controls now allow a custom renderer and insets for their container
• sub-forms now allow custom Insets
and behavior
Ivan Dugalic
12/12/2021, 3:29 PM