[plt-scheme] Text field font troubles
Thank you, change-style did the trick!
- Sky O.
On Aug 7, 2008, at 3:24 PM, Robby Findler wrote:
> I think you want the change-style method of the text (using the
> style-delta as an argument to that). See also begin-edit-sequence and
> end-edit-sequence.
>
> (If that's not enough help, I can adjust your program below to get
> you started.)
>
> Robby
>
> On Thu, Aug 7, 2008 at 11:59 AM, Sky O'Mara <skyo at ccs.neu.edu> wrote:
>> Hi,
>>
>> I am using MrEd to write a program with a GUI that contains a text
>> field to
>> send feedback to the user. I would like to be able to insert
>> segments of
>> colored text into the text field, but I am running into a roadblock
>> because
>> I do not fully understand how styles work.
>>
>> Here is some example code to demonstrate what I have tried so far.
>> The
>> documentation does not seem to make it much clearer than this:
>>
>> #lang scheme/gui
>>
>> (define main-window
>> (new frame%
>> [label "Window"]
>> [width 500]
>> [height 500]))
>>
>> (define editor (new text%))
>>
>> (define canvas
>> (new editor-canvas%
>> [parent main-window]
>> [editor editor]))
>>
>> ;; insert-red-text : String editor<%> -> Void
>> ;; Inserts red text into the editor.
>> (define (insert-red-text str ed)
>> (let* ([snip (make-object string-snip% str)]
>> [style (send snip get-style)]
>> [delta (make-object style-delta%)]
>> [newdelta (send delta set-delta-foreground "Red")])
>> (send style set-delta newdelta)
>> (send snip set-style style)
>> (send ed insert snip)))
>>
>> (send main-window show #t)
>>
>> (send editor insert "Regular text...")
>> (insert-red-text "Red text..." editor)
>>
>> The idea behind insert-red-text is to create a new snip% object,
>> change its
>> style to have a different color, and then insert the snip into the
>> editor. I
>> am not having luck getting it to work. The function inserts the
>> text, but
>> only in the default font.
>>
>> Any help would be much appreciated.
>>
>> - Sky O.
>> _________________________________________________
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>>