livid/traits/
group.rs

1use crate::traits::widget_base::WidgetBase;
2use crate::enums::{AlignContent, Style};
3use crate::traits::WidgetExt;
4
5pub trait GroupExt: WidgetExt {
6    fn begin(&self) {
7        self.inner().begin()
8    }
9    fn end(&self) {
10        self.inner().end()
11    }
12    fn clear(&self) {
13        self.inner().set_inner_html("");
14    }
15    fn add<W: WidgetExt>(&self, widget: &W) where Self: Sized {
16        self.inner().append(&widget.inner());
17    }
18    fn remove<W: WidgetExt>(&self, widget: &W) where Self: Sized {
19        self.inner().remove(&widget.inner());
20    }
21    fn set_align_content(&self, align: AlignContent) {
22        self.inner().set_style(Style::AlignContent, align.to_str());
23    }
24    fn set_justify_content(&self, align: AlignContent) {
25        self.inner()
26            .set_style(Style::JustifyContent, align.to_str());
27    }
28    fn children(&self) -> Vec<Box<dyn WidgetExt>> {
29        let mut v: Vec<Box<dyn WidgetExt>> = vec![];
30        let c = self.inner().children();
31        for e in c.iter() {
32            let f = unsafe {crate::frame::Label::from_widget(&e)};
33            v.push(Box::new(f));
34        }
35        v
36    }
37}