REBOL [
Title: "'Busy' Style"
Date: 25-Aug-2005
]
stylize/master [
BUSY: FACE 35x35 with [
colors: []
effect: [draw []]
state: false
images: [
scale 0.1 0.1 pen none
fill-pen colors/1 box 160x20 190x100
fill-pen colors/2 polygon 85x48 125x118 151x103 111x33
fill-pen colors/3 polygon 33x111 103x151 118x125 48x85
fill-pen colors/4 box 100x190 20x160
fill-pen colors/5 polygon 48x266 118x226 102x200 33x240
fill-pen colors/6 polygon 111x317 151x248 125x232 85x302
fill-pen colors/7 box 160x330 190x250
fill-pen colors/8 polygon 266x302 226x232 200x247 240x317
fill-pen colors/9 polygon 317x240 247x200 232x226 302x266
fill-pen colors/10 box 250x190 330x160
fill-pen colors/11 polygon 302x85 232x125 248x151 317x111
fill-pen colors/12 polygon 240x33 200x102 226x118 266x48
]
images: reduce [images []]
feel: make feel [
engage: func [face action event][
all [
find [time] event/type
head reverse next face/colors reverse face/colors
show face
]
]
]
access: make access [
get-face*: func [face][face/data]
set-face*: func [face arg [logic! tuple! pair!]][
switch type?/word arg [
logic! [
face/data/1: face/state: arg
face/rate: pick [30 #[none]] arg
face/effect/draw: pick face/images arg
]
tuple! [
face/data/2: arg
clear face/colors
arg: arg * 1.1.1.0
repeat x 12 [
arg/4: switch/default x [1 [0] 2 [51] 3 [85] 4 [102]][119]
append face/colors arg
]
]
pair! [
face/size: arg
arg: min arg/x arg/y
face/images/1/2: face/images/1/3: arg / 350
]
]
show face
]
]
init: [
color: any [color 51.51.51]
data: reduce [state color]
set-face self size
set-face self color
set-face self state
color: none
]
]
]