diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-11-18 00:58:32 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-11-18 00:58:32 +0100 |
| commit | b2e6a297893348a871fba8997017a9fc98d5674b (patch) | |
| tree | c88f18c063d97d91712185c58ccf1cd745663cc1 /src/layout | |
| parent | d9c529347d7f46eb2f4698d256b1906c1ced6b76 (diff) | |
Refactoring
Diffstat (limited to 'src/layout')
| -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 { |
