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
Source§fn clone(&self) -> ControlState
fn clone(&self) -> ControlState
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ControlState
Source§impl Debug for ControlState
impl Debug for ControlState
Source§impl Default for ControlState
impl Default for ControlState
Source§fn default() -> ControlState
fn default() -> ControlState
Returns the “default value” for a type. Read more
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