From 905a7cfd8f2011fab6dbfa566f3081d1d311412e Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Fri, 2 Jun 2023 16:37:36 -0400 Subject: Fix linebreaks in labels --- virtual-programs/label.folk | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'virtual-programs') diff --git a/virtual-programs/label.folk b/virtual-programs/label.folk index 002eeca5..3a5f7f38 100644 --- a/virtual-programs/label.folk +++ b/virtual-programs/label.folk @@ -13,18 +13,19 @@ When /thing/ has region /region/ { if {$::isLaptop} {set upsidedown false} When the collected matches for [list /someone/ wishes $thing is labelled /text/] are /matches/ { - set lines [lmap match $matches {dict get $match text}] - if {[llength lines] eq 0} { return } - - set lines [expr {$upsidedown ? [lreverse $lines] : $lines}] - set scale 1 - set fontSize [expr {18 * $scale}] - - for {set lineNum 0} {$lineNum < [llength $lines]} {incr lineNum} { - set line [lindex $lines $lineNum] - set ly [expr {$y + $lineNum * $fontSize}] - Display::text device $x $ly $scale $line $radians - } + set text [join [lmap match $matches {dict get $match text}] "\n"] + if {$text eq ""} { return } + set lines [split $text "\n"] + + set lines [expr {$upsidedown ? [lreverse $lines] : $lines}] + set scale 1 + set fontSize [expr {18 * $scale}] + + for {set lineNum 0} {$lineNum < [llength $lines]} {incr lineNum} { + set line [lindex $lines $lineNum] + set ly [expr {$y + $lineNum * $fontSize}] + Display::text device $x $ly $scale $line $radians + } } } @@ -33,8 +34,8 @@ fn text {coords text angle} { } When /anyone/ wishes /p/ has halo message /message/ & /p/ has region /r/ { - lassign [lindex $r 0] a b c d - lassign $a x y - text $a $message 0 - text $d $message 180 + lassign [lindex $r 0] a b c d + lassign $a x y + text $a $message 0 + text $d $message 180 } -- cgit v1.2.3