The simplest thing is to just use tabs. A line of text would be "<user>\tYour Message here" and an overflowing line would be "\tOverflowing message". Yes, this will work for variable width fonts.
The `text%` class has a `set-tabs` method which allows setting the tab stops in drawing units on the canvas, so you can override `on-display-size` to set the tab width to be a percentage of the display, or you can leave it as a fixed width. Alex. On Tuesday, August 11, 2020 at 3:32:41 AM UTC+8 cwebber wrote: > Hello, > > I'm building a little chat application with Racket. Overall Racket's > GUI tools are quite comfortable, and I'm just using Rakcet's text editor > stuff to build the chat. But a fairly standard thing to do with chat > applications is to have text like: > > (Beware, fixed width ascii art ahead) > > .----------------------------------------------------------------. > | FooChat Deluxe [X]| > |----------------------------------------------------------------| > | File Blah | > |----------------------------------------------------------------| > | <alice> | It's snowing outside!! | alice | > | <bob> | In August???? | bob | > | <alice> | Nevermind, the snow is a representation of | carol | > | | collective anxiety about the world | | > | <bob> | Oh okay it is snowing then | | > |----------------------------------------------------------------| > | [Better go get some snow shoes then___________________] [Send] | > '----------------------------------------------------------------' > > The core idea there being that usernames left-align to the text. > > I'm not sure what's the nicest way to do this, though I've taken a guess > that maybe the "Show/Hide Line Numbers" in DrRacket is the best example. > I'd be happy to look at that but I can't really find it in the drracket > repository and am not sure where it would be? > > (I guess one other complication is that if you copy-pasta text it would > be great to still be able to copy paste the names too, but I can think > of some kludgery that might make that possible.) > > - Chris > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/b8a0a5e2-aac0-42bf-a2a2-7d9b150bd709n%40googlegroups.com.

