Struct scl_gui_widgets::widgets::Button
source · pub struct Button<T> { /* private fields */ }
Expand description
A button with a text label.
Implementations§
source§impl<T: Data> Button<T>
impl<T: Data> Button<T>
sourcepub fn from_label(label: Label<T>) -> Button<T>
pub fn from_label(label: Label<T>) -> Button<T>
Create a new button with the provided Label
.
Use the .on_click
method to provide a closure to be called when the
button is clicked.
Examples
use druid::Color;
use druid::widget::{Button, Label};
let button = Button::from_label(Label::new("Increment").with_text_color(Color::grey(0.5))).on_click(|_ctx, data: &mut u32, _env| {
*data += 1;
});
sourcepub fn dynamic(text: impl Fn(&T, &Env) -> String + 'static) -> Self
pub fn dynamic(text: impl Fn(&T, &Env) -> String + 'static) -> Self
Construct a new dynamic button.
The contents of this button are generated from the data using a closure.
This is provided as a convenience; a closure can also be passed to new
,
but due to limitations of the implementation of that method, the types in
the closure need to be annotated, which is not true for this method.
Examples
The following are equivalent.
use druid::Env;
use druid::widget::Button;
let button1: Button<u32> = Button::new(|data: &u32, _: &Env| format!("total is {}", data));
let button2: Button<u32> = Button::dynamic(|data, _| format!("total is {}", data));
sourcepub fn on_click(
self,
f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static
) -> ControllerHost<Self, Click<T>>
pub fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static ) -> ControllerHost<Self, Click<T>>
Provide a closure to be called when this button is clicked.
sourcepub fn set_accent(&mut self, value: bool)
pub fn set_accent(&mut self, value: bool)
Use accent color as button color
sourcepub fn with_accent(self, value: bool) -> Self
pub fn with_accent(self, value: bool) -> Self
Builder style to use accent color as button color
Trait Implementations§
source§impl<T: Data> Widget<T> for Button<T>
impl<T: Data> Widget<T> for Button<T>
source§fn event(
&mut self,
ctx: &mut EventCtx<'_, '_>,
event: &Event,
_data: &mut T,
_env: &Env
)
fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, _data: &mut T, _env: &Env )
Handle an event. Read more
source§fn lifecycle(
&mut self,
ctx: &mut LifeCycleCtx<'_, '_>,
event: &LifeCycle,
data: &T,
env: &Env
)
fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, data: &T, env: &Env )
Handle a life cycle notification. Read more
source§fn layout(
&mut self,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env
) -> Size
fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> Size
Compute layout. Read more
source§fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)
fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)
Paint the widget appearance. Read more
§fn compute_max_intrinsic(
&mut self,
axis: Axis,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env
) -> f64
fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> f64
Computes max intrinsic/preferred dimension of a widget on the provided axis. Read more
Auto Trait Implementations§
impl<T> !RefUnwindSafe for Button<T>
impl<T> !Send for Button<T>
impl<T> !Sync for Button<T>
impl<T> Unpin for Button<T>
impl<T> !UnwindSafe for Button<T>
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
Mutably borrows from an owned value. Read more
§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>
§impl<T> RoundFrom<T> for T
impl<T> RoundFrom<T> for T
§fn round_from(x: T) -> T
fn round_from(x: T) -> T
Performs the conversion.
§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,
§fn round_into(self) -> U
fn round_into(self) -> U
Performs the conversion.
§impl<T, W> TestWidgetExt<T> for Wwhere
T: Data,
W: Widget<T> + 'static,
impl<T, W> TestWidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,
source§impl<T, W> WidgetExt<T> for Wwhere
T: Data,
W: Widget<T> + 'static,
impl<T, W> WidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,
source§fn on_command<CT: 'static>(
self,
selector: Selector<CT>,
handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static
) -> ControllerHost<Self, OnCmd<CT, T>>
fn on_command<CT: 'static>( self, selector: Selector<CT>, handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static ) -> ControllerHost<Self, OnCmd<CT, T>>
用当该组件接收到指定的 [
druid::Command
] 时产生回调的控制器 crate::widgets::OnCmd
包裹当前组件source§fn on_notify<CT: 'static>(
self,
selector: Selector<CT>,
handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static
) -> OnNotify<CT, T>
fn on_notify<CT: 'static>( self, selector: Selector<CT>, handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static ) -> OnNotify<CT, T>
用当该组件接收到指定的 [
druid::Notification
] 时产生回调的控制器 crate::widgets::OnNotify
包裹当前组件§impl<T, W> WidgetExt<T> for Wwhere
T: Data,
W: Widget<T> + 'static,
impl<T, W> WidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,
§fn align_left(self) -> Align<T>
fn align_left(self) -> Align<T>
Wrap this widget in an [
Align
] widget, configured to align left.§fn align_right(self) -> Align<T>
fn align_right(self) -> Align<T>
Wrap this widget in an [
Align
] widget, configured to align right.§fn align_vertical(self, align: UnitPoint) -> Align<T>
fn align_vertical(self, align: UnitPoint) -> Align<T>
Wrap this widget in an [
Align
] widget, configured to align vertically.§fn align_horizontal(self, align: UnitPoint) -> Align<T>
fn align_horizontal(self, align: UnitPoint) -> Align<T>
Wrap this widget in an [
Align
] widget, configured to align horizontally.§fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
Wrap this widget in a [
SizedBox
] with an explicit width.§fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
Wrap this widget in a [
SizedBox
] with an explicit height.§fn fix_size(
self,
width: impl Into<KeyOrValue<f64>>,
height: impl Into<KeyOrValue<f64>>
) -> SizedBox<T>
fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>> ) -> SizedBox<T>
Wrap this widget in an [
SizedBox
] with an explicit width and height§fn expand(self) -> SizedBox<T>
fn expand(self) -> SizedBox<T>
Wrap this widget in a [
SizedBox
] with an infinite width and height. Read more§fn expand_width(self) -> SizedBox<T>
fn expand_width(self) -> SizedBox<T>
Wrap this widget in a [
SizedBox
] with an infinite width. Read more§fn expand_height(self) -> SizedBox<T>
fn expand_height(self) -> SizedBox<T>
Wrap this widget in a [
SizedBox
] with an infinite width. Read more§fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
§fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
§fn border(
self,
color: impl Into<KeyOrValue<Color>>,
width: impl Into<KeyOrValue<f64>>
) -> Container<T>
fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>> ) -> Container<T>
Wrap this widget in a [
Container
] with the given border. Read more§fn env_scope(self, f: impl Fn(&mut Env, &T) + 'static) -> EnvScope<T, Self>
fn env_scope(self, f: impl Fn(&mut Env, &T) + 'static) -> EnvScope<T, Self>
Wrap this widget in a [
EnvScope
] widget, modifying the parent
[Env
] with the provided closure.§fn controller<C>(self, controller: C) -> ControllerHost<Self, C>where
C: Controller<T, Self>,
fn controller<C>(self, controller: C) -> ControllerHost<Self, C>where C: Controller<T, Self>,
Wrap this widget with the provided [
Controller
].§fn on_added(
self,
f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static
) -> ControllerHost<Self, Added<T, Self>>
fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static ) -> ControllerHost<Self, Added<T, Self>>
Provide a closure that will be called when this widget is added to the widget tree. Read more
§fn on_click(
self,
f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static
) -> ControllerHost<Self, Click<T>>
fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static ) -> ControllerHost<Self, Click<T>>
Control the events of this widget with a [
Click
] widget. The closure
provided will be called when the widget is clicked with the left mouse
button. Read more§fn debug_paint_layout(self) -> EnvScope<T, Self>
fn debug_paint_layout(self) -> EnvScope<T, Self>
Draw the
layout
Rect
s of this widget and its children.§fn debug_widget_id(self) -> EnvScope<T, Self>
fn debug_widget_id(self) -> EnvScope<T, Self>
Display the
WidgetId
s for this widget and its children, when hot. Read more§fn debug_invalidation(self) -> DebugInvalidation<T, Self>
fn debug_invalidation(self) -> DebugInvalidation<T, Self>
Draw a color-changing rectangle over this widget, allowing you to see the
invalidation regions.
§fn debug_widget(self) -> EnvScope<T, Self>
fn debug_widget(self) -> EnvScope<T, Self>
Set the
DEBUG_WIDGET
env variable for this widget (and its descendants). Read more§fn lens<S, L>(self, lens: L) -> LensWrap<S, T, L, Self>where
S: Data,
L: Lens<S, T>,
fn lens<S, L>(self, lens: L) -> LensWrap<S, T, L, Self>where S: Data, L: Lens<S, T>,
Wrap this widget in a [
LensWrap
] widget for the provided [Lens
].