mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 23:13:13 -04:00
Transfer to UiStack & rename to Classes
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
|
||||
#![expect(rustdoc::missing_crate_level_docs)] // it's an example
|
||||
|
||||
use eframe::egui::{self, Button, Frame, Grid, Margin, Panel, widget_style::HasModifiers as _};
|
||||
use eframe::egui::{
|
||||
self, Frame, Grid, Margin, Panel, UiBuilder,
|
||||
widget_style::{Classes, HasClasses as _},
|
||||
};
|
||||
|
||||
fn main() -> eframe::Result {
|
||||
env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`).
|
||||
@@ -14,31 +17,57 @@ fn main() -> eframe::Result {
|
||||
let mut style_code = "// future style code live editor".to_owned();
|
||||
|
||||
eframe::run_ui_native("My egui App", options, move |ui, _frame| {
|
||||
// Add a modifier to this ui
|
||||
ui.add_modifier("body");
|
||||
ui.label("body");
|
||||
egui::CentralPanel::default().show_inside(ui, |ui| {
|
||||
// Add a modifier to this ui
|
||||
ui.add_modifier("central panel");
|
||||
ui.label("central panel");
|
||||
ui.scope_builder(
|
||||
UiBuilder::new().classes(Classes::default().with_class("body")),
|
||||
|ui| {
|
||||
ui.label("body");
|
||||
ui.label("central panel");
|
||||
|
||||
Panel::left("style_code").show_inside(ui, |ui| {
|
||||
ui.add_modifier("style code editor");
|
||||
ui.label("style code editor");
|
||||
Panel::left("style_code").show_inside(ui, |ui| {
|
||||
ui.scope_builder(
|
||||
UiBuilder::new().classes(Classes::default().with_class("panel_left")),
|
||||
|ui| {
|
||||
ui.label("style code editor");
|
||||
|
||||
ui.text_edit_multiline(&mut style_code);
|
||||
});
|
||||
ui.text_edit_multiline(&mut style_code);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
Grid::new("grid").show(ui, |ui| {
|
||||
ui.add_modifier("grid");
|
||||
|
||||
Frame::new().inner_margin(Margin::same(10)).show(ui, |ui| {
|
||||
ui.add_modifier("frame1");
|
||||
|
||||
ui.add(Button::new("button1").with_modifier("button1"));
|
||||
ui.add(Button::new("button2").with_modifier("button2"));
|
||||
})
|
||||
});
|
||||
});
|
||||
Grid::new("grid").show(ui, |ui| {
|
||||
ui.scope_builder(
|
||||
UiBuilder::new().classes(Classes::default().with_class("grid")),
|
||||
|ui| {
|
||||
Frame::new().inner_margin(Margin::same(10)).show(ui, |ui| {
|
||||
ui.scope_builder(
|
||||
UiBuilder::new()
|
||||
.classes(Classes::default().with_class("frame1")),
|
||||
|ui| {
|
||||
let mut parent = Some(ui.stack());
|
||||
let mut text = vec![];
|
||||
let mut i: i32 = 0;
|
||||
while let Some(p) = parent {
|
||||
text.push(format!(
|
||||
"{}{}class : '{}', kind : {:?}",
|
||||
" ".repeat((2 * 0_i32.max(i - 1)) as usize),
|
||||
if i > 0 { "\\- " } else { "" },
|
||||
p.classes,
|
||||
p.kind()
|
||||
));
|
||||
i += 1;
|
||||
parent = p.parent.as_ref();
|
||||
}
|
||||
ui.label(format!(
|
||||
"Current hierarchy :\n{}",
|
||||
text.join("\n")
|
||||
));
|
||||
},
|
||||
)
|
||||
})
|
||||
},
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user