1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//! Drawing Toolbar.
//!
//! A professional left sidebar with categorized drawing tools.
//!
//! # Architecture
//!
//! ```text
//! drawing_toolbar/
//! ├── mod.rs # This file - module exports
//! ├── toolbar.rs # Main DrawingToolbar coordinator
//! ├── actions.rs # Action enum for toolbar events
//! ├── state.rs # Toolbar state management
//! ├── config.rs # Toolbar configuration
//! ├── icons.rs # Icon mappings for tools
//! ├── data.rs # Tool data definitions
//! ├── shortcuts.rs # Keyboard shortcuts
//! ├── submenu_builder.rs # Submenu builder framework
//! │
//! ├── components/ # Reusable UI components
//! │ ├── pair_btn.rs # Split icon+arrow button
//! │ ├── icon_btn.rs # Single icon btns
//! │ ├── separator.rs # Visual separators
//! │ └── svg_helpers.rs # SVG rendering utilities
//! │
//! ├── categories/ # Tool category modules
//! │ ├── cursors.rs # Cursor tools
//! │ ├── trend_lines.rs # Lines, channels, pitchforks
//! │ ├── fibonacci.rs # Fibonacci & Gann tools
//! │ ├── patterns.rs # Patterns, Elliott, cycles
//! │ ├── projection.rs # Projection, volume, measurer
//! │ ├── shapes.rs # Brushes, arrows, shapes
//! │ ├── annotation.rs # Text & annotations
//! │ └── icons_emojis.rs # Icons/emoji picker
//! │
//! └── utilities/ # Bottom toolbar utilities
//! ├── measure.rs # Measure tool
//! ├── zoom.rs # Zoom in/out
//! ├── magnet.rs # Magnet mode dropdown
//! ├── stay_in_drawing.rs # Keep drawing toggle
//! ├── lock.rs # Lock drawings toggle
//! ├── hide_menu.rs # Hide objects dropdown
//! ├── remove_menu.rs # Remove objects dropdown
//! └── favorites.rs # Favorites toggle
//! ```
//!
//! # Example
//!
//! ```ignore
//! use egui_open_trading_charts_rs::ui::drawing_toolbar::{DrawingToolbar, DrawingToolbarConfig};
//!
//! let mut toolbar = DrawingToolbar::default();
//!
//! // In your UI update loop:
//! let action = toolbar.show_with_action(ui);
//! match action {
//! DrawingToolbarAction::SelectTool(tool) => {
//! // Handle tool selection
//! }
//! _ => {}
//! }
//! ```
// Core module declarations
// Modular components and utilities
/// Minimal drawing template placeholder (frontend services not yet available)
// Re-export public types for convenient access
pub use DrawingToolbarAction;
pub use ;
pub use DrawingToolbarConfig;
pub use DrawingToolShortcuts;
pub use ;
pub use ;
pub use ;
// Re-export category trait for extensibility
pub use ToolCategory;