Skip to main content

ButtonFace

Struct ButtonFace 

pub struct ButtonFace<'a> { /* private fields */ }
Expand description

An immediate-mode button: the Button look for a canvas host that owns its own hit-testing. Built fluently: ButtonFace::new(rect, "Save").role(ButtonRole::Primary).hovered(hit).

Size the rect from the face itself, so rect and glyphs agree at every scale: ButtonFace::height for the height, ButtonFace::intrinsic_width for the width, and hit-test with ButtonFace::hit_rect (never smaller than the minimum pointer target).

Implementations§

§

impl<'a> ButtonFace<'a>

pub fn new(rect: Rect, label: &'a str) -> ButtonFace<'a>

pub fn icon_only(rect: Rect, icon: Icon, name: &'a str) -> ButtonFace<'a>

An icon-only face; name is its accessible name.

pub fn role(self, role: ButtonRole) -> ButtonFace<'a>

What the button does; the role decides its whole look.

pub fn tone(self, tone: Tone) -> ButtonFace<'a>

What the face says means something (Tone::Neutral is no tone): the icon and the label take the tone’s colour.

pub fn icon(self, icon: Icon) -> ButtonFace<'a>

pub fn control_size(self, size: ControlSize) -> ButtonFace<'a>

The face’s height and label role.

pub fn shortcut_hint(self, shortcut: Shortcut) -> ButtonFace<'a>

A trailing keyboard shortcut in the platform’s keycap legends.

pub fn detail(self, detail: &'a str) -> ButtonFace<'a>

A fact told at the face’s trailing edge, in the secondary ink: the label then leads.

pub fn toggled(self, on: bool) -> ButtonFace<'a>

A toggle that is on: the face stands on the selection lift.

pub fn hovered(self, v: bool) -> ButtonFace<'a>

pub fn pressed(self, v: bool) -> ButtonFace<'a>

pub fn focused(self, v: bool) -> ButtonFace<'a>

pub fn disabled(self, v: bool) -> ButtonFace<'a>

pub fn accessible_name(self, name: &'a str) -> ButtonFace<'a>

For callers that expose their own accessibility node for the region.

pub fn spoken_name(&self) -> &str

The visible label, or the explicit accessible_name when it’s empty.

pub fn colors( &self, theme: &Theme, ) -> (AlphaColor<Srgb>, Option<AlphaColor<Srgb>>, AlphaColor<Srgb>)

The resolved palette without painting: (fill, edge, ink).

pub fn height(size: ControlSize, theme: &Theme) -> f64

The height of a face of size in theme.

pub fn intrinsic_width(&self, text: &mut TextRenderer, theme: &Theme) -> f64

The narrowest rect width that shows this face’s icon, label and shortcut without eliding.

pub fn icon_rect(&self, text: &mut TextRenderer, theme: &Theme) -> Option<Rect>

Where this face draws its icon: on a labelled face it leads the label, the two centred together. A host that paints its own mark in the icon’s place (a colour swatch over the choice it names) puts it exactly here, so the two never stand side by side. Ignores a shortcut hint.

pub fn hit_rect(&self, theme: &Theme) -> Rect

Where a pointer activates this face: its rect, grown about its centre to the minimum pointer target.

pub fn contains(&self, theme: &Theme, point: Point) -> bool

Whether point activates this face: inside the shape the theme’s painter set draws it as, or else in its hit rect.

Auto Trait Implementations§

§

impl<'a> Freeze for ButtonFace<'a>

§

impl<'a> RefUnwindSafe for ButtonFace<'a>

§

impl<'a> Send for ButtonFace<'a>

§

impl<'a> Sync for ButtonFace<'a>

§

impl<'a> Unpin for ButtonFace<'a>

§

impl<'a> UnsafeUnpin for ButtonFace<'a>

§

impl<'a> UnwindSafe for ButtonFace<'a>

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
§

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

§

fn as_any(&self) -> &(dyn Any + 'static)

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<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSend for T
where T: Any + Send,

§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

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<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

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

§

fn vzip(self) -> V

§

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
§

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

§

impl<T> Fruit for T
where T: Send + Downcast,

§

impl<T> MaybeSendSync for T
where T: Send + Sync + ?Sized,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,