Rev 9577 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9577 | Rev 9648 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | MODULE Dialogs; |
1 | MODULE Dialogs; |
Line -... | Line 2... | ||
- | 2 | ||
2 | 3 | IMPORT |
|
Line 3... | Line -... | ||
3 | IMPORT KOSAPI, sys := SYSTEM, OpenDlg, ColorDlg; |
- | |
Line -... | Line 4... | ||
- | 4 | KOSAPI, SYSTEM, OpenDlg, ColorDlg; |
|
- | 5 | ||
- | 6 | ||
- | 7 | CONST |
|
- | 8 | btnNone = 0; |
|
- | 9 | btnClose = 1; |
|
- | 10 | btnOpen = 17; |
|
- | 11 | btnColor = 18; |
|
- | 12 | ||
- | 13 | ||
- | 14 | VAR |
|
- | 15 | header: ARRAY 1024 OF CHAR; |
|
4 | 16 | back_color: INTEGER; |
|
5 | VAR header: ARRAY 1024 OF CHAR; back_color: INTEGER; |
17 | |
6 | 18 | ||
7 | PROCEDURE WindowRedrawStatus(p: INTEGER); |
19 | PROCEDURE BeginDraw; |
Line -... | Line 20... | ||
- | 20 | BEGIN |
|
8 | BEGIN |
21 | KOSAPI.sysfunc2(12, 1) |
9 | KOSAPI.sysfunc2(12, p) |
22 | END BeginDraw; |
- | 23 | ||
- | 24 | ||
- | 25 | PROCEDURE EndDraw; |
|
- | 26 | BEGIN |
|
- | 27 | KOSAPI.sysfunc2(12, 2) |
|
- | 28 | END EndDraw; |
|
10 | END WindowRedrawStatus; |
29 | |
11 | 30 | ||
Line -... | Line 31... | ||
- | 31 | PROCEDURE DefineAndDrawWindow (left, top, width, height, color, style, hcolor, hstyle: INTEGER; header: ARRAY OF CHAR); |
|
12 | PROCEDURE DefineAndDrawWindow(x, y, w, h, color, style, hcolor, hstyle, htext: INTEGER); |
32 | BEGIN |
13 | BEGIN |
33 | KOSAPI.sysfunc6(0, left*65536 + width, top*65536 + height, color + LSL(style, 24), hcolor + LSL(hstyle, 24), SYSTEM.ADR(header[0])) |
14 | KOSAPI.sysfunc6(0, x * 65536 + w, y * 65536 + h, color + LSL(style, 24), hcolor + LSL(hstyle, 24), htext) |
34 | END DefineAndDrawWindow; |
Line -... | Line 35... | ||
- | 35 | ||
15 | END DefineAndDrawWindow; |
36 | |
16 | 37 | PROCEDURE WaitForEvent (): INTEGER; |
|
17 | PROCEDURE WaitForEvent(): INTEGER; |
38 | RETURN KOSAPI.sysfunc1(10) |
18 | RETURN KOSAPI.sysfunc1(10) |
39 | END WaitForEvent; |
Line -... | Line 40... | ||
- | 40 | ||
19 | END WaitForEvent; |
41 | |
20 | 42 | PROCEDURE ExitApp; |
|
21 | PROCEDURE ExitApp; |
43 | BEGIN |
22 | BEGIN |
44 | KOSAPI.sysfunc1(-1) |
Line -... | Line 45... | ||
- | 45 | END ExitApp; |
|
23 | KOSAPI.sysfunc1(-1) |
46 | |
Line 24... | Line 47... | ||
24 | END ExitApp; |
47 | |
- | 48 | PROCEDURE pause (t: INTEGER); |
|
25 | 49 | BEGIN |
|
26 | PROCEDURE pause(t: INTEGER); |
50 | KOSAPI.sysfunc2(5, t) |
27 | BEGIN |
51 | END pause; |
28 | KOSAPI.sysfunc2(5, t) |
52 | |
29 | END pause; |
53 | |
30 | 54 | PROCEDURE Buttons; |
|
31 | PROCEDURE Buttons; |
55 | |
32 | 56 | PROCEDURE Button (id, X, Y, W, H: INTEGER; Caption: ARRAY OF CHAR); |
|
Line 33... | Line 57... | ||
33 | PROCEDURE Button(id, X, Y, W, H: INTEGER; Caption: ARRAY OF CHAR); |
57 | VAR |
34 | VAR n, aux: INTEGER; |
58 | n: INTEGER; |
35 | BEGIN |
59 | BEGIN |
36 | n := LENGTH(Caption); |
60 | n := LENGTH(Caption); |
Line -... | Line 61... | ||
- | 61 | KOSAPI.sysfunc5(8, X*65536 + W, Y*65536 + H, id, 00C0C0C0H); |
|
37 | aux := KOSAPI.sysfunc5(8, X * 65536 + W, Y * 65536 + H, id, 00C0C0C0H); |
62 | X := X + (W - 8*n) DIV 2; |
38 | X := X + (W - 8 * n) DIV 2; |
63 | Y := Y + (H - 14) DIV 2; |
39 | Y := Y + (H - 14) DIV 2; |
64 | KOSAPI.sysfunc6(4, X*65536 + Y, LSL(48, 24), SYSTEM.ADR(Caption[0]), n, 0) |
40 | aux := KOSAPI.sysfunc6(4, X * 65536 + Y, LSL(48, 24), sys.ADR(Caption[0]), n, 0) |
65 | END Button; |
41 | END Button; |
66 | |
42 | 67 | BEGIN |
|
43 | BEGIN |
68 | Button(btnOpen, 5, 5, 70, 25, "open"); |
Line -... | Line 69... | ||
- | 69 | Button(btnColor, 85, 5, 70, 25, "color"); |
|
44 | Button(17, 5, 5, 70, 25, "open"); |
70 | END Buttons; |
45 | Button(18, 85, 5, 70, 25, "color"); |
71 | |
46 | END Buttons; |
72 | |
47 | 73 | PROCEDURE draw_window; |
|
48 | PROCEDURE draw_window; |
74 | BEGIN |
Line 64... | Line 90... | ||
64 | COPY(Open.FilePath, header) |
90 | COPY(Open.FilePath, header) |
65 | END |
91 | END |
66 | END |
92 | END |
67 | END OpenFile; |
93 | END OpenFile; |
Line -... | Line 94... | ||
- | 94 | ||
68 | 95 | ||
69 | PROCEDURE SelColor(Color: ColorDlg.Dialog); |
96 | PROCEDURE SelColor (Color: ColorDlg.Dialog); |
70 | BEGIN |
97 | BEGIN |
71 | IF Color # NIL THEN |
98 | IF Color # NIL THEN |
72 | ColorDlg.Show(Color); |
99 | ColorDlg.Show(Color); |
Line 77... | Line 104... | ||
77 | back_color := Color.color |
104 | back_color := Color.color |
78 | END |
105 | END |
79 | END |
106 | END |
80 | END SelColor; |
107 | END SelColor; |
Line -... | Line 108... | ||
- | 108 | ||
- | 109 | ||
- | 110 | PROCEDURE GetButton (): INTEGER; |
|
- | 111 | VAR |
|
- | 112 | btn: INTEGER; |
|
- | 113 | BEGIN |
|
- | 114 | btn := KOSAPI.sysfunc1(17); |
|
- | 115 | IF btn MOD 256 = 0 THEN |
|
- | 116 | btn := btn DIV 256 |
|
- | 117 | ELSE |
|
- | 118 | btn := btnNone |
|
- | 119 | END |
|
- | 120 | RETURN btn |
|
- | 121 | END GetButton; |
|
- | 122 | ||
81 | 123 | ||
- | 124 | PROCEDURE main; |
|
- | 125 | CONST |
|
- | 126 | EVENT_REDRAW = 1; |
|
- | 127 | EVENT_KEY = 2; |
|
- | 128 | EVENT_BUTTON = 3; |
|
- | 129 | VAR |
|
82 | PROCEDURE main; |
130 | Open: OpenDlg.Dialog; |
83 | VAR Open: OpenDlg.Dialog; Color: ColorDlg.Dialog; res, al: INTEGER; |
131 | Color: ColorDlg.Dialog; |
84 | BEGIN |
132 | BEGIN |
85 | back_color := 00FFFFFFH; |
133 | back_color := 00FFFFFFH; |
86 | header := "Dialogs"; |
- | |
87 | draw_window; |
134 | header := "Dialogs"; |
88 | Open := OpenDlg.Create(draw_window, 0, "/sys", "ASM|TXT|INI"); |
135 | Open := OpenDlg.Create(draw_window, 0, "/sys", "ASM|TXT|INI"); |
- | 136 | Color := ColorDlg.Create(draw_window); |
|
89 | Color := ColorDlg.Create(draw_window); |
137 | |
90 | WHILE TRUE DO |
138 | WHILE TRUE DO |
- | 139 | CASE WaitForEvent() OF |
|
91 | CASE WaitForEvent() OF |
140 | |EVENT_REDRAW: |
- | 141 | draw_window |
|
92 | |1: draw_window |
142 | |
93 | |3: res := KOSAPI.sysfunc1(17); |
- | |
- | 143 | |EVENT_KEY: |
|
94 | al := LSR(LSL(res, 24), 24); |
144 | |
95 | res := LSR(res, 8); |
145 | |EVENT_BUTTON: |
96 | IF al = 0 THEN |
146 | CASE GetButton() OF |
97 | CASE res OF |
147 | |btnNone: |
98 | | 1: ExitApp |
148 | |btnClose: ExitApp |
99 | |17: OpenFile(Open) |
149 | |btnOpen: OpenFile(Open) |
100 | |18: SelColor(Color) |
- | |
101 | END |
150 | |btnColor: SelColor(Color) |
102 | END |
- | |
103 | ELSE |
151 | END |
104 | END |
152 | END |
105 | END |
153 | END |
Line -... | Line 154... | ||
- | 154 | END main; |
|
106 | END main; |
155 | |
107 | 156 | ||
108 | BEGIN |
157 | BEGIN |
109 | main |
158 | main |