summaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-11-18 00:58:32 +0100
committerLaurenz <laurmaedje@gmail.com>2021-11-18 00:58:32 +0100
commitb2e6a297893348a871fba8997017a9fc98d5674b (patch)
treec88f18c063d97d91712185c58ccf1cd745663cc1 /src/layout
parentd9c529347d7f46eb2f4698d256b1906c1ced6b76 (diff)
Refactoring
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/mod.rs17
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 {