pub struct IconButton { /* private fields */ }Expand description
An icon-only button component
§Examples
ⓘ
// With text/emoji icon
IconButton::new("btn", "🔊")
.variant(IconButtonVariant::Ghost)
.on_click(|window, cx| { /* handle click */ })
// With custom element (e.g., SVG icon)
IconButton::with_child("btn", my_svg_icon)
.size(IconButtonSize::Lg)
.rounded_full()
.theme(my_theme)Implementations§
Source§impl IconButton
impl IconButton
Sourcepub fn new(id: impl Into<ElementId>, icon: impl Into<SharedString>) -> Self
pub fn new(id: impl Into<ElementId>, icon: impl Into<SharedString>) -> Self
Create a new icon button with a text/emoji icon
Sourcepub fn with_child(id: impl Into<ElementId>, child: impl IntoElement) -> Self
pub fn with_child(id: impl Into<ElementId>, child: impl IntoElement) -> Self
Create a new icon button with a custom child element (e.g., SVG icon)
Sourcepub fn size(self, size: IconButtonSize) -> Self
pub fn size(self, size: IconButtonSize) -> Self
Set the button size
Sourcepub fn variant(self, variant: IconButtonVariant) -> Self
pub fn variant(self, variant: IconButtonVariant) -> Self
Set the button variant
Sourcepub fn on_click(self, handler: impl Fn(&mut Window, &mut App) + 'static) -> Self
pub fn on_click(self, handler: impl Fn(&mut Window, &mut App) + 'static) -> Self
Set click handler
Sourcepub fn rounded_full(self) -> Self
pub fn rounded_full(self) -> Self
Use fully rounded corners (circular button)
Sourcepub fn padding(self, padding: Pixels) -> Self
pub fn padding(self, padding: Pixels) -> Self
Set custom padding (overrides default size-based padding)
Sourcepub fn theme(self, theme: IconButtonTheme) -> Self
pub fn theme(self, theme: IconButtonTheme) -> Self
Set the button theme
Trait Implementations§
Source§impl IntoElement for IconButton
impl IntoElement for IconButton
Source§type Element = Stateful<Div>
type Element = Stateful<Div>
The specific type of element into which the implementing type is converted.
Useful for converting other types into elements automatically, like Strings
Source§fn into_element(self) -> Self::Element
fn into_element(self) -> Self::Element
Convert self into a type that implements
Element.Source§fn into_any_element(self) -> AnyElement
fn into_any_element(self) -> AnyElement
Convert self into a dynamically-typed
AnyElement.Auto Trait Implementations§
impl Freeze for IconButton
impl !RefUnwindSafe for IconButton
impl !Send for IconButton
impl !Sync for IconButton
impl Unpin for IconButton
impl !UnwindSafe for IconButton
Blanket Implementations§
Source§impl<E> AnimationExt for Ewhere
E: IntoElement + 'static,
impl<E> AnimationExt for Ewhere
E: IntoElement + 'static,
Source§fn with_animation(
self,
id: impl Into<ElementId>,
animation: Animation,
animator: impl Fn(Self, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
fn with_animation(
self,
id: impl Into<ElementId>,
animation: Animation,
animator: impl Fn(Self, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
Render this component or element with an animation
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn 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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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.Source§fn as_any(&self) -> &(dyn Any + 'static)
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.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.Source§impl<T> FluentBuilder for Twhere
T: IntoElement,
impl<T> FluentBuilder for Twhere
T: IntoElement,
Source§fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
Imperatively modify self with the given closure.
Source§fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
Conditionally modify self with the given closure.
Source§fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
Conditionally modify self with the given closure.
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> 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>
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 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>
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