add grid demo
This commit is contained in:
parent
fc79988737
commit
a1ba1ec079
3 changed files with 106 additions and 0 deletions
|
@ -22,6 +22,7 @@ impl Default for Demos {
|
|||
Box::new(super::dancing_strings::DancingStrings::default()),
|
||||
Box::new(super::drag_and_drop::DragAndDropDemo::default()),
|
||||
Box::new(super::font_book::FontBook::default()),
|
||||
Box::new(super::grid_demo::GridDemo::default()),
|
||||
Box::new(super::MiscDemoWindow::default()),
|
||||
Box::new(super::multi_touch::MultiTouch::default()),
|
||||
Box::new(super::painting::Painting::default()),
|
||||
|
|
104
egui_demo_lib/src/apps/demo/grid_demo.rs
Normal file
104
egui_demo_lib/src/apps/demo/grid_demo.rs
Normal file
|
@ -0,0 +1,104 @@
|
|||
use egui::Color32;
|
||||
use egui_dynamic_grid::{GridBuilder, Padding, Size};
|
||||
|
||||
/// Shows off a table with dynamic layout
|
||||
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||
#[derive(Default)]
|
||||
pub struct GridDemo {}
|
||||
|
||||
impl super::Demo for GridDemo {
|
||||
fn name(&self) -> &'static str {
|
||||
"▣ Grid Demo"
|
||||
}
|
||||
|
||||
fn show(&mut self, ctx: &egui::CtxRef, open: &mut bool) {
|
||||
egui::Window::new(self.name())
|
||||
.open(open)
|
||||
.resizable(true)
|
||||
.default_width(400.0)
|
||||
.show(ctx, |ui| {
|
||||
use super::View as _;
|
||||
self.ui(ui);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
impl super::View for GridDemo {
|
||||
fn ui(&mut self, ui: &mut egui::Ui) {
|
||||
GridBuilder::new(ui, Padding::new(0.0, 5.0)).vertical(|builder| {
|
||||
builder
|
||||
.row(Size::Absolute(50.0))
|
||||
.row(Size::Remainder)
|
||||
.row(Size::RelativeMinimum {
|
||||
relative: 0.5,
|
||||
minimum: 60.0,
|
||||
})
|
||||
.build(|mut grid| {
|
||||
grid.cell(|ui| {
|
||||
ui.painter().rect_filled(
|
||||
ui.available_rect_before_wrap(),
|
||||
0.0,
|
||||
Color32::BLUE,
|
||||
);
|
||||
});
|
||||
grid.horizontal(|builder| {
|
||||
builder.columns(Size::Remainder, 2).build(|mut grid| {
|
||||
grid.cell(|ui| {
|
||||
ui.painter().rect_filled(
|
||||
ui.available_rect_before_wrap(),
|
||||
0.0,
|
||||
Color32::RED,
|
||||
);
|
||||
});
|
||||
grid.vertical(|builder| {
|
||||
builder.rows(Size::Remainder, 3).build(|mut grid| {
|
||||
grid.empty();
|
||||
grid.cell(|ui| {
|
||||
ui.painter().rect_filled(
|
||||
ui.available_rect_before_wrap(),
|
||||
0.0,
|
||||
Color32::YELLOW,
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
grid.horizontal(|builder| {
|
||||
builder
|
||||
.column(Size::Remainder)
|
||||
.column(Size::Absolute(50.0))
|
||||
.column(Size::Remainder)
|
||||
.column(Size::Absolute(70.0))
|
||||
.build(|mut grid| {
|
||||
grid.empty();
|
||||
grid.vertical(|builder| {
|
||||
builder
|
||||
.row(Size::Remainder)
|
||||
.row(Size::Absolute(50.0))
|
||||
.row(Size::Remainder)
|
||||
.build(|mut grid| {
|
||||
grid.empty();
|
||||
grid.cell(|ui| {
|
||||
ui.painter().rect_filled(
|
||||
ui.available_rect_before_wrap(),
|
||||
0.0,
|
||||
Color32::GOLD,
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
grid.empty();
|
||||
grid.cell(|ui| {
|
||||
ui.painter().rect_filled(
|
||||
ui.available_rect_before_wrap(),
|
||||
0.0,
|
||||
Color32::GREEN,
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@ pub mod dancing_strings;
|
|||
pub mod demo_app_windows;
|
||||
pub mod drag_and_drop;
|
||||
pub mod font_book;
|
||||
pub mod grid_demo;
|
||||
pub mod layout_test;
|
||||
pub mod misc_demo_window;
|
||||
pub mod multi_touch;
|
||||
|
|
Loading…
Reference in a new issue