Skip to main content

Button

Struct Button 

Source
pub struct Button { /* private fields */ }
Expand description

A clickable, focusable button. Activates on click, Enter or Space.

use std::cell::Cell;
use std::rc::Rc;
use ravenrs_widgets::{Button, ButtonStyle, IconName, Ui};

let saved = Rc::new(Cell::new(false));
let flag = saved.clone();
let button = Button::new("Save")
    .icon(IconName::Check)
    .style(ButtonStyle::Secondary)
    .on_click(move || flag.set(true));
let mut ui = Ui::new(button, ravenrs_style::Theme::raven_dark());
ui.update();

Implementations§

Source§

impl Button

Source

pub fn new(label: impl Into<String>) -> Button

A primary, medium button with this label. An empty label makes it icon-only.

Source

pub fn accessible_name(self, name: impl Into<String>) -> Button

Sets the name screen readers announce, instead of the label. Icon-only buttons should always have one.

Source

pub fn accessible_description(self, text: impl Into<String>) -> Button

Sets what screen readers say after its name, such as what it does. Its shortcut and whether it is busy follow.

Source

pub fn on_click(self, handler: impl Fn() + 'static) -> Button

Runs handler when the button is clicked or activated with Enter or Space.

Source

pub fn style(self, style: ButtonStyle) -> Button

Sets the visual emphasis (Primary by default).

Source

pub fn size(self, size: ButtonSize) -> Button

Sets the height and padding (Medium by default).

Source

pub fn icon(self, icon: IconName) -> Button

An icon before the label.

Source

pub fn trailing_icon(self, icon: IconName) -> Button

An icon after the label (e.g. a chevron for menus).

Source

pub fn disabled(self, disabled: bool) -> Button

Greys the button out and ignores clicks and focus.

Source

pub fn full_width(self) -> Button

Stretches across the parent stack.

Source

pub fn loading(self, loading: bool) -> Button

Shows an animated indicator over the content, which keeps its place so that the button does not change width, and ignores clicks until it is done. It keeps keyboard focus, and screen readers hear that it is loading and unavailable.

Source

pub fn selected(self, selected: bool) -> Button

Lights the button up as being on, and announces it as a button that toggles. What a click does is still up to Self::on_click.

Source

pub fn shortcut(self, keys: impl Into<String>) -> Button

Shows a key cap after the label, in the label’s color, such as "F8". It only shows the key: BuildCx::shortcut makes the key work.

Trait Implementations§

Source§

impl Debug for Button

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl View for Button

Source§

fn build(&self, cx: &mut BuildCx<'_>) -> NodeId

Creates this view’s node for the current build.
Source§

fn type_name(&self) -> &'static str

The name the diagnostics panel shows this view’s cost under.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Button

§

impl !Send for Button

§

impl !Sync for Button

§

impl !UnwindSafe for Button

§

impl Freeze for Button

§

impl Unpin for Button

§

impl UnsafeUnpin for Button

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,

Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<V> ViewExt for V
where V: View,

Source§

fn padding(self, padding: impl Into<Insets>) -> Styled<Self>

Adds padding inside the box, in logical pixels.
Source§

fn background(self, fill: impl Into<Fill>) -> Styled<Self>

Paints a background behind the content.
Source§

fn frame(self, width: Option<f32>, height: Option<f32>) -> Styled<Self>

Fixes the width and/or height in logical pixels; None keeps the content size.
Source§

fn width(self, width: f32) -> Styled<Self>

Fixes the width in logical pixels.
Source§

fn height(self, height: f32) -> Styled<Self>

Fixes the height in logical pixels.
Source§

fn grow(self, grow: f32) -> Styled<Self>

Takes a share of the free space in the parent stack.
Source§

fn stretch(self) -> Styled<Self>

Stretches across the parent stack’s cross axis.
Source§

fn centered(self) -> Styled<Self>

Centers the content inside the box.
Source§

fn tooltip(self, text: impl Into<String>) -> Tooltip<Self>

Shows text above the view while the pointer is over it; see Tooltip.
Source§

fn opacity(self, opacity: f32) -> Faded<Self>

Draws the view and everything in it at this opacity, from 0.0 to 1.0, easing to it when it changes. Layout and input stay as they are; see Faded.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more