Skip to main content

cranpose_ui/modifier/
alignment.rs

1use super::{inspector_metadata, Alignment, HorizontalAlignment, Modifier, VerticalAlignment};
2use crate::modifier_nodes::AlignmentElement;
3
4impl Modifier {
5    pub fn align(self, alignment: Alignment) -> Self {
6        self.then(
7            Self::with_element(AlignmentElement::box_alignment(alignment)).with_inspector_metadata(
8                inspector_metadata("align", move |info| {
9                    info.add_alignment("boxAlignment", alignment);
10                }),
11            ),
12        )
13    }
14
15    pub fn alignInBox(self, alignment: Alignment) -> Self {
16        self.align(alignment)
17    }
18
19    pub fn alignInColumn(self, alignment: HorizontalAlignment) -> Self {
20        let modifier = Self::with_element(AlignmentElement::column_alignment(alignment))
21            .with_inspector_metadata(inspector_metadata("alignInColumn", move |info| {
22                info.add_alignment("columnAlignment", alignment);
23            }));
24        self.then(modifier)
25    }
26
27    pub fn alignInRow(self, alignment: VerticalAlignment) -> Self {
28        let modifier = Self::with_element(AlignmentElement::row_alignment(alignment))
29            .with_inspector_metadata(inspector_metadata("alignInRow", move |info| {
30                info.add_alignment("rowAlignment", alignment);
31            }));
32        self.then(modifier)
33    }
34}