Skip to main content

egui_charts/ui/drawing_toolbar/utilities/
stay_in_drawing.rs

1//! Stay-in-drawing mode button.
2//!
3//! When enabled, the drawing tool remains active after completing
4//! a drawing, allowing continuous drawing without reselecting the tool.
5
6use crate::icons::icons;
7use crate::ui::drawing_toolbar::DrawingToolbarAction;
8use crate::ui::drawing_toolbar::components::draw_tool_button;
9use egui::Ui;
10
11/// Keep Drawing / Stay in Drawing Mode button.
12pub struct StayInDrawingButton;
13
14impl StayInDrawingButton {
15    /// Render the stay-in-drawing button and return any action.
16    pub fn show(ui: &mut Ui, is_active: bool) -> Option<DrawingToolbarAction> {
17        let response = draw_tool_button(ui, &icons::DRAWING_KEEP, "Keep drawing", is_active);
18
19        if response.clicked() {
20            Some(DrawingToolbarAction::ToggleStayInDrawingMode)
21        } else {
22            None
23        }
24    }
25}