|
|
1.1 root 1: cookiedemo = proc ()
2: s = "COOKIE"
3: s1 = "cookie"
4: x_keymap$load("")
5: root: x_window := x_display$root()
6: bwidth: int := int$parse(xdemo_default("cookie", "BorderWidth"))
7: except when not_found, overflow, bad_format: bwidth := 5 end
8: back: x_pixmap := x_display$white()
9: bdr: x_pixmap := x_display$black()
10: plane: int := 1
11: backpix: int := WhitePixel
12: textpix: int := BlackPixel
13: if x_display$cells() > 2
14: then begin
15: r, g, b: int := x_parse_color(xdemo_default("cookie", "Border"))
16: bdr := x_pixmap$tile(x_display$alloc_color(r, g, b))
17: end except when not_found: end
18: begin
19: r, g, b: int := x_parse_color(xdemo_default("cookie", "Background"))
20: backpix := x_display$alloc_color(r, g, b)
21: back := x_pixmap$tile(backpix)
22: end except when not_found: end
23: begin
24: r, g, b: int := x_parse_color(xdemo_default("cookie", "Foreground"))
25: textpix := x_display$alloc_color(r, g, b)
26: end except when not_found: end
27: end
28: font: x_font := x_font$create("esch80")
29: except when error (*): font := x_font$create("oldeng") end
30: except when error (*): font := x_font$create(xdemo_default("cookie",
31: "BodyFont"))
32: end
33: fwidth, fheight: int, f, l: char, b: int, fix: bool := x_font$query(font)
34: swid: int := x_font$width(font, s)
35: w: x_window := x_window$create((x_display$width() - swid - 20) / 2,
36: (x_display$height() - fheight - 20) / 2,
37: swid + 5, fheight + 5,
38: back, root, bwidth, bdr)
39: w.name := "cookie"
40: w.input := KeyPressed + KeyReleased + ExposeWindow
41: x_window$map(w)
42: x_window$text(w, s, font, textpix, backpix, 5, 5)
43: i: int := 1
44: ev: event := x_input$empty_event()
45: while i <= string$size(s) do
46: x_input$deq(ev)
47: if ev.kind = ExposeWindow
48: then x_window$text(w, s, font, textpix, backpix, 5, 5)
49: elseif ev.kind = KeyPressed
50: then c: char := x_keymap$getc(ev.value, ev.mask)
51: except when none, multi (*): continue end
52: if c = s[i] cor c = s1[i]
53: then i := i + 1
54: else i := 1
55: end
56: else i := 1 end
57: end
58: x_window$clear(w)
59: x_window$text(w, "YUMMY", font, textpix, backpix, 5, 5)
60: x_flush()
61: sleep(2)
62: x_window$destroy(w)
63: end cookiedemo
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.