Skip to main content

egui_charts/ui/drawing_toolbar/utilities/
measure.rs

1//! Measure tool button.
2//!
3//! Activates the measurement tool for measuring price ranges,
4//! time ranges, and percentage changes on the chart.
5
6use crate::drawings::DrawingToolType;
7use crate::icons::icons;
8use crate::ui::drawing_toolbar::DrawingToolbarAction;
9use crate::ui::drawing_toolbar::components::draw_tool_button;
10use egui::Ui;
11
12/// Measure tool button component.
13pub struct MeasureButton;
14
15impl MeasureButton {
16    /// Render the measure button and return any action.
17    pub fn show(ui: &mut Ui, is_active: bool) -> Option<DrawingToolbarAction> {
18        let response = draw_tool_button(ui, &icons::MEASURE, "Measure", is_active);
19
20        if response.clicked() {
21            log::info!("Measure tool clicked");
22            Some(DrawingToolbarAction::SelectTool(DrawingToolType::Measure))
23        } else {
24            None
25        }
26    }
27}