brisk_egui_components/
lib.rs

1#![doc = include_str!("../README.MD")]
2#![warn(missing_docs)]
3
4extern crate proc_macro;
5
6use lazy_static::lazy_static;
7
8mod common;
9mod component;
10mod containers;
11mod eval;
12mod frame;
13mod image;
14mod input;
15mod layout;
16mod menu;
17mod misc;
18mod painter;
19mod panels;
20mod popup;
21mod properties;
22mod scope;
23mod text;
24mod ui_builder;
25mod utils;
26mod viewport;
27mod widgets;
28mod window;
29
30#[cfg(feature = "cartography")]
31mod cartography;
32
33#[cfg(feature = "node-graph-editor")]
34mod node_graph_editor;
35
36#[cfg(feature = "plot")]
37mod plot;
38
39#[cfg(feature = "table")]
40mod table;
41
42lazy_static! {
43    /// Manager for the `ègui` component. Can be merged into an other manager for extensions.
44    pub static ref MANAGER: brisk_it::generator::Manager = {
45        let manager = brisk_it::generator::ManagerBuilder::new()
46            .insert(&brisk_common_components::MANAGER)
47            .add(
48                "Component",
49                component::Component {
50                    component_type: component::Type::Widget,
51                },
52            )
53            .add(
54                "PanelComponent",
55                component::Component {
56                    component_type: component::Type::Panel,
57                },
58            )
59            .create::<containers::ComboBox>("ComboBox")
60            .create::<containers::ScrollArea>("ScrollArea")
61            .create::<eval::Eval>("Eval")
62            .create::<frame::Frame>("Frame")
63            .create::<image::Image>("Image")
64            .create::<input::Button>("Button")
65            .create::<input::CheckBox>("CheckBox")
66            .create::<input::DragValue>("DragValue")
67            .create::<input::Interact>("Interact")
68            .create::<input::Slider>("Slider")
69            .create::<input::RadioButton>("RadioButton")
70            .add("MultiLineTextEdit", input::TextEdit
71            {
72                text_edit_type: input::TextEditType::MultiLine
73            })
74            .add("TextEdit", input::TextEdit
75            {
76                text_edit_type: input::TextEditType::SingleLine
77            })
78            .create::<layout::Grid>("Grid")
79            .create::<layout::GridRow>("GridRow")
80            .create::<layout::Horizontal>("Horizontal")
81            .create::<menu::MenuBar>("MenuBar")
82            .create::<menu::MenuButton>("MenuButton")
83            .create::<misc::Separator>("Separator")
84            .create::<painter::Painter>("Painter")
85            .create::<panels::CentralPanel>("CentralPanel")
86            .create::<panels::SidePanel>("SidePanel")
87            .create::<panels::TopBottomPanel>("TopBottomPanel")
88            .create::<popup::PopupMenu>("PopupMenu")
89            .create::<properties::Properties>("Properties")
90            .create::<scope::Scope>("Scope")
91            .create::<text::Heading>("Heading")
92            .create::<text::Hyperlink>("Hyperlink")
93            .create::<text::Label>("Label")
94            .create::<ui_builder::UiBuilder>("UiBuilder")
95            .create::<viewport::Viewport>("Viewport")
96            .create::<widgets::GlobalThemePreferenceSwitch>("GlobalThemePreferenceSwitch")
97            .create::<widgets::SelectableValue>("SelectableValue")
98            .create::<window::Window>("Window");
99
100        #[cfg(feature = "cartography")]
101        let manager = manager.create::<cartography::MapViewer>("MapViewer");
102
103        #[cfg(feature = "node-graph-editor")]
104        let manager = manager.create::<node_graph_editor::GraphEditor>("GraphEditor");
105
106        #[cfg(feature = "plot")]
107        let manager = manager.create::<plot::Plot>("Plot")
108            .create::<plot::Line>("Line");
109
110        #[cfg(feature = "table")]
111        let manager = manager.create::<table::Table>("Table")
112            .create::<table::HeaderRow>("HeaderRow");
113
114        #[cfg(feature = "rfd")]
115        let manager = manager.insert(&brisk_rfd_components::MANAGER);
116
117        manager.into()
118    };
119}