Rev 8020 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8020 | Rev 9597 | ||
---|---|---|---|
1 | #ifndef INCLUDE_MENU_H |
1 | #ifndef INCLUDE_MENU_H |
2 | #define INCLUDE_MENU_H |
2 | #define INCLUDE_MENU_H |
3 | 3 | ||
4 | :dword menu_process_id; |
4 | :dword menu_process_id; |
5 | 5 | ||
6 | #define MENU_TOP_LEFT 0 |
6 | #define MENU_TOP_LEFT 0 |
7 | #define MENU_TOP_RIGHT 1 |
7 | #define MENU_TOP_RIGHT 1 |
8 | #define MENU_BOT_LEFT 2 |
8 | #define MENU_BOT_LEFT 2 |
9 | #define MENU_BOT_RIGHT 3 |
9 | #define MENU_BOT_RIGHT 3 |
10 | 10 | ||
11 | :dword shared_mem = NULL; |
11 | :dword shared_mem = NULL; |
12 | :char shared_name[] = "LMENU"; |
12 | :char shared_name[] = "LMENU"; |
13 | :void open_lmenu(dword _x, _y, _position, _selected, _text1) |
13 | :void open_lmenu(dword _x, _y, _position, _selected, _text1) |
14 | { |
14 | { |
15 | if (!shared_mem) { |
15 | if (!shared_mem) { |
16 | shared_mem = memopen(#shared_name, 16, SHM_CREATE + SHM_WRITE); |
16 | shared_mem = memopen(#shared_name, 16, SHM_CREATE + SHM_WRITE); |
17 | if (EDX) shared_mem = memopen(#shared_name, 16, SHM_WRITE); |
17 | if (EDX) shared_mem = memopen(#shared_name, 16, SHM_WRITE); |
18 | } |
18 | } |
19 | ESDWORD[shared_mem ] = _selected; |
19 | ESDWORD[shared_mem ] = _selected; |
20 | ESDWORD[shared_mem + 4] = _x + Form.left + 5; |
20 | ESDWORD[shared_mem + 4] = _x + Form.left + 5; |
21 | ESDWORD[shared_mem + 8] = _y + Form.top + skin_height; |
21 | ESDWORD[shared_mem + 8] = _y + Form.top + skin_h; |
22 | ESDWORD[shared_mem + 12] = _position; |
22 | ESDWORD[shared_mem + 12] = _position; |
23 | menu_process_id = RunProgram("/sys/develop/menu", _text1); |
23 | menu_process_id = RunProgram("/sys/develop/menu", _text1); |
24 | } |
24 | } |
25 | 25 | ||
26 | :dword get_menu_click() |
26 | :dword get_menu_click() |
27 | { |
27 | { |
28 | if (menu_process_id) && (GetProcessSlot(menu_process_id)) { |
28 | if (menu_process_id) && (GetProcessSlot(menu_process_id)) { |
29 | return NULL; |
29 | return NULL; |
30 | } else { |
30 | } else { |
31 | menu_process_id = NULL; |
31 | menu_process_id = NULL; |
32 | EAX = ESDWORD[shared_mem]; |
32 | EAX = ESDWORD[shared_mem]; |
33 | ESDWORD[shared_mem] = 0; |
33 | ESDWORD[shared_mem] = 0; |
34 | return EAX; |
34 | return EAX; |
35 | } |
35 | } |
36 | } |
36 | } |
37 | 37 | ||
38 | #endif |
38 | #endif |