[racket] Changing the background color dynamically in FrTime

From: Marijn (hkBst at gentoo.org)
Date: Wed Jun 22 12:28:37 EDT 2011

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi list,

is it possible to change the background color of say a fr-text-field%
dynamically, for example to represent wether the entry is valid
(according to some local criterium). I think I would need something that
maps from events to actions, like a `foreach-e' or something, instead of
`map-e' (which comes closest of the things I find in the docs, but
doesn't seem to work):


#lang frtime

(require frtime/gui/fred racket/draw)

(define good-color (send the-color-database find-color "green"))
(define bad-color (send the-color-database find-color "red"))

(define (field->number f)
  (let* ((str (send f get-value-b)) (num (string->number str)))
    (if num num 0)))

(define (field->color f)
  (let* ((str (send f get-value-b)) (num (string->number str)))
    (if num good-color bad-color)))

(define root (new ft-frame% (label "Summator")))

(define field1 (new ft-text-field% (parent root)))
(define number1 (field->number field1))
;(send field1 set-field-background bad-color)
(map-e (lambda (c) (send field1 set-field-background c))
       (changes (field->color field1)))

(define field2 (new ft-text-field% (parent root)))
(define number2 (field->number field2))

(define field-sum (new ft-message% (parent root) (stretchable-width #t)
                       (label (string-append
                               "Sum: "
                               (number->string (+ number1 number2))))))

(send root show #t)


Marijn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk4CGDUACgkQp/VmCx0OL2xKPQCfeHA0yP23VV3776B+sXmBd5jf
B3EAnieHTkCrdmRDscTc24FOAmV19Z+y
=Yw2n
-----END PGP SIGNATURE-----


Posted on the users mailing list.