Rev 7450 | Rev 7778 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7450 | Rev 7770 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | menu_process_id = CreateThread(#_menu_thread,#stak+4092); |
30 | menu_process_id = CreateThread(#_menu_thread,#stak+4092); |
31 | } |
31 | } |
Line 32... | Line 32... | ||
32 | 32 | ||
33 | :void _menu_thread() |
33 | :void _menu_thread() |
34 | { |
34 | { |
- | 35 | MOUSE m; |
|
- | 36 | DefineAndDrawWindow(menu.appear_x,menu.appear_y,menu.w+2,menu.h+4,0x01, 0, 0, 0x01fffFFF); |
|
35 | proc_info MenuForm; |
37 | DrawPopup(0,0,menu.w,menu.h+3,0, 0xE4DFE1,0x9098B0); |
- | 38 | _menu_draw_list(); |
|
36 | SetEventMask(100111b); |
39 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_MOUSE + EVM_MOUSE_FILTER); |
37 | loop() switch(WaitEvent()) |
40 | loop() switch(WaitEvent()) |
38 | { |
41 | { |
39 | case evMouse: |
- | |
40 | GetProcessInfo(#MenuForm, SelfInfo); |
- | |
41 | if (!CheckActiveProcess(MenuForm.ID)) _menu_no_item_click(); |
42 | case evMouse: |
42 | mouse.get(); |
43 | m.get(); |
43 | if (menu.ProcessMouse(mouse.x, mouse.y)) _menu_draw_list(); |
44 | if (menu.ProcessMouse(m.x, m.y)) _menu_draw_list(); |
44 | if (mouse.lkm)&&(mouse.up) _menu_item_click(); |
45 | if (m.lkm)&&(m.up) _menu_item_click(); |
45 | break; |
46 | break; |
46 | case evKey: |
47 | case evKey: |
47 | GetKeys(); |
48 | GetKeys(); |
48 | if (key_scancode==SCAN_CODE_ESC) _menu_no_item_click(); |
49 | if (key_scancode==SCAN_CODE_ESC) _menu_exit(); |
49 | if (key_scancode==SCAN_CODE_ENTER) _menu_item_click(); |
50 | if (key_scancode==SCAN_CODE_ENTER) _menu_item_click(); |
50 | if (menu.ProcessKey(key_scancode)) _menu_draw_list(); |
51 | if (menu.ProcessKey(key_scancode)) _menu_draw_list(); |
51 | break; |
52 | break; |
52 | case evReDraw: |
- | |
53 | DefineAndDrawWindow(menu.appear_x,menu.appear_y,menu.w+2,menu.h+4,0x01, 0, 0, 0x01fffFFF); |
- | |
54 | DrawPopup(0,0,menu.w,menu.h+3,0, 0xE4DFE1,0x9098B0); |
53 | case evReDraw: |
55 | _menu_draw_list(); |
54 | _menu_exit(); |
56 | } |
55 | } |
Line 57... | Line 56... | ||
57 | } |
56 | } |
58 | 57 | ||
Line 72... | Line 71... | ||
72 | { |
71 | { |
73 | menu.cur_y = menu.identifier + menu.cur_y; |
72 | menu.cur_y = menu.identifier + menu.cur_y; |
74 | KillProcess(menu_process_id); |
73 | KillProcess(menu_process_id); |
75 | } |
74 | } |
Line 76... | Line 75... | ||
76 | 75 | ||
77 | :void _menu_no_item_click() |
76 | :void _menu_exit() |
78 | { |
77 | { |
79 | menu.cur_y = 0; |
78 | menu.cur_y = 0; |
80 | KillProcess(menu_process_id); |
79 | KillProcess(menu_process_id); |