pub struct Style(/* private fields */);Expand description
W Represents a set of properties that can be applied to any styleable widget.
Style can be instantiated using the same syntax as any widget, but it produces a StyleBuilder
instance instead of a widget. Widgets that have StyleMix<P> can be modified using properties
defined in a style, the properties are dynamically spliced into each widget instance.
§Extend/Replace
Style instances extend the contextual style by default, meaning all properties set on the style are inserted over
the parent style, so properties set on the contextual style that are not reset in the new style are retained. You
can set replace on a style to true to fully remove all contextual properties and only use the
new style properties.
§Named Styles
Styleable widgets have one contextual style by default, usually defined by impl_style_fn! the style_fn property
implements the extend/replace mixing of the style, tracked by a STYLE_FN_VAR.
This same pattern can be used to define alternate named styles, these styles set named_style_fn to another
context variable that defines the style context, on widget instantiation this other context will be used instead of the default one.
You can use impl_named_style_fn! to declare most of the boilerplate.
§Inherit Style
Note that you can declare a custom style widget using the same inheritance mechanism of normal widgets, as long
as they build to StyleBuilder. This is different from the extend/replace mechanism as it operates on the style
type, not the instances. A style that inherits a named_style_fn will not inherit that named context either, each named
context property is strongly associated with a single style type only.
Implementations§
Source§impl Style
impl Style
Sourcepub fn widget_new() -> Self
pub fn widget_new() -> Self
Start building a new instance.
Sourcepub fn widget_type() -> WidgetType
pub fn widget_type() -> WidgetType
Gets the widget type info.
Source§impl Style
impl Style
Sourcepub fn widget_build(&mut self) -> StyleBuilder
pub fn widget_build(&mut self) -> StyleBuilder
Build the style.
Source§impl Style
impl Style
Sourcepub fn named_style_fn(&self, name: impl IntoValue<NamedStyleVar>)
pub fn named_style_fn(&self, name: impl IntoValue<NamedStyleVar>)
B Set in the default properties of a named style to define the contextual variable for that style.
During widget instantiation, if this is set by default in a style the contextual style is used as the defaults and only the properties set on the style instance replace them.
This property is part of the named styles pattern, see impl_named_style_fn! for more details.
Note that this property expects a ContextVar<StyleFn> as a value, not a variable directly, it will also only work if
set in the default properties of a style type.
Methods from Deref<Target = NonWidgetBase>§
Sourcepub fn widget_builder(&mut self) -> &mut WidgetBuilder
pub fn widget_builder(&mut self) -> &mut WidgetBuilder
Returns a mutable reference to the widget builder.
Sourcepub fn widget_when(&mut self) -> Option<&mut WhenInfo>
pub fn widget_when(&mut self) -> Option<&mut WhenInfo>
Returns a mutable reference to the when block if called inside a when block.
Sourcepub fn widget_take(&mut self) -> WidgetBuilder
pub fn widget_take(&mut self) -> WidgetBuilder
Takes the widget builder, finishing the widget macro build.
After this call trying to set a property using self will panic,
the returned builder can still be manipulated directly.
Sourcepub fn widget_build(&mut self) -> WidgetBuilder
pub fn widget_build(&mut self) -> WidgetBuilder
Finishes the build.
This is the fallback build that simply returns the builder, inheritors should override this method.
Sourcepub fn widget_importance(&mut self) -> &mut Importance
pub fn widget_importance(&mut self) -> &mut Importance
Returns a mutable reference to the importance of the next property assigns, unsets or when blocks.
Note that during the widget_intrinsic call this is Importance::WIDGET and after it is Importance::INSTANCE.
Sourcepub fn start_when_block(
&mut self,
inputs: Box<[WhenInput]>,
state: Var<bool>,
expr: &'static str,
location: SourceLocation,
)
pub fn start_when_block( &mut self, inputs: Box<[WhenInput]>, state: Var<bool>, expr: &'static str, location: SourceLocation, )
Start building a when block, all properties set after this call are pushed in the when block.
Sourcepub fn end_when_block(&mut self)
pub fn end_when_block(&mut self)
End the current when block, all properties set after this call are pushed in the widget.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Style
impl !RefUnwindSafe for Style
impl Send for Style
impl !Sync for Style
impl !Unpin for Style
impl !UnwindSafe for Style
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more