summaryrefslogtreecommitdiff
path: root/src/library/spacing.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-03-25 21:32:33 +0100
committerLaurenz <laurmaedje@gmail.com>2021-03-25 21:32:33 +0100
commit76fc4cca62f5b955200b2c62cc85b69eea491ece (patch)
tree5b8492268c996cf23b13e26c7a4356fbd156286d /src/library/spacing.rs
parente8057a53856dc09594c9e5861f1cd328531616e0 (diff)
Refactor alignments & directions 📐
- Adds lang function - Refactors execution context - Adds StackChild and ParChild enums
Diffstat (limited to 'src/library/spacing.rs')
-rw-r--r--src/library/spacing.rs21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/library/spacing.rs b/src/library/spacing.rs
index d4648566..6a67a653 100644
--- a/src/library/spacing.rs
+++ b/src/library/spacing.rs
@@ -1,5 +1,4 @@
use super::*;
-use crate::layout::SpacingNode;
/// `h`: Horizontal spacing.
///
@@ -9,7 +8,7 @@ use crate::layout::SpacingNode;
/// # Return value
/// A template that inserts horizontal spacing.
pub fn h(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value {
- spacing_impl(ctx, args, SpecAxis::Horizontal)
+ spacing_impl("h", ctx, args, GenAxis::Cross)
}
/// `v`: Vertical spacing.
@@ -20,20 +19,20 @@ pub fn h(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value {
/// # Return value
/// A template that inserts vertical spacing.
pub fn v(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value {
- spacing_impl(ctx, args, SpecAxis::Vertical)
+ spacing_impl("v", ctx, args, GenAxis::Main)
}
-fn spacing_impl(ctx: &mut EvalContext, args: &mut FuncArgs, axis: SpecAxis) -> Value {
+fn spacing_impl(
+ name: &str,
+ ctx: &mut EvalContext,
+ args: &mut FuncArgs,
+ axis: GenAxis,
+) -> Value {
let spacing: Option<Linear> = args.require(ctx, "spacing");
- Value::template("spacing", move |ctx| {
+ Value::template(name, move |ctx| {
if let Some(linear) = spacing {
let amount = linear.resolve(ctx.state.font.resolve_size());
- let spacing = SpacingNode { amount, softness: 0 };
- if axis == ctx.state.dirs.main.axis() {
- ctx.push_into_stack(spacing);
- } else {
- ctx.push(spacing);
- }
+ ctx.push_spacing(axis, amount, 0);
}
})
}