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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/b8a0a5e2-aac0-42bf-a2a2-7d9b150bd709n%40googlegroups.com.

Reply via email to