pub struct PairButton<'a> {
pub icon: &'a Icon,
pub tooltip: &'a str,
pub arrow_tooltip: &'a str,
pub is_icon_active: bool,
pub is_expanded: bool,
}Expand description
Pair button: [icon button | arrow button]
Layout: [left_padding | icon centered | arrow]
- Total width: responsive (default 48px)
- Total height: icon_size + padding*2 (default 48px)
- Arrow width: padding (10px)
- Left padding: padding (10px)
§Example
let btn = PairButton {
icon: &icons::ERASER,
tooltip: "Cross cursor",
arrow_tooltip: "More cursors",
is_icon_active: false,
is_expanded: false,
};
let response = btn.show(ui, 48.0, 48.0, 28.0, 10.0);
if response.icon_clicked {
// Handle icon click
}
if response.arrow_clicked {
// Handle arrow click (expand submenu)
}Fields§
§icon: &'a IconIcon to display
tooltip: &'a strTooltip for the icon button
arrow_tooltip: &'a strTooltip for the arrow button
is_icon_active: boolWhether the icon is in active state
is_expanded: boolWhether the category is expanded (affects arrow direction)
Implementations§
Source§impl<'a> PairButton<'a>
impl<'a> PairButton<'a>
Sourcepub fn show(
&self,
ui: &mut Ui,
width: f32,
height: f32,
icon_size: f32,
padding: f32,
) -> PairButtonResponse
pub fn show( &self, ui: &mut Ui, width: f32, height: f32, icon_size: f32, padding: f32, ) -> PairButtonResponse
Render the pair button and return interaction response
Sourcepub fn show_styled(&self, ui: &mut Ui) -> PairButtonResponse
pub fn show_styled(&self, ui: &mut Ui) -> PairButtonResponse
Render the pair button in styled layout.
Uses exact dimensions:
- Outer rect: 52×38px
- Inner hover rect: 9px horizontal margin, 2px vertical margin
- Inner rounding: the theme’s medium radius
- Icon: optically sized and centered
Auto Trait Implementations§
impl<'a> Freeze for PairButton<'a>
impl<'a> RefUnwindSafe for PairButton<'a>
impl<'a> Send for PairButton<'a>
impl<'a> Sync for PairButton<'a>
impl<'a> Unpin for PairButton<'a>
impl<'a> UnsafeUnpin for PairButton<'a>
impl<'a> UnwindSafe for PairButton<'a>
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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