Subversion Repositories Kolibri OS

Rev

Rev 3468 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3992 leency 1
//Leency - 2012-2013
3067 leency 2
 
3992 leency 3
#define ITEM_HEIGHT 19
4
#define ITEM_WIDTH  165
5
dword col_work    = 0xE4DFE1;
6
dword col_border  = 0x9098B0;
3067 leency 7
 
8
char *ITEMS_LIST[]={
3992 leency 9
"WIN                  F5",54,
10
"DOS              Ctrl+D",04,
11
"KOI              Ctrl+K",11,
12
"UTF              Ctrl+U",21,
13
#ifdef LANG_RUS
14
"ˆá室­¨ª áâà ­¨æë    F3",52,
15
"Žç¨áâ¨âì ªíè ª à⨭®ª"  ,02,
16
//"TrueType fonts"       ,05,
17
#else
18
"View source          F3",52,
19
"Free image cache"       ,02,
20
#endif
3468 leency 21
//"TrueType fonts"      ,05,
3067 leency 22
0};
23
 
24
 
3992 leency 25
 
3067 leency 26
proc_info MenuForm;
27
 
28
void menu_rmb()
29
{
30
	mouse mm;
31
	int items_num, items_cur;
32
	int id1, key, i;
33
 
34
	SetEventMask(100111b);
35
 
36
	loop() switch(WaitEvent())
37
	{
38
	case evMouse:
39
				mm.get();
40
 
41
				GetProcessInfo(#MenuForm, SelfInfo);
42
				id1=GetProcessSlot(MenuForm.ID);
43
				if (id1<>GetActiveProcess()) ExitProcess();
44
 
45
				id1=mm.y/ITEM_HEIGHT;
46
				if (id1<0) || (id1+1>items_num) || (mm.x<0) || (mm.x>ITEM_WIDTH) break;
47
				if (mm.lkm) || (mm.pkm)
48
				{
3449 leency 49
					ActivateWindow(GetProcessSlot(Form.ID));
3458 leency 50
					SendWindowMessage(evButton, ITEMS_LIST[items_cur*2+1]);
51
					SwitchToAnotherThread();
3067 leency 52
					ExitProcess();
53
				}
54
				if (items_cur<>id1)
55
				{
56
					items_cur=id1;
57
					goto _ITEMS_DRAW;
58
				}
59
				break;
60
 
61
		case evButton:
62
				break;
63
 
64
		case evKey:
65
				key = GetKey();
66
				if (key==27) ExitProcess();
67
				if (key==178) && (items_cur)
68
				{
69
					items_cur--;
70
					goto _ITEMS_DRAW;
71
				}
72
				if (key==177) && (items_cur+1
73
				{
74
					items_cur++;
75
					goto _ITEMS_DRAW;
76
				}
77
				if (key==13)
78
				{
79
					WB1.Scan(ITEMS_LIST[items_cur*2+1]);
80
					ExitProcess();
81
				}
82
				break;
83
 
84
		case evReDraw:
85
				while (ITEMS_LIST[items_num*2]) items_num++;
3992 leency 86
				DefineAndDrawWindow(Form.left+m.x,Form.top+m.y+GetSkinHeight()+3,ITEM_WIDTH+2,items_num*ITEM_HEIGHT+4,0x01, 0, 0, 0x01fffFFF);
87
				DrawPopup(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+2,0, -1,col_border);
3067 leency 88
 
89
				_ITEMS_DRAW:
90
				for (i=0; i
91
				{
3992 leency 92
					if (i<>items_cur) EDX=col_work; else EDX=0x94AECE;
93
					DrawBar(2, i*ITEM_HEIGHT+2, ITEM_WIDTH-2, ITEM_HEIGHT, EDX);
94
					if (i<>items_cur) WriteText(19,i*ITEM_HEIGHT+9,0x80,0xf2f2f2,ITEMS_LIST[i*2]);
95
					WriteText(18,i*ITEM_HEIGHT+8,0x80,0x000000,ITEMS_LIST[i*2]);
96
					//if (ITEMS_LIST[i*2+1]==5) && (use_truetype==1) DrawBar(ITEM_WIDTH-18, i*ITEM_HEIGHT+9, 4, 4, 0x444444);
3067 leency 97
				}
3992 leency 98
				DrawBar(7, cur_encoding*ITEM_HEIGHT+9, 4, 4, 0x444444); //ïîêàçûâàåò âûáðàíóþ êîäèðîâêó
3067 leency 99
	}
100
}
101
 
102