1require ("slsmg", "Global");	       %  Global namespace
2
3private variable Button_Color = 3;
4private variable Box_Color = 2;
5private variable Normal_Color = 1;
6
7slsmg_define_color (Button_Color, "black", "brown");
8slsmg_define_color (Box_Color, "yellow", "cyan");
9slsmg_define_color (Normal_Color, "lightgray", "blue");
10
11private define display_button (name, r, c)
12{
13   slsmg_gotorc (r, c);
14   slsmg_set_color (Button_Color);
15   slsmg_write_string (" " + name + " ");
16   slsmg_set_color (Normal_Color);
17}
18
19private define draw_centered_string (s, r, c, dc)
20{
21   variable len;
22
23   len = strlen (s);
24   slsmg_gotorc (r, c + (dc - len)/2);
25   slsmg_write_string (s);
26}
27
28private define get_yes_no_cancel (question)
29{
30   variable r, c, dr, dc;
31
32   dc = strlen (question) + 5;
33   dr = 7;
34
35   % We also need room for the yes-no-cancel buttons
36   if (dc < 32) dc = 36;
37
38   r = (SLsmg_Screen_Rows - dr)/2;
39   c = (SLsmg_Screen_Cols - dc)/2;
40
41   slsmg_set_color (Box_Color);
42   slsmg_draw_box (r, c, dr, dc);
43   slsmg_set_color (Normal_Color);
44
45   r += 2;
46
47   draw_centered_string (question + "?", r, c, dc);
48
49   r += 2;
50   display_button ("Yes", r, c + 4);
51   display_button ("No", r, c + 14);
52   display_button ("Cancel", r, c + 24);
53}
54
55slsmg_write_to_status_line ("smg-module demo");
56slsmg_init_smg ();
57slsmg_set_color(Normal_Color);
58slsmg_erase_eos ();
59get_yes_no_cancel ("This demo will exit in 5 seconds");
60
61slsmg_refresh ();
62sleep (5);
63
64slsmg_write_to_status_line ("");
65
66%slsmg_reset_smg ();
67
68exit(0);
69