use super::basic::default_border_width;
use crate::tokens::dtcg::DimensionValue;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DisclosureGroupMetrics {
pub chevron_size: DimensionValue,
pub label_gap: DimensionValue,
pub button_regular_width: DimensionValue,
pub button_regular_height: DimensionValue,
pub button_regular_intrinsic: DimensionValue,
pub button_small_width: DimensionValue,
pub button_small_height: DimensionValue,
pub button_small_intrinsic: DimensionValue,
pub button_mini_width: DimensionValue,
pub button_mini_height: DimensionValue,
pub button_mini_intrinsic: DimensionValue,
pub spring_mass: DimensionValue,
pub spring_stiffness: DimensionValue,
pub spring_damping: DimensionValue,
pub header_font_size: DimensionValue,
pub trailing_button_size: DimensionValue,
pub trailing_plus_half_span: DimensionValue,
pub trailing_plus_stroke_width: DimensionValue,
}
impl Default for DisclosureGroupMetrics {
fn default() -> Self {
Self {
chevron_size: DimensionValue::from_pt(13.0),
label_gap: DimensionValue::from_pt(6.0),
button_regular_width: DimensionValue::from_pt(28.0),
button_regular_height: DimensionValue::from_pt(26.0),
button_regular_intrinsic: DimensionValue::from_pt(20.0),
button_small_width: DimensionValue::from_pt(24.0),
button_small_height: DimensionValue::from_pt(21.0),
button_small_intrinsic: DimensionValue::from_pt(16.0),
button_mini_width: DimensionValue::from_pt(19.0),
button_mini_height: DimensionValue::from_pt(16.0),
button_mini_intrinsic: DimensionValue::from_pt(13.0),
spring_mass: DimensionValue::from_pt(1.0),
spring_stiffness: DimensionValue::from_pt(300.0),
spring_damping: DimensionValue::from_pt(25.0),
header_font_size: DimensionValue::from_pt(12.0),
trailing_button_size: DimensionValue::from_pt(16.0),
trailing_plus_half_span: DimensionValue::from_pt(4.0),
trailing_plus_stroke_width: DimensionValue::from_pt(1.4),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ComboBoxMetrics {
pub regular_height: DimensionValue,
pub regular_button_width: DimensionValue,
pub regular_inset: DimensionValue,
pub regular_corner_radius: DimensionValue,
pub small_height: DimensionValue,
pub small_button_width: DimensionValue,
pub small_inset: DimensionValue,
pub small_corner_radius: DimensionValue,
pub mini_height: DimensionValue,
pub mini_button_width: DimensionValue,
pub mini_inset: DimensionValue,
pub mini_corner_radius: DimensionValue,
pub item_height: DimensionValue,
pub visible_items: DimensionValue,
pub intercell_spacing_x: DimensionValue,
pub intercell_spacing_y: DimensionValue,
pub badge_button_width: DimensionValue,
pub button_inset: DimensionValue,
pub button_corner_radius: DimensionValue,
pub chevron_half_width: DimensionValue,
pub chevron_half_height: DimensionValue,
pub chevron_stroke_width: DimensionValue,
pub regular_first_baseline_offset: DimensionValue,
pub small_first_baseline_offset: DimensionValue,
pub mini_first_baseline_offset: DimensionValue,
pub regular_visual_height: DimensionValue,
pub small_visual_height: DimensionValue,
pub mini_visual_height: DimensionValue,
}
impl Default for ComboBoxMetrics {
fn default() -> Self {
Self {
regular_height: DimensionValue::from_pt(23.0),
regular_button_width: DimensionValue::from_pt(27.0),
regular_inset: DimensionValue::from_pt(9.0),
regular_corner_radius: DimensionValue::from_pt(5.0),
small_height: DimensionValue::from_pt(19.0),
small_button_width: DimensionValue::from_pt(20.0),
small_inset: DimensionValue::from_pt(7.0),
small_corner_radius: DimensionValue::from_pt(4.0),
mini_height: DimensionValue::from_pt(15.0),
mini_button_width: DimensionValue::from_pt(18.0),
mini_inset: DimensionValue::from_pt(6.0),
mini_corner_radius: DimensionValue::from_pt(3.0),
item_height: DimensionValue::from_pt(18.0),
visible_items: DimensionValue::from_pt(5.0),
intercell_spacing_x: DimensionValue::from_pt(3.0),
intercell_spacing_y: DimensionValue::from_pt(2.0),
badge_button_width: DimensionValue::from_pt(17.0),
button_inset: DimensionValue::from_pt(2.0),
button_corner_radius: DimensionValue::from_pt(4.0),
chevron_half_width: DimensionValue::from_pt(2.5),
chevron_half_height: DimensionValue::from_pt(1.5),
chevron_stroke_width: DimensionValue::from_pt(1.3),
regular_first_baseline_offset: DimensionValue::from_pt(15.0),
small_first_baseline_offset: DimensionValue::from_pt(12.0),
mini_first_baseline_offset: DimensionValue::from_pt(11.0),
regular_visual_height: DimensionValue::from_pt(20.0),
small_visual_height: DimensionValue::from_pt(16.0),
mini_visual_height: DimensionValue::from_pt(13.0),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TabViewMetrics {
pub regular_bar_height: DimensionValue,
pub regular_inset_top: DimensionValue,
pub regular_inset_bottom: DimensionValue,
pub regular_inset_horizontal: DimensionValue,
pub small_bar_height: DimensionValue,
pub small_inset_top: DimensionValue,
pub small_inset_bottom: DimensionValue,
pub small_inset_horizontal: DimensionValue,
pub mini_bar_height: DimensionValue,
pub mini_inset_top: DimensionValue,
pub mini_inset_bottom: DimensionValue,
pub mini_inset_horizontal: DimensionValue,
pub corner_radius: DimensionValue,
pub regular_min_width: DimensionValue,
pub regular_min_height: DimensionValue,
pub small_min_width: DimensionValue,
pub small_min_height: DimensionValue,
pub mini_min_width: DimensionValue,
pub mini_min_height: DimensionValue,
pub tab_padding_horizontal: DimensionValue,
}
impl Default for TabViewMetrics {
fn default() -> Self {
Self {
regular_bar_height: DimensionValue::from_pt(24.0),
regular_inset_top: DimensionValue::from_pt(33.0),
regular_inset_bottom: DimensionValue::from_pt(13.0),
regular_inset_horizontal: DimensionValue::from_pt(10.0),
small_bar_height: DimensionValue::from_pt(20.0),
small_inset_top: DimensionValue::from_pt(25.0),
small_inset_bottom: DimensionValue::from_pt(13.0),
small_inset_horizontal: DimensionValue::from_pt(10.0),
mini_bar_height: DimensionValue::from_pt(15.0),
mini_inset_top: DimensionValue::from_pt(19.0),
mini_inset_bottom: DimensionValue::from_pt(13.0),
mini_inset_horizontal: DimensionValue::from_pt(10.0),
corner_radius: DimensionValue::from_pt(5.0),
regular_min_width: DimensionValue::from_pt(150.0),
regular_min_height: DimensionValue::from_pt(36.0),
small_min_width: DimensionValue::from_pt(122.0),
small_min_height: DimensionValue::from_pt(28.0),
mini_min_width: DimensionValue::from_pt(107.0),
mini_min_height: DimensionValue::from_pt(22.0),
tab_padding_horizontal: DimensionValue::from_pt(24.0),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RuleEditorMetrics {
pub row_height: DimensionValue,
pub add_remove_button_size: DimensionValue,
pub row_horizontal_spacing: DimensionValue,
}
impl Default for RuleEditorMetrics {
fn default() -> Self {
Self {
row_height: DimensionValue::from_pt(32.0),
add_remove_button_size: DimensionValue::from_pt(20.0),
row_horizontal_spacing: DimensionValue::from_pt(8.0),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct BoxViewMetrics {
pub inset_top: DimensionValue,
pub inset_bottom: DimensionValue,
pub inset_left: DimensionValue,
pub inset_right: DimensionValue,
pub corner_radius: DimensionValue,
#[serde(default = "default_border_width")]
pub border_width: DimensionValue,
pub separator_frame_height: DimensionValue,
pub title_height: DimensionValue,
pub title_font_size: DimensionValue,
}
impl Default for BoxViewMetrics {
fn default() -> Self {
Self {
inset_top: DimensionValue::from_pt(20.0),
inset_bottom: DimensionValue::from_pt(10.0),
inset_left: DimensionValue::from_pt(9.0),
inset_right: DimensionValue::from_pt(9.0),
corner_radius: DimensionValue::from_pt(5.0),
border_width: default_border_width(),
separator_frame_height: DimensionValue::from_pt(5.0),
title_height: DimensionValue::from_pt(14.0),
title_font_size: DimensionValue::from_pt(11.0),
}
}
}