pub struct ControlState {
pub interaction: InteractionState,
pub selected: bool,
}Expand description
Complete semantic state for an action control.
Fields§
§interaction: InteractionState§selected: boolImplementations§
Source§impl ControlState
impl ControlState
Sourcepub const fn new(interaction: InteractionState) -> Self
pub const fn new(interaction: InteractionState) -> Self
Examples found in repository?
examples/theme_gallery.rs (line 50)
5fn main() -> Result<(), ThemeError> {
6 println!(
7 "<!doctype html><meta charset=\"utf-8\"><title>Clankerdiff UI palette gallery</title><style>body{{margin:0;background:#888;font:14px monospace;display:grid;grid-template-columns:repeat(auto-fit,minmax(390px,1fr))}}section{{padding:24px}}p{{padding:8px}}button{{border:0;padding:8px;margin:4px;font:inherit}}h2{{font-size:18px}}</style>"
8 );
9 for descriptor in ReviewTheme::catalog() {
10 let ui = ReviewTheme::builtin(&descriptor.id)?.ui;
11 println!(
12 "<section style=\"background:{};color:{}\"><h2>{}</h2>",
13 css(ui.canvas),
14 css(ui.text),
15 descriptor.name
16 );
17 for (label, foreground) in [
18 ("Primary content", ui.text),
19 ("Secondary metadata", ui.text_secondary),
20 ("Muted hints / disabled", ui.text_muted),
21 ("Info: running tool", ui.info),
22 ("Positive: completed", ui.positive),
23 ("Warning: context pressure", ui.warning),
24 ("Destructive: failed", ui.destructive),
25 ] {
26 println!("<p style=\"color:{}\">{label}</p>", css(foreground));
27 }
28 println!(
29 "<p style=\"background:{};border:1px solid {}\">Ordinary input / message surface</p>",
30 css(ui.surface),
31 css(ui.border)
32 );
33 println!(
34 "<p style=\"background:{}\">Hovered surface</p>",
35 css(ui.surface_hover)
36 );
37 for state in [SelectionState::Selected, SelectionState::Focused] {
38 let style = ui.selection_style(state);
39 println!(
40 "<p style=\"background:{};color:{}\">{state:?} row</p>",
41 css(style.background.unwrap_or(ui.canvas)),
42 css(style.foreground)
43 );
44 }
45 for variant in [
46 ButtonVariant::Primary,
47 ButtonVariant::Secondary,
48 ButtonVariant::Destructive,
49 ] {
50 let style = ui.control_style(variant, ControlState::new(InteractionState::Rest));
51 println!(
52 "<button style=\"background:{};color:{}\">{variant:?}</button>",
53 css(style.background.unwrap_or(ui.canvas)),
54 css(style.foreground)
55 );
56 }
57 println!("</section>");
58 }
59 Ok(())
60}pub const fn selected(self, selected: bool) -> Self
Trait Implementations§
Source§impl Clone for ControlState
impl Clone for ControlState
impl Copy for ControlState
Source§impl Debug for ControlState
impl Debug for ControlState
Source§impl Default for ControlState
impl Default for ControlState
impl Eq for ControlState
Source§impl PartialEq for ControlState
impl PartialEq for ControlState
impl StructuralPartialEq for ControlState
Auto Trait Implementations§
impl Freeze for ControlState
impl RefUnwindSafe for ControlState
impl Send for ControlState
impl Sync for ControlState
impl Unpin for ControlState
impl UnsafeUnpin for ControlState
impl UnwindSafe for ControlState
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