StateLayer
The StateLayer can be used to create custom widget with a state indication like pressed or hovered. The state layer should be placed between the background and the content of the widget.
Properties
border_radius(in length): Defines the size of the radius. (default value: 0)pressed(in bool): Set totrueto display the state layer in the pressed state. (default value: false)has_hover(in bool): Set totrueto display the state layer in the hovered state. (default value: false)has_focus(in bool): Set totrueto display the state layer in the focused state. (default value: false)has_error(in bool): Set totrueto display the state layer in the error state. (default value: false)focus_padding(in length): Defines the padding of the focus border (default value: 2px)
Example
import { StateLayer } from "@vivi/magic.slint";
export component MyWidget inherits Rectangle {
width: 60px;
height: 20px;
background: green;
touch_area := TouchArea {}
StateLayer {
pressed: touch_area.pressed;
has_hover: touch_area.has_hover;
}
}
export component Example inherits Window {
width: 200px;
height: 100px;
MyWidget {}
}