2 <INCLUDE "VSUTYPES" "VSUDEFS">
4 <SETG MENU-STUFF '["FOO" "BAR" "BLETCH" "MUMBLE"]>
6 <DEFINE BAR (CH "AUX" EVENT)
9 <COND (<TYPE? <SET EVENT <CHANNEL-OP .CH READ-BYTE-IMMEDIATE>> CHARACTER>
10 <CHANNEL-OP .CH WRITE-BUFFER .EVENT>)
12 (<TYPE? .EVENT WINDOW-EVENT>
13 <RECYCLE-EVENTS .EVENT>)
14 (<==? <ME-KIND .EVENT> ,ME-LEFT-PRESSED>
15 <SET OLD <CHANNEL-OP .CH MOUSE-MOVE? ,MOUSE-LEFT>>
16 <SET OX <ME-X .EVENT>>
17 <SET OY <ME-Y .EVENT>>
18 <RECYCLE-EVENTS .EVENT>
20 <COND (<TYPE? <SET EVENT <CHANNEL-OP .CH READ-BYTE-IMMEDIATE>>
22 <COND (<OR <==? <ME-KIND .EVENT> ,ME-MOVED>
23 <==? <ME-KIND .EVENT> ,ME-LEAVE-WINDOW>>
24 <CHANNEL-OP .CH DRAW-LINE ,GX-XOR .OX .OY
25 <SET OX <ME-X .EVENT>>
26 <SET OY <ME-Y .EVENT>>>
27 <RECYCLE-EVENTS .EVENT>)
28 (<==? <ME-KIND .EVENT> ,ME-LEFT-RELEASED>
29 <RECYCLE-EVENTS .EVENT>
30 <CHANNEL-OP .CH MOUSE-MOVE? .OLD>
32 (<==? <ME-KIND .EVENT> ,ME-ENTER-WINDOW>
33 <SET OX <ME-X .EVENT>>
34 <SET OY <ME-Y .EVENT>>
35 <RECYCLE-EVENTS .EVENT>)
37 <RECYCLE-EVENTS .EVENT>)>)
38 (<TYPE? .EVENT WINDOW-EVENT>
39 <RECYCLE-EVENTS .EVENT>)>>)
41 <RECYCLE-EVENTS .EVENT>)>>>
43 <DEFINE FOO (CH "AUX" EVENT MW)
46 <COND (<TYPE? <SET EVENT <CHANNEL-OP .CH READ-BYTE-IMMEDIATE>> CHARACTER>
47 <CHANNEL-OP .CH WRITE-BUFFER .EVENT>)
49 (<TYPE? .EVENT WINDOW-EVENT>
50 <RECYCLE-EVENTS .EVENT>)
51 (<==? <ME-KIND .EVENT> ,ME-LEFT-PRESSED>
52 <RECYCLE-EVENTS .EVENT>
54 <SET CC <CHANNEL-OP .CH MAKE-TEMP-WINDOW
55 <* 4 <SET H <CHANNEL-OP .CH LINE-HEIGHT>>>
59 <CHANNEL-OP .CC MAKE-MENU-WINDOW .H 60 0 .CY .STR>
62 <CHANNEL-OP .CC SELECT-MENU-WINDOW>
63 <REPEAT (KIND (CWIND NULL))
64 <COND (<TYPE? <SET EVENT <CHANNEL-OP .CC READ-BYTE-IMMEDIATE>>
66 <COND (<==? <SET KIND <ME-KIND .EVENT>>
68 <COND (<TYPE? <ME-SUBWINDOW .EVENT>
70 <CHANNEL-OP .CC INVERT-MENU-WINDOW
71 <ME-SUBWINDOW .EVENT>>
73 <MW-OBJ <ME-SUBWINDOW .EVENT>>>)>)
74 (<==? .KIND ,ME-LEAVE-WINDOW>
75 <COND (<TYPE? <ME-SUBWINDOW .EVENT>
77 <CHANNEL-OP .CC INVERT-MENU-WINDOW
78 <ME-SUBWINDOW .EVENT>>
80 (<==? .KIND ,ME-LEFT-RELEASED>
83 <RECYCLE-EVENTS .EVENT>
85 <RECYCLE-EVENTS .EVENT>>>)
87 <RECYCLE-EVENTS .EVENT>)>>>