diff options
Diffstat (limited to 'src/layout/mod.rs')
| -rw-r--r-- | src/layout/mod.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 3ac32722..8f46c049 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -17,9 +17,9 @@ use std::rc::Rc; use crate::font::FontStore; use crate::frame::Frame; -use crate::geom::{Align, Linear, Spec}; +use crate::geom::{Align, Linear, Sides, Spec}; use crate::image::ImageStore; -use crate::library::{AlignNode, DocumentNode, MoveNode, SizedNode}; +use crate::library::{AlignNode, DocumentNode, MoveNode, PadNode, SizedNode}; use crate::Context; /// Layout a document node into a collection of frames. @@ -129,6 +129,19 @@ impl PackedNode { self } } + + /// Pad this node at the sides. + pub fn padded(self, padding: Sides<Linear>) -> Self { + if !padding.left.is_zero() + || !padding.top.is_zero() + || !padding.right.is_zero() + || !padding.bottom.is_zero() + { + PadNode { child: self, padding }.pack() + } else { + self + } + } } impl Layout for PackedNode { |
