pub struct Switch { /* private fields */ }
Expand description
A switch that toggles a bool
.
Implementations§
Source§impl Switch
impl Switch
Sourcepub fn new() -> Switch
pub fn new() -> Switch
Create a new Switch
.
Examples found in repository?
examples/switches.rs (line 37)
34fn build_widget() -> impl Widget<DemoState> {
35 let mut col = Flex::column();
36 let mut row = Flex::row();
37 let switch = LensWrap::new(Switch::new(), DemoState::value);
38 let check_box = LensWrap::new(Checkbox::new(""), DemoState::value);
39 let switch_label = Label::new("Setting label");
40
41 row.add_child(Padding::new(5.0, switch_label));
42 row.add_child(Padding::new(5.0, switch));
43 row.add_child(Padding::new(5.0, check_box));
44
45 let stepper = LensWrap::new(
46 Stepper::new()
47 .with_range(0.0, 10.0)
48 .with_step(0.5)
49 .with_wraparound(false),
50 DemoState::stepper_value,
51 );
52
53 let mut textbox_row = Flex::row();
54 // TODO: Replace Parse usage with TextBox::with_formatter
55 #[allow(deprecated)]
56 let textbox = LensWrap::new(
57 Parse::new(TextBox::new()),
58 DemoState::stepper_value.map(|x| Some(*x), |x, y| *x = y.unwrap_or(0.0)),
59 );
60 textbox_row.add_child(Padding::new(5.0, textbox));
61 textbox_row.add_child(Padding::new(5.0, stepper.center()));
62
63 let mut label_row = Flex::row();
64
65 let label = Label::new(|data: &DemoState, _env: &_| {
66 format!("Stepper value: {0:.2}", data.stepper_value)
67 });
68
69 label_row.add_child(Padding::new(5.0, label));
70
71 col.set_main_axis_alignment(MainAxisAlignment::Center);
72 col.add_child(Padding::new(5.0, row));
73 col.add_child(Padding::new(5.0, textbox_row));
74 col.add_child(Padding::new(5.0, label_row));
75 col.center()
76}
More examples
examples/flex.rs (line 273)
241fn build_widget(state: &Params) -> Box<dyn Widget<AppState>> {
242 let mut flex = match state.axis {
243 FlexType::Column => Flex::column(),
244 FlexType::Row => Flex::row(),
245 }
246 .cross_axis_alignment(state.cross_alignment)
247 .main_axis_alignment(state.main_alignment)
248 .must_fill_main_axis(state.fill_major_axis);
249
250 flex.add_child(
251 TextBox::new()
252 .with_placeholder("Sample text")
253 .lens(DemoState::input_text),
254 );
255 space_if_needed(&mut flex, state);
256
257 flex.add_child(
258 Button::new("Clear").on_click(|_ctx, data: &mut DemoState, _env| {
259 data.input_text.clear();
260 data.enabled = false;
261 data.volume = 0.0;
262 }),
263 );
264
265 space_if_needed(&mut flex, state);
266
267 flex.add_child(
268 Label::new(|data: &DemoState, _: &Env| data.input_text.clone()).with_text_size(32.0),
269 );
270 space_if_needed(&mut flex, state);
271 flex.add_child(Checkbox::new("Demo").lens(DemoState::enabled));
272 space_if_needed(&mut flex, state);
273 flex.add_child(Switch::new().lens(DemoState::enabled));
274 space_if_needed(&mut flex, state);
275 flex.add_child(Slider::new().lens(DemoState::volume));
276 space_if_needed(&mut flex, state);
277 flex.add_child(ProgressBar::new().lens(DemoState::volume));
278 space_if_needed(&mut flex, state);
279 flex.add_child(
280 Stepper::new()
281 .with_range(0.0, 1.0)
282 .with_step(0.1)
283 .with_wraparound(true)
284 .lens(DemoState::volume),
285 );
286
287 let mut flex = SizedBox::new(flex);
288 if state.fix_minor_axis {
289 match state.axis {
290 FlexType::Row => flex = flex.height(200.),
291 FlexType::Column => flex = flex.width(200.),
292 }
293 }
294 if state.fix_major_axis {
295 match state.axis {
296 FlexType::Row => flex = flex.width(600.),
297 FlexType::Column => flex = flex.height(300.),
298 }
299 }
300
301 let flex = flex
302 .padding(8.0)
303 .border(Color::grey(0.6), 2.0)
304 .rounded(5.0)
305 .lens(AppState::demo_state);
306
307 if state.debug_layout {
308 flex.debug_paint_layout().boxed()
309 } else {
310 flex.boxed()
311 }
312}
examples/disabled.rs (line 89)
44fn main_widget() -> impl Widget<AppData> {
45 Flex::column()
46 .with_child(named_child("text:", TextBox::new().lens(AppData::text)))
47 .with_default_spacer()
48 .with_child(
49 named_child("text (disabled):", TextBox::new().lens(AppData::text))
50 .disabled_if(|data, _| data.disabled),
51 )
52 .with_default_spacer()
53 .with_child(named_child("text:", TextBox::new().lens(AppData::text)))
54 .with_default_spacer()
55 .with_child(
56 named_child("text (disabled):", TextBox::new().lens(AppData::text))
57 .disabled_if(|data, _| data.disabled),
58 )
59 .with_default_spacer()
60 .with_default_spacer()
61 .with_child(
62 named_child(
63 "value (disabled):",
64 Slider::new().with_range(0.0, 10.0).lens(AppData::value),
65 )
66 .disabled_if(|data, _| data.disabled),
67 )
68 .with_default_spacer()
69 .with_child(
70 named_child(
71 "value (disabled):",
72 Stepper::new()
73 .with_range(0.0, 10.0)
74 .with_step(0.5)
75 .lens(AppData::value),
76 )
77 .disabled_if(|data, _| data.disabled),
78 )
79 .with_default_spacer()
80 .with_child(
81 named_child(
82 "option (disabled):",
83 Checkbox::new("option").lens(AppData::option),
84 )
85 .disabled_if(|data, _| data.disabled),
86 )
87 .with_default_spacer()
88 .with_child(
89 named_child("option (disabled):", Switch::new().lens(AppData::option))
90 .disabled_if(|data, _| data.disabled),
91 )
92 .with_default_spacer()
93 .with_child(
94 Flex::row()
95 .with_child(
96 Button::new("-")
97 .on_click(|_, data: &mut f64, _| *data -= 1.0)
98 .disabled_if(|data, _| *data < 1.0),
99 )
100 .with_default_spacer()
101 .with_child(Label::dynamic(|data: &f64, _| data.to_string()))
102 .with_default_spacer()
103 .with_child(
104 Button::new("+")
105 .on_click(|_, data: &mut f64, _| *data += 1.0)
106 .disabled_if(|data, _| *data > 9.0),
107 )
108 .lens(AppData::value)
109 .disabled_if(|data: &AppData, _| data.disabled),
110 )
111 .with_default_spacer()
112 .with_default_spacer()
113 .with_default_spacer()
114 .with_child(Checkbox::new("disabled").lens(AppData::disabled))
115 .with_default_spacer()
116 .cross_axis_alignment(CrossAxisAlignment::End)
117 .align_horizontal(UnitPoint::CENTER)
118}
Trait Implementations§
Source§impl Widget<bool> for Switch
impl Widget<bool> for Switch
Source§fn event(
&mut self,
ctx: &mut EventCtx<'_, '_>,
event: &Event,
data: &mut bool,
env: &Env,
)
fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, data: &mut bool, env: &Env, )
Handle an event. Read more
Source§fn lifecycle(
&mut self,
ctx: &mut LifeCycleCtx<'_, '_>,
event: &LifeCycle,
_data: &bool,
env: &Env,
)
fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, _data: &bool, env: &Env, )
Handle a life cycle notification. Read more
Source§fn update(
&mut self,
ctx: &mut UpdateCtx<'_, '_>,
old_data: &bool,
data: &bool,
_env: &Env,
)
fn update( &mut self, ctx: &mut UpdateCtx<'_, '_>, old_data: &bool, data: &bool, _env: &Env, )
Source§fn layout(
&mut self,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
_data: &bool,
env: &Env,
) -> Size
fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, _data: &bool, env: &Env, ) -> Size
Compute layout. Read more
Source§fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &bool, env: &Env)
fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &bool, env: &Env)
Paint the widget appearance. Read more
Source§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 !Freeze for Switch
impl !RefUnwindSafe for Switch
impl !Send for Switch
impl !Sync for Switch
impl Unpin for Switch
impl !UnwindSafe for Switch
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
Source§fn round_into(self) -> U
fn round_into(self) -> U
Performs the conversion.
Source§impl<T, W> TestWidgetExt<T> for W
impl<T, W> TestWidgetExt<T> for W
Source§impl<T, W> WidgetExt<T> for W
impl<T, W> WidgetExt<T> for W
Source§fn align_left(self) -> Align<T>
fn align_left(self) -> Align<T>
Wrap this widget in an
Align
widget, configured to align left.Source§fn align_right(self) -> Align<T>
fn align_right(self) -> Align<T>
Wrap this widget in an
Align
widget, configured to align right.Source§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.Source§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.Source§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.Source§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.Source§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 heightSource§fn expand_width(self) -> SizedBox<T>
fn expand_width(self) -> SizedBox<T>
Source§fn expand_height(self) -> SizedBox<T>
fn expand_height(self) -> SizedBox<T>
Source§fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§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>
Source§fn controller<C: Controller<T, Self>>(
self,
controller: C,
) -> ControllerHost<Self, C>
fn controller<C: Controller<T, Self>>( self, controller: C, ) -> ControllerHost<Self, C>
Wrap this widget with the provided
Controller
.Source§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
Source§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>>
Source§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.Source§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 moreSource§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.
Source§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 moreSource§fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
Source§fn disabled_if(
self,
disabled_if: impl Fn(&T, &Env) -> bool + 'static,
) -> DisabledIf<T, Self>
fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static, ) -> DisabledIf<T, Self>
Wrap this widget in a
DisabledIf
widget. Read more