forked from HEL/chronos
		
	added gaps
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							| @@ -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) | ||||||
|  | }) | ||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user