diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-01-07 21:24:36 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-01-08 00:20:48 +0100 |
| commit | e74ae6ce70d4c6ca006613eadf07f920951789e3 (patch) | |
| tree | 0b9b2ddabf79dad8d55631780ee5d70afe7362d7 /src/layout/mod.rs | |
| parent | 0b624390906e911bde325b487b2710b67c8205c8 (diff) | |
Make all nodes into classes
Diffstat (limited to 'src/layout/mod.rs')
| -rw-r--r-- | src/layout/mod.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 6935afc2..e272d102 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -18,9 +18,9 @@ use std::rc::Rc; use crate::eval::{StyleChain, Styled}; use crate::font::FontStore; use crate::frame::Frame; -use crate::geom::{Align, Linear, Point, Sides, Size, Spec, Transform}; +use crate::geom::{Align, Linear, Point, Sides, Size, Spec}; use crate::image::ImageStore; -use crate::library::{AlignNode, PadNode, PageNode, SizedNode, TransformNode}; +use crate::library::{AlignNode, Move, PadNode, PageNode, SizedNode, TransformNode}; use crate::Context; /// The root layout node, a document consisting of top-level page runs. @@ -177,13 +177,12 @@ impl PackedNode { /// Transform this node's contents without affecting layout. pub fn moved(self, offset: Point) -> Self { - self.transformed(Transform::translation(offset.x, offset.y), Align::LEFT_TOP) - } - - /// Transform this node's contents without affecting layout. - pub fn transformed(self, transform: Transform, origin: Spec<Align>) -> Self { - if !transform.is_identity() { - TransformNode { transform, origin, child: self }.pack() + if !offset.is_zero() { + TransformNode { + kind: Move(offset.x, offset.y), + child: self, + } + .pack() } else { self } |
