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.

Reply via email to