Skip to main content

cranpose_ui/modifier/
alignment.rs

1use super::{Alignment, HorizontalAlignment, Modifier, VerticalAlignment, inspector_metadata};
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    #[expect(non_snake_case)]
16    pub fn alignInBox(self, alignment: Alignment) -> Self {
17        self.align(alignment)
18    }
19
20    #[expect(non_snake_case)]
21    pub fn alignInColumn(self, alignment: HorizontalAlignment) -> Self {
22        let modifier = Self::with_element(AlignmentElement::column_alignment(alignment))
23            .with_inspector_metadata(inspector_metadata("alignInColumn", move |info| {
24                info.add_alignment("columnAlignment", alignment);
25            }));
26        self.then(modifier)
27    }
28
29    #[expect(non_snake_case)]
30    pub fn alignInRow(self, alignment: VerticalAlignment) -> Self {
31        let modifier = Self::with_element(AlignmentElement::row_alignment(alignment))
32            .with_inspector_metadata(inspector_metadata("alignInRow", move |info| {
33                info.add_alignment("rowAlignment", alignment);
34            }));
35        self.then(modifier)
36    }
37}