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
use agui_core::{
context::WidgetContext,
layout::Layout,
unit::{LayoutType, Units},
widget::{BuildResult, WidgetBuilder, WidgetRef},
Ref,
};
use agui_macros::Widget;
#[derive(Default, Widget)]
pub struct Column {
pub layout: Ref<Layout>,
pub spacing: Units,
pub children: Vec<WidgetRef>,
}
impl WidgetBuilder for Column {
fn build(&self, ctx: &WidgetContext) -> BuildResult {
ctx.set_layout_type(
LayoutType::Column {
spacing: self.spacing,
}
.into(),
);
ctx.set_layout(Ref::clone(&self.layout));
(&self.children).into()
}
}