use crate::tokens::DESIGN_TOKENS;
use egui::Color32;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum CrosshairMode {
#[default]
Normal,
Magnet,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum CrosshairStyle {
#[default]
Full,
Dot,
Arrow,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum CrosshairLineStyle {
Solid,
#[default]
Dashed,
Dotted,
}
#[derive(Debug, Clone, Copy)]
pub struct CrosshairOptions {
pub mode: CrosshairMode,
pub style: CrosshairStyle,
pub line_style: CrosshairLineStyle,
pub vert_line_visible: bool,
pub horz_line_visible: bool,
pub vert_line_color: Color32,
pub horz_line_color: Color32,
pub vert_line_width: f32,
pub horz_line_width: f32,
pub label_visible: bool,
pub label_background_color: Color32,
pub label_text_color: Color32,
}
impl Default for CrosshairOptions {
fn default() -> Self {
Self {
mode: CrosshairMode::Normal,
style: CrosshairStyle::Full,
line_style: CrosshairLineStyle::Dashed,
vert_line_visible: true,
horz_line_visible: true,
vert_line_color: DESIGN_TOKENS.semantic.chart.crosshair_line,
horz_line_color: DESIGN_TOKENS.semantic.chart.crosshair_line,
vert_line_width: 1.0,
horz_line_width: 1.0,
label_visible: true,
label_background_color: DESIGN_TOKENS.semantic.extended.chart_crosshair_label_bg,
label_text_color: DESIGN_TOKENS.semantic.extended.chart_text,
}
}
}