cranpose_ui/modifier/
padding.rs1use super::{EdgeInsets, InspectorMetadata, Modifier, inspector_metadata};
2use crate::modifier_nodes::PaddingElement;
3
4impl Modifier {
5 pub fn padding(self, p: f32) -> Self {
9 let padding = EdgeInsets::uniform(p);
10 let modifier = Self::with_element(PaddingElement::new(padding))
11 .with_inspector_metadata(padding_metadata(padding));
12 self.then(modifier)
13 }
14
15 pub fn padding_horizontal(self, horizontal: f32) -> Self {
19 let padding = EdgeInsets::horizontal(horizontal);
20 let modifier = Self::with_element(PaddingElement::new(padding))
21 .with_inspector_metadata(padding_metadata(padding));
22 self.then(modifier)
23 }
24
25 pub fn padding_vertical(self, vertical: f32) -> Self {
29 let padding = EdgeInsets::vertical(vertical);
30 let modifier = Self::with_element(PaddingElement::new(padding))
31 .with_inspector_metadata(padding_metadata(padding));
32 self.then(modifier)
33 }
34
35 pub fn padding_symmetric(self, horizontal: f32, vertical: f32) -> Self {
39 let padding = EdgeInsets::symmetric(horizontal, vertical);
40 let modifier = Self::with_element(PaddingElement::new(padding))
41 .with_inspector_metadata(padding_metadata(padding));
42 self.then(modifier)
43 }
44
45 pub fn padding_each(self, left: f32, top: f32, right: f32, bottom: f32) -> Self {
49 let padding = EdgeInsets::from_components(left, top, right, bottom);
50 let modifier = Self::with_element(PaddingElement::new(padding))
51 .with_inspector_metadata(padding_metadata(padding));
52 self.then(modifier)
53 }
54
55 pub fn padding_relative(self, start: f32, top: f32, end: f32, bottom: f32) -> Self {
63 self.padding_relative_in(
64 crate::layout_direction::layout_direction(),
65 start,
66 top,
67 end,
68 bottom,
69 )
70 }
71
72 pub fn padding_relative_in(
75 self,
76 direction: crate::layout_direction::LayoutDirection,
77 start: f32,
78 top: f32,
79 end: f32,
80 bottom: f32,
81 ) -> Self {
82 let (left, right) = direction.resolve(start, end);
83 self.padding_each(left, top, right, bottom)
84 }
85}
86
87fn padding_metadata(padding: EdgeInsets) -> InspectorMetadata {
88 inspector_metadata("padding", |info| {
89 info.add_property("paddingLeft", padding.left.to_string());
90 info.add_property("paddingTop", padding.top.to_string());
91 info.add_property("paddingRight", padding.right.to_string());
92 info.add_property("paddingBottom", padding.bottom.to_string());
93 })
94}