uzor_core/widgets/
checkbox.rs1use crate::types::{WidgetState, Rect};
7use serde::{Deserialize, Serialize};
8
9#[derive(Clone, Debug, Serialize, Deserialize)]
11pub struct CheckboxConfig {
12 pub label: String,
14 pub checked: bool,
16 pub disabled: bool,
18}
19
20impl Default for CheckboxConfig {
21 fn default() -> Self {
22 Self {
23 label: String::new(),
24 checked: false,
25 disabled: false,
26 }
27 }
28}
29
30impl CheckboxConfig {
31 pub fn new(label: &str) -> Self {
32 Self {
33 label: label.to_string(),
34 ..Default::default()
35 }
36 }
37
38 pub fn with_checked(mut self, checked: bool) -> Self {
39 self.checked = checked;
40 self
41 }
42
43 pub fn with_disabled(mut self, disabled: bool) -> Self {
44 self.disabled = disabled;
45 self
46 }
47}
48
49#[derive(Clone, Debug, Default, Serialize, Deserialize)]
51pub struct CheckboxResponse {
52 pub toggled: bool,
54 pub new_checked: bool,
56 pub hovered: bool,
58 pub state: WidgetState,
60 pub rect: Rect,
62}