Subversion Repositories Kolibri OS

Rev

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