pub trait CheckboxStyle {
fn size(&self) -> f64;
fn radius(&self) -> f64;
fn border_width(&self) -> f64;
fn checkmark_width(&self) -> f64;
fn label_gap(&self) -> f64;
fn checkmark_inset(&self) -> f64 {
3.0
}
}
pub struct StandardCheckboxStyle;
impl CheckboxStyle for StandardCheckboxStyle {
fn size(&self) -> f64 { 16.0 }
fn radius(&self) -> f64 { 3.0 }
fn border_width(&self) -> f64 { 1.0 }
fn checkmark_width(&self) -> f64 { 2.0 }
fn label_gap(&self) -> f64 { 12.0 }
fn checkmark_inset(&self) -> f64 { 4.0 }
}
pub struct VisibilityCheckboxStyle;
impl CheckboxStyle for VisibilityCheckboxStyle {
fn size(&self) -> f64 { 16.0 }
fn radius(&self) -> f64 { 3.0 }
fn border_width(&self) -> f64 { 1.0 }
fn checkmark_width(&self) -> f64 { 2.0 }
fn label_gap(&self) -> f64 { 8.0 }
}
pub struct LevelVisibilityCheckboxStyle;
impl CheckboxStyle for LevelVisibilityCheckboxStyle {
fn size(&self) -> f64 { 16.0 }
fn radius(&self) -> f64 { 2.0 }
fn border_width(&self) -> f64 { 1.0 }
fn checkmark_width(&self) -> f64 { 2.0 }
fn label_gap(&self) -> f64 { 8.0 }
}
pub struct NotificationCheckboxStyle;
impl CheckboxStyle for NotificationCheckboxStyle {
fn size(&self) -> f64 { 16.0 }
fn radius(&self) -> f64 { 2.0 }
fn border_width(&self) -> f64 { 1.0 }
fn checkmark_width(&self) -> f64 { 2.0 }
fn label_gap(&self) -> f64 { 8.0 }
}