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