blob: 9c04f75a1ecbfb9d6a7afd2b385693db942cd2de (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/rc
delay=0.1
dir=/mnt/gui
# split the window vertically into two, and make the top one a textbox
echo vertical >> $dir/props/orientation
textdir=$dir/`{cat $dir/clone}
echo textbox >> $textdir/type
fn show {
echo -n $* >> $textdir/props/text
}
dir=$dir/`{cat $dir/clone}
colours=(FF0000 00FF00 0000FF FFFF00 00FFFF FF00FF FFFFFF 333333)
for(colour in $colours){
dir=$dir/`{cat $dir/clone} # Create a new sub element in the gui (for now, always a "container")
echo $colour^FF >> $dir/props/background # Set the background
show 'setting background of '^$dir^' to 0x'^$colour
sleep $delay # Wait a bit
}
# Now do the same, but don't nest the elements
for(colour in $colours){
subdir=$dir/`{cat $dir/clone}
echo $colour^FF >> $subdir/props/background
show 'setting background of '^$subdir^' to 0x'^$colour
sleep $delay
}
# Add some padding to all elements
for(f in `{walk /mnt/gui/ | grep 'padding$'}){
echo 10 >> $f
show 'echo 10 >> '^$f
sleep $delay
}
# Add a border to the innermost elements
for(f in `{walk /mnt/gui | grep $dir'/[0-9]+/props/border$'}){
echo 8888CCFF >> $f^colour
echo 5 >> $f
show 'echo 5 >> '^$f
sleep $delay
}
# Add some margin to the innermost elements
for(f in `{walk /mnt/gui | grep $dir'/[0-9]+/props/margin'}){
echo 5 >> $f
show 'echo 5 >> '^$f
sleep $delay
}
# Make the inner container vertical
echo vertical >> $dir/props/orientation
show 'echo vertical >> '^$dir/props/orientation
fn printevents {
while(event = `''{read}){
show $1': '$event
}
}
# Attach an event printer to the innermost elements
for(f in `{walk /mnt/gui | grep $dir'/[0-9]+/event'}){
printevents $f <$f >[2]/dev/null &
}
# Create a right-click menu on the text field
echo 'R/this is a/right click/menu' >> /mnt/gui/0/props/menus
# Also attach an event printer to the text field
printevents 'text field' </mnt/gui/0/event >[2]/dev/null &
wait
|