Skip to main content

egui_charts/ui/drawing_toolbar/
mod.rs

1//! Categorized drawing tool picker and drawing utility controls.
2//!
3//! Place [`DrawingToolbar`] beside a chart and apply its returned
4//! [`DrawingToolbarAction`] values to the chart or host state.
5
6// Core module declarations
7pub mod actions;
8pub mod config;
9pub mod data;
10mod glyph_picker;
11pub mod icons;
12pub mod shortcuts;
13pub mod state;
14pub mod submenu_builder;
15mod toolbar;
16
17// Modular components and utilities
18pub mod categories;
19pub mod components;
20pub mod utilities;
21
22/// Drawing template metadata displayed by toolbar controls.
23///
24/// The host supplies and applies templates; this record does not store drawing settings.
25#[derive(Debug, Clone)]
26pub struct DrawingTemplate {
27    /// Host identifier for this record.
28    pub id: String,
29    /// Display name.
30    pub name: String,
31    /// Drawing tool identifier used by the host for this template.
32    pub drawing_type: String,
33    /// Whether the host marks this as the default template.
34    pub is_default: bool,
35}
36
37// Re-export public types for convenient access
38pub use actions::DrawingToolbarAction;
39pub use components::{PairButton, draw_icon_btn, draw_separator, draw_toggle_btn};
40pub use config::DrawingToolbarConfig;
41pub use glyph_picker::GlyphPicker;
42pub use shortcuts::DrawingToolShortcuts;
43pub use state::{MagnetType, ToolbarState};
44pub use submenu_builder::{SubmenuBuilder, SubmenuItem, ToggleConfig};
45pub use toolbar::{DrawingToolbar, DrawingToolbarDomainState};
46
47// Re-export category trait for extensibility
48pub use categories::ToolCategory;