Rev 8728 | Rev 9175 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8728 | Rev 8762 | ||
---|---|---|---|
Line 46... | Line 46... | ||
46 | text: ARRAY 32 OF WCHAR; |
46 | text: ARRAY 32 OF WCHAR; |
47 | enabled, delim: BOOLEAN |
47 | enabled, delim: BOOLEAN |
48 | END; |
48 | END; |
Line 49... | Line 49... | ||
49 | 49 | ||
50 | tMenu* = POINTER TO RECORD |
- | |
51 | (*stack: POINTER TO RECORD stk: ARRAY 250000 OF INTEGER END;*) |
50 | tMenu* = POINTER TO RECORD |
52 | tid*: INTEGER; |
51 | tid*: INTEGER; |
53 | winX, winY, width*, height*: INTEGER; |
52 | winX, winY, width*, height*: INTEGER; |
Line 54... | Line 53... | ||
54 | selItem, cliItem: INTEGER; |
53 | selItem, cliItem: INTEGER; |
Line 161... | Line 160... | ||
161 | PROCEDURE click (m: tMenu; i: INTEGER); |
160 | PROCEDURE click (m: tMenu; i: INTEGER); |
162 | VAR |
161 | VAR |
163 | item: List.tItem; |
162 | item: List.tItem; |
164 | BEGIN |
163 | BEGIN |
165 | item := List.getItem(m.items, i); |
164 | item := List.getItem(m.items, i); |
166 | IF item(tItem).enabled THEN |
165 | IF (item # NIL) & item(tItem).enabled THEN |
167 | m.click(m, item(tItem).id); |
166 | m.click(m, item(tItem).id); |
168 | exit(m) |
167 | exit(m) |
169 | END |
168 | END |
170 | END click; |
169 | END click; |
Line 302... | Line 301... | ||
302 | PROCEDURE open* (m: tMenu; x, y: INTEGER); |
301 | PROCEDURE open* (m: tMenu; x, y: INTEGER); |
303 | BEGIN |
302 | BEGIN |
304 | IF m.tid = 0 THEN |
303 | IF m.tid = 0 THEN |
305 | m.winX := x; |
304 | m.winX := x; |
306 | m.winY := y; |
305 | m.winY := y; |
307 | (* DISPOSE(m.stack); |
- | |
308 | NEW(m.stack); |
- | |
309 | SYSTEM.PUT(SYSTEM.ADR(m.stack.stk[LEN(m.stack.stk) - 1]), m); |
- | |
310 | lastTID := K.CreateThread(SYSTEM.ADR(window), m.stack.stk);*) |
- | |
311 | SYSTEM.PUT(SYSTEM.ADR(stack[LEN(stack) - 1]), m); |
306 | SYSTEM.PUT(SYSTEM.ADR(stack[LEN(stack) - 1]), m); |
312 | lastTID := K.CreateThread(SYSTEM.ADR(window), stack); |
307 | lastTID := K.CreateThread(SYSTEM.ADR(window), stack); |
313 | m.tid := lastTID |
308 | m.tid := lastTID |
314 | END |
309 | END |
315 | END open; |
310 | END open; |
Line 317... | Line 312... | ||
317 | 312 | ||
318 | PROCEDURE close* (m: tMenu); |
313 | PROCEDURE close* (m: tMenu); |
319 | BEGIN |
314 | BEGIN |
320 | IF m.tid # 0 THEN |
315 | IF m.tid # 0 THEN |
321 | K.ExitID(m.tid); |
- | |
322 | (*DISPOSE(m.stack);*) |
316 | K.ExitID(m.tid); |
323 | m.tid := 0 |
317 | m.tid := 0 |
324 | END |
318 | END |
Line 344... | Line 338... | ||
344 | END; |
338 | END; |
345 | m.width := maxLength*fontWidth + LEFT + RIGHT; |
339 | m.width := maxLength*fontWidth + LEFT + RIGHT; |
346 | m.height := items.count*fontHeight - 2; |
340 | m.height := items.count*fontHeight - 2; |
347 | m.font := G.CreateFont(1, "", {}); |
341 | m.font := G.CreateFont(1, "", {}); |
348 | m.canvas := G.CreateCanvas(m.width + 1, m.height + 1); |
342 | m.canvas := G.CreateCanvas(m.width + 1, m.height + 1); |
349 | (*m.stack := NIL;*) |
- | |
350 | G.SetFont(m.canvas, m.font); |
343 | G.SetFont(m.canvas, m.font); |
351 | RETURN m |
344 | RETURN m |
352 | END create; |
345 | END create; |