Use ellipsis-msg instead of message%.

There's a 200 character contract for message% -> set-label.
This commit is contained in:
2026-09-16 23:53:00 +02:00
parent 2eb9a9590e
commit 705ff17c79
2 changed files with 33 additions and 23 deletions
+1
View File
@@ -21,6 +21,7 @@
"racket-sonos" "racket-sonos"
"racket-tray" "racket-tray"
"racket-upnp" "racket-upnp"
"ellipsis-msg"
("simple-ini" #:version "0.3.3") ("simple-ini" #:version "0.3.3")
"simple-log" "simple-log"
"uuid")) "uuid"))
+32 -23
View File
@@ -9,6 +9,7 @@
racket/string racket/string
racket-tray racket-tray
simple-log simple-log
ellipsis-msg
"player-agent-config.rkt" "player-agent-config.rkt"
"player-agent-core.rkt" "player-agent-core.rkt"
"player-agent-translate.rkt") "player-agent-translate.rkt")
@@ -101,6 +102,9 @@
(tray #f) (tray #f)
(shutting-down? #f)) (shutting-down? #f))
(define (cap200 msg)
(substring msg 0 (min 199 (string-length msg))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; goal : Queue a status-label update in the GUI eventspace. ; goal : Queue a status-label update in the GUI eventspace.
; pre : message is a string supplied by the agent runtime. ; pre : message is a string supplied by the agent runtime.
@@ -114,7 +118,7 @@
(queue-callback (queue-callback
(λ () (λ ()
(when status-message (when status-message
(send status-message set-label message))) (send status-message set-label (cap200 message))))
#f)) #f))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -206,21 +210,23 @@
""))))) "")))))
(send playback-message (send playback-message
set-label set-label
(if track (cap200
(format "~a~a: ~a" (if track
prefix (format "~a~a: ~a"
(if (number? track-number) prefix
(format " #~a" track-number) (if (number? track-number)
"") (format " #~a" track-number)
track-label) "")
(tr 'no-track))) track-label)
(send playback-details set-label (string-join details " · ")) (tr 'no-track))))
(send playback-details set-label (cap200 (string-join details " · ")))
(send playback-filename (send playback-filename
set-label set-label
(if (and (string? filename) (cap200
(if (and (string? filename)
(not (string=? filename ""))) (not (string=? filename "")))
filename filename
"—"))))) "—"))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; goal : Persist edited connection settings and reconnect the runtime. ; goal : Persist edited connection settings and reconnect the runtime.
@@ -246,7 +252,7 @@
(save-player-agent-config! config) (save-player-agent-config! config)
(send name-field set-value next-name) (send name-field set-value next-name)
((player-agent-runtime-reconnect! runtime) next-server next-name) ((player-agent-runtime-reconnect! runtime) next-server next-name)
(send connect-button set-label (tr 'reconnect)))) (send connect-button set-label (cap200 (tr 'reconnect)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; goal : Release resources owned by the GUI agent exactly once. ; goal : Release resources owned by the GUI agent exactly once.
@@ -322,7 +328,8 @@
(new agent-frame% (new agent-frame%
(label (tr 'app-title)) (label (tr 'app-title))
(width 560) (width 560)
(height 310)))) ;(height 310)
)))
(set! frame new-frame)) (set! frame new-frame))
(let* ((panel (let* ((panel
@@ -347,6 +354,7 @@
(label (tr 'playback)) (label (tr 'playback))
(alignment '(left top)) (alignment '(left top))
(stretchable-height #f))) (stretchable-height #f)))
;(msgs-pane (new vertical-pane% [parent panel]))
(controls (controls
(new horizontal-panel% (new horizontal-panel%
(parent panel) (parent panel)
@@ -357,30 +365,31 @@
;; render their label and text poorly on some display configurations. ;; render their label and text poorly on some display configurations.
(send (send id-field get-editor) lock #t) (send (send id-field get-editor) lock #t)
(set! playback-message (set! playback-message
(new message% (new ellipsis-msg%
(parent playback-panel) (parent playback-panel)
(label (tr 'no-track)) (label (tr 'no-track))
(auto-resize #t))) [ellipsis 'right] [auto-resize #t] [stretchable-width #t]
))
(set! playback-details (set! playback-details
(new message% (new ellipsis-msg%
(parent playback-panel) (parent playback-panel)
(label "00:00:00 / --:--:--") (label "00:00:00 / --:--:--")
(auto-resize #t))) [ellipsis 'right] [auto-resize #t] [stretchable-width #t]))
(set! playback-filename (set! playback-filename
(new message% (new ellipsis-msg%
(parent playback-panel) (parent playback-panel)
(label "—") (label "—")
(auto-resize #t))) [ellipsis 'right] [auto-resize #t] [stretchable-width #t]))
(set! connect-button (set! connect-button
(new button% (new button%
(parent controls) (parent controls)
(label (tr 'save-connect)) (label (tr 'save-connect))
(callback (λ (_button _event) (reconnect!))))) (callback (λ (_button _event) (reconnect!)))))
(set! status-message (set! status-message
(new message% (new ellipsis-msg%
(parent controls) (parent controls)
(label (tr 'connecting)) (label (tr 'connecting))
(auto-resize #t)))) [ellipsis 'right] [auto-resize #t] [stretchable-width #t])))
(set! playback-timer (set! playback-timer
(new timer% (new timer%
@@ -402,7 +411,7 @@
(send frame show #t) (send frame show #t)
((player-agent-runtime-start! runtime)) ((player-agent-runtime-start! runtime))
(send connect-button set-label (tr 'reconnect)) (send connect-button set-label (cap200 (tr 'reconnect)))
frame)) frame))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;