Compare commits
2 Commits
f308ef7f4a
...
96fa33b055
Author | SHA1 | Date | |
---|---|---|---|
96fa33b055
|
|||
c6e01b6b3b
|
@@ -24,7 +24,7 @@
|
|||||||
let y1 = ctx.y - size
|
let y1 = ctx.y - size
|
||||||
for (i, line) in ctx.lifelines.enumerate() {
|
for (i, line) in ctx.lifelines.enumerate() {
|
||||||
line.events.push((type: "delay-start", y: y0))
|
line.events.push((type: "delay-start", y: y0))
|
||||||
line.events.push((type: "delay-end", y: y1, stroke: style.stroke))
|
line.events.push((type: "delay-end", y: y1, style: style))
|
||||||
ctx.lifelines.at(i) = line
|
ctx.lifelines.at(i) = line
|
||||||
}
|
}
|
||||||
if delay.name != none {
|
if delay.name != none {
|
||||||
|
@@ -1,18 +1,26 @@
|
|||||||
|
#import "/src/cetz.typ": styles
|
||||||
|
|
||||||
#import "/src/consts.typ": *
|
#import "/src/consts.typ": *
|
||||||
#import "/src/core/utils.typ": get-ctx, set-ctx
|
#import "/src/core/utils.typ": get-ctx, set-ctx
|
||||||
|
|
||||||
#let render(evt) = get-ctx(ctx => {
|
#let render(evt) = get-ctx(ctx => {
|
||||||
|
let style = styles.resolve(
|
||||||
|
ctx.style,
|
||||||
|
merge: evt.style,
|
||||||
|
root: "event",
|
||||||
|
base: ()
|
||||||
|
)
|
||||||
|
|
||||||
let par-name = evt.participant
|
let par-name = evt.participant
|
||||||
let i = ctx.pars-i.at(par-name)
|
let i = ctx.pars-i.at(par-name)
|
||||||
let par = ctx.participants.at(i)
|
let par = ctx.participants.at(i)
|
||||||
let line = ctx.lifelines.at(i)
|
let line = ctx.lifelines.at(i)
|
||||||
let entry = (type: evt.event, y: ctx.y)
|
let entry = (type: evt.event, y: ctx.y, style: style)
|
||||||
|
|
||||||
if evt.event == "disable" {
|
if evt.event == "disable" {
|
||||||
line.level -= 1
|
line.level -= 1
|
||||||
} else if evt.event == "enable" {
|
} else if evt.event == "enable" {
|
||||||
line.level += 1
|
line.level += 1
|
||||||
entry.insert("style", evt.lifeline-style)
|
|
||||||
} else if evt.event == "create" {
|
} else if evt.event == "create" {
|
||||||
ctx.y -= CREATE-OFFSET
|
ctx.y -= CREATE-OFFSET
|
||||||
entry.y = ctx.y
|
entry.y = ctx.y
|
||||||
|
@@ -156,7 +156,7 @@
|
|||||||
draw.line(
|
draw.line(
|
||||||
(x, last-y),
|
(x, last-y),
|
||||||
(x, event.y),
|
(x, event.y),
|
||||||
stroke: event.stroke
|
stroke: event.style.stroke
|
||||||
)
|
)
|
||||||
last-y = event.y
|
last-y = event.y
|
||||||
}
|
}
|
||||||
|
28
src/misc.typ
28
src/misc.typ
@@ -1,8 +1,10 @@
|
|||||||
|
#import "cetz.typ": styles
|
||||||
|
|
||||||
#import "core/draw/delay.typ"
|
#import "core/draw/delay.typ"
|
||||||
#import "core/draw/event.typ": render as evt-render
|
#import "core/draw/event.typ": render as evt-render
|
||||||
#import "core/draw/separator.typ"
|
#import "core/draw/separator.typ"
|
||||||
#import "core/draw/sync.typ"
|
#import "core/draw/sync.typ"
|
||||||
#import "core/utils.typ": set-ctx
|
#import "core/utils.typ": get-ctx, normalize-units, set-y
|
||||||
|
|
||||||
#let _sep(name, ..style) = {
|
#let _sep(name, ..style) = {
|
||||||
return ((
|
return ((
|
||||||
@@ -30,26 +32,36 @@
|
|||||||
),)
|
),)
|
||||||
}
|
}
|
||||||
|
|
||||||
#let gap-render(gap) = set-ctx(ctx => {
|
#let gap-default-style = (
|
||||||
ctx.y -= gap.size
|
size: 20pt
|
||||||
return ctx
|
)
|
||||||
|
|
||||||
|
#let gap-render(gap) = get-ctx(ctx => {
|
||||||
|
let style = styles.resolve(
|
||||||
|
ctx.style,
|
||||||
|
merge: gap.style,
|
||||||
|
root: "gap",
|
||||||
|
base: gap-default-style
|
||||||
|
)
|
||||||
|
let size = normalize-units(style.size)
|
||||||
|
set-y(ctx.y - size)
|
||||||
})
|
})
|
||||||
|
|
||||||
#let _gap(size: 20) = {
|
#let _gap(..style) = {
|
||||||
return ((
|
return ((
|
||||||
type: "gap",
|
type: "gap",
|
||||||
draw: gap-render,
|
draw: gap-render,
|
||||||
size: size
|
style: style.named()
|
||||||
),)
|
),)
|
||||||
}
|
}
|
||||||
|
|
||||||
#let _evt(participant, event) = {
|
#let _evt(participant, event, ..style) = {
|
||||||
return ((
|
return ((
|
||||||
type: "evt",
|
type: "evt",
|
||||||
draw: evt-render,
|
draw: evt-render,
|
||||||
participant: participant,
|
participant: participant,
|
||||||
event: event,
|
event: event,
|
||||||
lifeline-style: auto
|
style: style.named()
|
||||||
),)
|
),)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user