added gaps

This commit is contained in:
Louis Heredero 2024-06-18 16:24:11 +02:00
parent b8d0c3468c
commit adc50124ad
Signed by: HEL
GPG Key ID: 8D83DE470F8544E7
4 changed files with 28 additions and 2 deletions

Binary file not shown.

View File

@ -54,3 +54,15 @@ Alice <-- Bob: Another authentication Response
_seq("Alice", "Bob", comment: "Another authentication Request") _seq("Alice", "Bob", comment: "Another authentication Request")
_seq("Bob", "Alice", comment: "another authentication Response", dashed: true) _seq("Bob", "Alice", comment: "another authentication Response", dashed: true)
}) })
#chronos.diagram({
import "/src/diagram.typ": *
_seq("Alice", "Bob", comment: "message 1")
_seq("Bob", "Alice", comment: "ok", dashed: true)
_gap()
_seq("Alice", "Bob", comment: "message 2")
_seq("Bob", "Alice", comment: "ok", dashed: true)
_gap(size: 45)
_seq("Alice", "Bob", comment: "message 3")
_seq("Bob", "Alice", comment: "ok", dashed: true)
})

View File

@ -55,6 +55,13 @@
),) ),)
} }
#let _gap(size: 20) = {
return ((
type: "gap",
size: size
),)
}
#let diagram(elements) = { #let diagram(elements) = {
let participants = () let participants = ()
let elmts = elements let elmts = elements

View File

@ -4,6 +4,7 @@
#let Y-SPACE = 10 #let Y-SPACE = 10
#let PAR-PAD = (5pt, 3pt) #let PAR-PAD = (5pt, 3pt)
#let PAR-SPACE = 10 #let PAR-SPACE = 10
#let COMMENT-PAD = 8
#let get-columns-width(participants, elements) = { #let get-columns-width(participants, elements) = {
@ -38,7 +39,7 @@
let m = measure(cell.cell) let m = measure(cell.cell)
widths.at(cell.i1) = calc.max( widths.at(cell.i1) = calc.max(
widths.at(cell.i1), widths.at(cell.i1),
m.width / 1pt m.width / 1pt + COMMENT-PAD
) )
} }
@ -133,9 +134,13 @@
) )
if elmt.comment != none { if elmt.comment != none {
let x = calc.min(x1, x2)
if x2 < x1 {
x += COMMENT-PAD
}
y -= measure(box(elmt.comment)).height / 1pt + 6 y -= measure(box(elmt.comment)).height / 1pt + 6
draw.content( draw.content(
(calc.min(x1, x2), y), (x, y),
elmt.comment, elmt.comment,
anchor: "south-west", anchor: "south-west",
padding: 3pt padding: 3pt
@ -200,6 +205,8 @@
) )
y -= h / 2 y -= h / 2
y -= Y-SPACE y -= Y-SPACE
} else if elmt.type == "gap" {
y -= elmt.size
} }
} }