Use longer integers as context parameter of drawing operations
[pipeglade.git] / clock.sh
blobdd6fec2792c7a5df3fb06bd7a86425e02a507c74
1 #!/usr/bin/env bash
4 HL=100
5 ML=195
6 SL=195
7 R=215
8 ## drawing a clock face
9 echo "drawingarea1:translate 10000 220 220"
10 echo "drawingarea1:set_line_cap 10000 round"
11 echo "drawingarea1:set_source_rgba 10000 black"
12 echo "drawingarea1:arc 10000 0 0 $R 0 360"
13 echo "drawingarea1:fill 10000"
14 # date
15 echo "drawingarea1:set_font_face 10000 normal bold"
16 echo "drawingarea1:set_font_size 10000 25"
17 echo "drawingarea1:set_source_rgba 10000 white"
18 echo "drawingarea1:move_to 10000 0 30"
19 echo "drawingarea1:rel_move_for 10010 n Today"
20 echo "drawingarea1:show_text 10020 Today"
21 # hour hand
22 echo "drawingarea1:set_source_rgba 10000 rgba(255,255,0,.8)"
23 echo "drawingarea1:set_dash 10000"
24 echo "drawingarea1:set_line_width 10000 30"
25 echo "drawingarea1:move_to 10000 0 0"
26 echo "drawingarea1:arc 10030 0 0 $HL -90 -90"
27 echo "drawingarea1:stroke 10000"
28 # minute hand
29 echo "drawingarea1:set_source_rgba 10000 rgba(0,255,0,.7)"
30 echo "drawingarea1:set_dash 10000"
31 echo "drawingarea1:set_line_width 10000 25"
32 echo "drawingarea1:move_to 10000 0 0"
33 echo "drawingarea1:arc 10040 0 0 $ML -90 -90"
34 echo "drawingarea1:stroke 10000"
35 # second hand
36 echo "drawingarea1:set_source_rgba 10000 cyan"
37 echo "drawingarea1:set_dash 10000 4 4"
38 echo "drawingarea1:set_line_width 10000 2"
39 echo "drawingarea1:move_to 10000 0 0"
40 echo "drawingarea1:arc 10050 0 0 $SL -90 -90"
41 echo "drawingarea1:stroke 10000"
42 ## now turning the hands by replacing some of the commands above
43 H0=0
44 M0=0
45 S0=0
46 while true; do
47 D=`date +%F`
48 H=$(((`date +"%s"`/1200%72*10)+270+720))
49 M=$(((`date +"%s"`/20%180*2)+270+360))
50 S=$((((`date +"%s"`%60)*6)+270))
51 # date and hour hand
52 if [[ H -ne H0 ]]; then
53 echo "drawingarea1:rel_move_for =10010 n $D"
54 echo "drawingarea1:show_text =10020 $D"
55 echo "drawingarea1:arc =10030 0 0 $HL $H $H"
56 H0=$H
58 # minute hand
59 if [[ M -ne M0 ]]; then
60 echo "drawingarea1:arc =10040 0 0 $ML $M $M"
61 M0=$M
63 # second hand
64 echo "drawingarea1:arc =10050 0 0 $SL $S $S"
65 S0=$S
66 sleep 1
67 done
68 ) | ./pipeglade -u clock.ui