Subversion Repositories Kolibri OS

Rev

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);