mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 07:03:14 -04:00
Introduce UiStack (#4588)
* Closes #4534 This PR: - Introduces `Ui::stack()`, which returns the `UiStack` structure providing information on the current `Ui` hierarchy. - **BREAKING**: `Ui::new()` now takes a `UiStackInfo` argument, which is used to populate some of this `Ui`'s `UiStack`'s fields. - **BREAKING**: `Ui::child_ui()` and `Ui::child_ui_with_id_source()` now take an `Option<UiStackInfo>` argument, which is used to populate some of the children `Ui`'s `UiStack`'s fields. - New `Area::kind()` builder function, to set the `UiStackKind` value of the `Area`'s `Ui`. - Adds a (minimalistic) demo to egui demo (in the "Misc Demos" window). - Adds a more thorough `test_ui_stack` test/playground demo. TODO: - [x] benchmarks - [x] add example to demo Future work: - Add `UiStackKind` and related support for more container (e.g. `CollapsingHeader`, etc.) - Add a tag/property system that would allow adding arbitrary data to a stack node. This data could then be queried by nested `Ui`s. Probably needed for #3284. - Add support to track columnar layouts. --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
@@ -250,7 +250,7 @@ impl Widget for &mut LegendWidget {
|
||||
let layout = Layout::from_main_dir_and_cross_align(main_dir, cross_align);
|
||||
let legend_pad = 4.0;
|
||||
let legend_rect = rect.shrink(legend_pad);
|
||||
let mut legend_ui = ui.child_ui(legend_rect, layout);
|
||||
let mut legend_ui = ui.child_ui(legend_rect, layout, None);
|
||||
legend_ui
|
||||
.scope(|ui| {
|
||||
let background_frame = Frame {
|
||||
|
||||
@@ -1488,7 +1488,7 @@ impl<'a> PreparedPlot<'a> {
|
||||
|
||||
let transform = &self.transform;
|
||||
|
||||
let mut plot_ui = ui.child_ui(*transform.frame(), Layout::default());
|
||||
let mut plot_ui = ui.child_ui(*transform.frame(), Layout::default(), None);
|
||||
plot_ui.set_clip_rect(transform.frame().intersect(ui.clip_rect()));
|
||||
for item in &self.items {
|
||||
item.shapes(&plot_ui, transform, &mut shapes);
|
||||
|
||||
Reference in New Issue
Block a user