diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-09-20 13:05:55 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-09-20 16:37:15 +0200 |
| commit | 757a701c1aa2a6fb80033c7e75666661818da6f9 (patch) | |
| tree | 0415fec94d3856f4ebc97a1744cf2ba75fe8e7aa /src/library/layout | |
| parent | e29f55bb294cc298daad97accf6d8a76976b409c (diff) | |
A New World
Diffstat (limited to 'src/library/layout')
| -rw-r--r-- | src/library/layout/align.rs | 6 | ||||
| -rw-r--r-- | src/library/layout/columns.rs | 10 | ||||
| -rw-r--r-- | src/library/layout/container.rs | 4 | ||||
| -rw-r--r-- | src/library/layout/flow.rs | 10 | ||||
| -rw-r--r-- | src/library/layout/grid.rs | 20 | ||||
| -rw-r--r-- | src/library/layout/pad.rs | 6 | ||||
| -rw-r--r-- | src/library/layout/page.rs | 16 | ||||
| -rw-r--r-- | src/library/layout/place.rs | 6 | ||||
| -rw-r--r-- | src/library/layout/spacing.rs | 4 | ||||
| -rw-r--r-- | src/library/layout/stack.rs | 10 |
10 files changed, 46 insertions, 46 deletions
diff --git a/src/library/layout/align.rs b/src/library/layout/align.rs index e7a27c04..3b1a4aaf 100644 --- a/src/library/layout/align.rs +++ b/src/library/layout/align.rs @@ -12,7 +12,7 @@ pub struct AlignNode { #[node] impl AlignNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let aligns: Spec<Option<RawAlign>> = args.find()?.unwrap_or_default(); let body: Content = args.expect("body")?; Ok(match (body, aligns) { @@ -28,7 +28,7 @@ impl AlignNode { impl Layout for AlignNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { @@ -43,7 +43,7 @@ impl Layout for AlignNode { } // Layout the child. - let mut frames = self.child.layout(ctx, &pod, passed.chain(&styles))?; + let mut frames = self.child.layout(world, &pod, passed.chain(&styles))?; for (region, frame) in regions.iter().zip(&mut frames) { // Align in the target size. The target size depends on whether we // should expand. diff --git a/src/library/layout/columns.rs b/src/library/layout/columns.rs index efc435aa..bfbbfd8d 100644 --- a/src/library/layout/columns.rs +++ b/src/library/layout/columns.rs @@ -17,7 +17,7 @@ impl ColumnsNode { #[property(resolve)] pub const GUTTER: Relative<RawLength> = Ratio::new(0.04).into(); - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { Ok(Content::block(Self { columns: args.expect("column count")?, child: args.expect("body")?, @@ -28,14 +28,14 @@ impl ColumnsNode { impl Layout for ColumnsNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { // Separating the infinite space into infinite columns does not make // much sense. if !regions.first.x.is_finite() { - return self.child.layout(ctx, regions, styles); + return self.child.layout(world, regions, styles); } // Determine the width of the gutter and each column. @@ -57,7 +57,7 @@ impl Layout for ColumnsNode { }; // Layout the children. - let mut frames = self.child.layout(ctx, &pod, styles)?.into_iter(); + let mut frames = self.child.layout(world, &pod, styles)?.into_iter(); let mut finished = vec![]; let dir = styles.get(TextNode::DIR); @@ -106,7 +106,7 @@ pub struct ColbreakNode; #[node] impl ColbreakNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let weak = args.named("weak")?.unwrap_or(false); Ok(Content::Colbreak { weak }) } diff --git a/src/library/layout/container.rs b/src/library/layout/container.rs index df03ac91..66a43751 100644 --- a/src/library/layout/container.rs +++ b/src/library/layout/container.rs @@ -5,7 +5,7 @@ pub struct BoxNode; #[node] impl BoxNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let width = args.named("width")?; let height = args.named("height")?; let body: LayoutNode = args.eat()?.unwrap_or_default(); @@ -18,7 +18,7 @@ pub struct BlockNode; #[node] impl BlockNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { Ok(Content::Block(args.eat()?.unwrap_or_default())) } } diff --git a/src/library/layout/flow.rs b/src/library/layout/flow.rs index c6d2999e..841b80aa 100644 --- a/src/library/layout/flow.rs +++ b/src/library/layout/flow.rs @@ -25,7 +25,7 @@ pub enum FlowChild { impl Layout for FlowNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { @@ -38,7 +38,7 @@ impl Layout for FlowNode { layouter.layout_spacing(*kind, styles); } FlowChild::Node(ref node) => { - layouter.layout_node(ctx, node, styles)?; + layouter.layout_node(world, node, styles)?; } FlowChild::Colbreak => { layouter.finish_region(); @@ -149,7 +149,7 @@ impl FlowLayouter { /// Layout a node. pub fn layout_node( &mut self, - ctx: &mut Context, + world: &dyn World, node: &LayoutNode, styles: StyleChain, ) -> TypResult<()> { @@ -162,7 +162,7 @@ impl FlowLayouter { // aligned later. if let Some(placed) = node.downcast::<PlaceNode>() { if placed.out_of_flow() { - let frame = node.layout(ctx, &self.regions, styles)?.remove(0); + let frame = node.layout(world, &self.regions, styles)?.remove(0); self.items.push(FlowItem::Placed(frame)); return Ok(()); } @@ -180,7 +180,7 @@ impl FlowLayouter { .unwrap_or(Align::Top), ); - let frames = node.layout(ctx, &self.regions, styles)?; + let frames = node.layout(world, &self.regions, styles)?; let len = frames.len(); for (i, mut frame) in frames.into_iter().enumerate() { // Set the generic block role. diff --git a/src/library/layout/grid.rs b/src/library/layout/grid.rs index 93dbf97e..3fde9c10 100644 --- a/src/library/layout/grid.rs +++ b/src/library/layout/grid.rs @@ -13,7 +13,7 @@ pub struct GridNode { #[node] impl GridNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let columns = args.named("columns")?.unwrap_or_default(); let rows = args.named("rows")?.unwrap_or_default(); let base_gutter: Vec<TrackSizing> = args.named("gutter")?.unwrap_or_default(); @@ -33,13 +33,13 @@ impl GridNode { impl Layout for GridNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { // Prepare grid layout by unifying content and gutter tracks. let layouter = GridLayouter::new( - ctx, + world, self.tracks.as_deref(), self.gutter.as_deref(), &self.cells, @@ -93,7 +93,7 @@ castable! { /// Performs grid layout. pub struct GridLayouter<'a> { /// The core context. - ctx: &'a mut Context, + world: &'a dyn World, /// The grid cells. cells: &'a [LayoutNode], /// The column tracks including gutter tracks. @@ -133,7 +133,7 @@ impl<'a> GridLayouter<'a> { /// /// This prepares grid layout by unifying content and gutter tracks. pub fn new( - ctx: &'a mut Context, + world: &'a dyn World, tracks: Spec<&[TrackSizing]>, gutter: Spec<&[TrackSizing]>, cells: &'a [LayoutNode], @@ -187,7 +187,7 @@ impl<'a> GridLayouter<'a> { regions.expand = Spec::new(true, false); Self { - ctx, + world, cells, cols, rows, @@ -301,7 +301,7 @@ impl<'a> GridLayouter<'a> { v.resolve(self.styles).relative_to(self.regions.base.y); } - let frame = node.layout(self.ctx, &pod, self.styles)?.remove(0); + let frame = node.layout(self.world, &pod, self.styles)?.remove(0); resolved.set_max(frame.width()); } } @@ -371,7 +371,7 @@ impl<'a> GridLayouter<'a> { } let mut sizes = node - .layout(self.ctx, &pod, self.styles)? + .layout(self.world, &pod, self.styles)? .into_iter() .map(|frame| frame.height()); @@ -460,7 +460,7 @@ impl<'a> GridLayouter<'a> { .select(self.regions.base, size); let pod = Regions::one(size, base, Spec::splat(true)); - let frame = node.layout(self.ctx, &pod, self.styles)?.remove(0); + let frame = node.layout(self.world, &pod, self.styles)?.remove(0); match frame.role() { Some(Role::ListLabel | Role::ListItemBody) => { output.apply_role(Role::ListItem) @@ -508,7 +508,7 @@ impl<'a> GridLayouter<'a> { } // Push the layouted frames into the individual output frames. - let frames = node.layout(self.ctx, &pod, self.styles)?; + let frames = node.layout(self.world, &pod, self.styles)?; for (output, frame) in outputs.iter_mut().zip(frames) { match frame.role() { Some(Role::ListLabel | Role::ListItemBody) => { diff --git a/src/library/layout/pad.rs b/src/library/layout/pad.rs index 9d91c641..72235ccd 100644 --- a/src/library/layout/pad.rs +++ b/src/library/layout/pad.rs @@ -11,7 +11,7 @@ pub struct PadNode { #[node] impl PadNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let all = args.named("rest")?.or(args.find()?); let x = args.named("x")?; let y = args.named("y")?; @@ -28,14 +28,14 @@ impl PadNode { impl Layout for PadNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { // Layout child into padded regions. let padding = self.padding.resolve(styles); let pod = regions.map(|size| shrink(size, padding)); - let mut frames = self.child.layout(ctx, &pod, styles)?; + let mut frames = self.child.layout(world, &pod, styles)?; for frame in &mut frames { // Apply the padding inversely such that the grown size padded diff --git a/src/library/layout/page.rs b/src/library/layout/page.rs index afcc4855..6e43c4ef 100644 --- a/src/library/layout/page.rs +++ b/src/library/layout/page.rs @@ -41,7 +41,7 @@ impl PageNode { #[property(referenced)] pub const FOREGROUND: Marginal = Marginal::None; - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { Ok(Content::Page(Self(args.expect("body")?))) } @@ -57,7 +57,7 @@ impl PageNode { /// Layout the page run into a sequence of frames, one per page. pub fn layout( &self, - ctx: &mut Context, + world: &dyn World, mut page: usize, styles: StyleChain, ) -> TypResult<Vec<Frame>> { @@ -97,7 +97,7 @@ impl PageNode { // Layout the child. let regions = Regions::repeat(size, size, size.map(Length::is_finite)); - let mut frames = child.layout(ctx, ®ions, styles)?; + let mut frames = child.layout(world, ®ions, styles)?; let header = styles.get(Self::HEADER); let footer = styles.get(Self::FOOTER); @@ -126,9 +126,9 @@ impl PageNode { (Role::Foreground, foreground, Point::zero(), size), (Role::Background, background, Point::zero(), size), ] { - if let Some(content) = marginal.resolve(ctx, page)? { + if let Some(content) = marginal.resolve(world, page)? { let pod = Regions::one(area, area, Spec::splat(true)); - let mut sub = content.layout(ctx, &pod, styles)?.remove(0); + let mut sub = content.layout(world, &pod, styles)?.remove(0); sub.apply_role(role); if role == Role::Background { @@ -159,7 +159,7 @@ pub struct PagebreakNode; #[node] impl PagebreakNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let weak = args.named("weak")?.unwrap_or(false); Ok(Content::Pagebreak { weak }) } @@ -178,13 +178,13 @@ pub enum Marginal { impl Marginal { /// Resolve the marginal based on the page number. - pub fn resolve(&self, ctx: &mut Context, page: usize) -> TypResult<Option<Content>> { + pub fn resolve(&self, world: &dyn World, page: usize) -> TypResult<Option<Content>> { Ok(match self { Self::None => None, Self::Content(content) => Some(content.clone()), Self::Func(func, span) => { let args = Args::new(*span, [Value::Int(page as i64)]); - Some(func.call_detached(ctx, args)?.display()) + Some(func.call_detached(world, args)?.display()) } }) } diff --git a/src/library/layout/place.rs b/src/library/layout/place.rs index 4c6d0062..bb3aac2d 100644 --- a/src/library/layout/place.rs +++ b/src/library/layout/place.rs @@ -7,7 +7,7 @@ pub struct PlaceNode(pub LayoutNode); #[node] impl PlaceNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let aligns = args.find()?.unwrap_or(Spec::with_x(Some(RawAlign::Start))); let dx = args.named("dx")?.unwrap_or_default(); let dy = args.named("dy")?.unwrap_or_default(); @@ -21,7 +21,7 @@ impl PlaceNode { impl Layout for PlaceNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { @@ -35,7 +35,7 @@ impl Layout for PlaceNode { Regions::one(regions.base, regions.base, expand) }; - let mut frames = self.0.layout(ctx, &pod, styles)?; + let mut frames = self.0.layout(world, &pod, styles)?; // If expansion is off, zero all sizes so that we don't take up any // space in our parent. Otherwise, respect the expand settings. diff --git a/src/library/layout/spacing.rs b/src/library/layout/spacing.rs index da4a96b6..e435e60c 100644 --- a/src/library/layout/spacing.rs +++ b/src/library/layout/spacing.rs @@ -8,7 +8,7 @@ pub struct HNode; #[node] impl HNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let amount = args.expect("spacing")?; let weak = args.named("weak")?.unwrap_or(false); Ok(Content::Horizontal { amount, weak }) @@ -20,7 +20,7 @@ pub struct VNode; #[node] impl VNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { let amount = args.expect("spacing")?; let weak = args.named("weak")?.unwrap_or(false); Ok(Content::Vertical { amount, weak, generated: false }) diff --git a/src/library/layout/stack.rs b/src/library/layout/stack.rs index d8dc0e1a..d07dc35e 100644 --- a/src/library/layout/stack.rs +++ b/src/library/layout/stack.rs @@ -15,7 +15,7 @@ pub struct StackNode { #[node] impl StackNode { - fn construct(_: &mut Machine, args: &mut Args) -> TypResult<Content> { + fn construct(_: &mut Vm, args: &mut Args) -> TypResult<Content> { Ok(Content::block(Self { dir: args.named("dir")?.unwrap_or(Dir::TTB), spacing: args.named("spacing")?, @@ -27,7 +27,7 @@ impl StackNode { impl Layout for StackNode { fn layout( &self, - ctx: &mut Context, + world: &dyn World, regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Frame>> { @@ -47,7 +47,7 @@ impl Layout for StackNode { layouter.layout_spacing(kind); } - layouter.layout_node(ctx, node, styles)?; + layouter.layout_node(world, node, styles)?; deferred = self.spacing; } } @@ -168,7 +168,7 @@ impl<'a> StackLayouter<'a> { /// Layout an arbitrary node. pub fn layout_node( &mut self, - ctx: &mut Context, + world: &dyn World, node: &LayoutNode, styles: StyleChain, ) -> TypResult<()> { @@ -193,7 +193,7 @@ impl<'a> StackLayouter<'a> { self.dir.start().into() }); - let frames = node.layout(ctx, &self.regions, styles)?; + let frames = node.layout(world, &self.regions, styles)?; let len = frames.len(); for (i, mut frame) in frames.into_iter().enumerate() { // Set the generic block role. |
