Subversion Repositories Kolibri OS

Rev

Rev 6583 | Rev 6637 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6583 Rev 6635
1
//Leency 2008-2013
1
//Leency 2008-2013
2
 
2
 
3
#ifdef LANG_RUS
3
#ifdef LANG_RUS
4
	?define T_DEVICES "“áâனá⢠"
4
	?define T_DEVICES "“áâனá⢠"
5
	?define T_ACTIONS "„¥©á⢨ï"
5
	?define T_ACTIONS "„¥©á⢨ï"
6
	char *actions[] = {
6
	char *actions[] = {
7
		57, "®¢ë© ä ©«", "F7",
7
		57, "®¢ë© ä ©«", "F7",
8
		56, "®¢ ï ¯ ¯ª ", "F6",
8
		56, "®¢ ï ¯ ¯ª ", "F6",
9
		60, " áâனª¨", "F10",
9
		60, " áâனª¨", "F10",
10
		0,0,0
10
		0,0,0
11
	};
11
	};
12
	?define T_PROG "à®£à ¬¬ë "
12
	?define T_PROG "à®£à ¬¬ë "
13
	?define T_SYS  "‘¨á⥬  "
13
	?define T_SYS  "‘¨á⥬  "
14
	?define T_UNC  "¥¨§¢¥áâ­® "
14
	?define T_UNC  "¥¨§¢¥áâ­® "
15
	?define T_CD   "CD-ROM "
15
	?define T_CD   "CD-ROM "
16
	?define T_FD   "„¨áª¥â  "
16
	?define T_FD   "„¨áª¥â  "
17
	?define T_HD   "†¥á⪨© ¤¨áª "
17
	?define T_HD   "†¥á⪨© ¤¨áª "
18
	?define T_SATA "SATA ¤¨áª "
18
	?define T_SATA "SATA ¤¨áª "
19
	?define T_USB  "USB ¤¨áª "
19
	?define T_USB  "USB ¤¨áª "
20
	?define T_RAM  "RAM ¤¨áª "
20
	?define T_RAM  "RAM ¤¨áª "
21
#else
21
#else
22
	?define T_DEVICES "Devices"
22
	?define T_DEVICES "Devices"
23
	?define T_ACTIONS "Actions"
23
	?define T_ACTIONS "Actions"
24
	char *actions[] = {
24
	char *actions[] = {
25
		57, "New file", "F7",
25
		57, "New file", "F7",
26
		56, "New folder", "F6",
26
		56, "New folder", "F6",
27
		60, "Settings", "F10",
27
		60, "Settings", "F10",
28
		0,0,0
28
		0,0,0
29
	};
29
	};
30
	?define T_PROG "Programs "
30
	?define T_PROG "Programs "
31
	?define T_SYS  "System "
31
	?define T_SYS  "System "
32
	?define T_UNC  "Unknown "
32
	?define T_UNC  "Unknown "
33
	?define T_CD   "CD-ROM "
33
	?define T_CD   "CD-ROM "
34
	?define T_FD   "Floppy disk "
34
	?define T_FD   "Floppy disk "
35
	?define T_HD   "Hard disk "
35
	?define T_HD   "Hard disk "
36
	?define T_SATA "SATA disk"
36
	?define T_SATA "SATA disk"
37
	?define T_USB  "USB disk"
37
	?define T_USB  "USB disk"
38
	?define T_RAM  "RAM disk"
38
	?define T_RAM  "RAM disk"
39
#endif
39
#endif
40
 
40
 
41
struct _SystemDiscs
41
struct _SystemDiscs
42
{
42
{
43
	collection list;
43
	collection list;
44
	void Get();
44
	void Get();
45
	void Draw();
45
	void Draw();
46
	void Click();
46
	void Click();
47
} SystemDiscs;
47
} SystemDiscs;
48
 
48
 
49
 
49
 
50
void GetDiskIconAndName(char disk_first_letter, dword dev_icon, disc_name)
50
void GetDiskIconAndName(char disk_first_letter, dword dev_icon, disc_name)
51
{
51
{
52
	switch(disk_first_letter)
52
	switch(disk_first_letter)
53
	{
53
	{
54
		case 'k':
54
		case 'k':
55
			ESBYTE[dev_icon]=0;
55
			ESBYTE[dev_icon]=0;
56
			strcpy(disc_name, T_PROG);
56
			strcpy(disc_name, T_PROG);
57
			break;
57
			break;
58
		case 'r':
58
		case 'r':
59
			ESBYTE[dev_icon]=0;
59
			ESBYTE[dev_icon]=0;
60
			strcpy(disc_name, T_SYS);
60
			strcpy(disc_name, T_SYS);
61
			break;
61
			break;
62
		case 'c':
62
		case 'c':
63
			ESBYTE[dev_icon]=1;
63
			ESBYTE[dev_icon]=1;
64
			strcpy(disc_name, T_CD);
64
			strcpy(disc_name, T_CD);
65
			break;
65
			break;
66
		case 'f':
66
		case 'f':
67
			ESBYTE[dev_icon]=2;
67
			ESBYTE[dev_icon]=2;
68
			strcpy(disc_name, T_FD);
68
			strcpy(disc_name, T_FD);
69
			break;
69
			break;
70
		case 'h':
70
		case 'h':
71
		case 'b':
71
		case 'b':
72
			ESBYTE[dev_icon]=3;
72
			ESBYTE[dev_icon]=3;
73
			strcpy(disc_name, T_HD);
73
			strcpy(disc_name, T_HD);
74
			break;
74
			break;
75
		case 's':
75
		case 's':
76
			ESBYTE[dev_icon]=3;
76
			ESBYTE[dev_icon]=3;
77
			strcpy(disc_name, T_SATA);
77
			strcpy(disc_name, T_SATA);
78
			break;
78
			break;
79
		case 'u':
79
		case 'u':
80
			ESBYTE[dev_icon]=5;
80
			ESBYTE[dev_icon]=5;
81
			strcpy(disc_name, T_USB);
81
			strcpy(disc_name, T_USB);
82
			break;
82
			break;
83
		case 't':
83
		case 't':
84
			ESBYTE[dev_icon]=4;
84
			ESBYTE[dev_icon]=4;
85
			strcpy(disc_name, T_RAM);
85
			strcpy(disc_name, T_RAM);
86
			break;
86
			break;
87
		default:
87
		default:
88
			ESBYTE[dev_icon]=3;
88
			ESBYTE[dev_icon]=3;
89
			strcpy(disc_name, T_UNC);				
89
			strcpy(disc_name, T_UNC);				
90
	}
90
	}
91
}
91
}
92
 
92
 
93
void _SystemDiscs::Get()
93
void _SystemDiscs::Get()
94
{
94
{
95
	char dev_name[10], sys_discs[10];
95
	char dev_name[10], sys_discs[10];
96
	int i1, j1, dev_num, dev_disc_num;
96
	int i1, j1, dev_num, dev_disc_num;
97
	dword temp_file_count, tempbuf;
97
	dword temp_file_count, tempbuf;
98
	dword devbuf;
98
	dword devbuf;
99
 
99
 
100
	list.drop();
100
	list.drop();
101
	devbuf = malloc(10000);
101
	devbuf = malloc(10000);
102
	ReadDir(19, devbuf, "/");
102
	ReadDir(19, devbuf, "/");
103
	dev_num = EBX;
103
	dev_num = EBX;
104
	for (i1=0; i1
104
	for (i1=0; i1
105
	{
105
	{
106
		sprintf(#dev_name,"/%s/",i1*304+ devbuf+72);
106
		sprintf(#dev_name,"/%s",i1*304+ devbuf+72);
107
		Open_Dir(#dev_name, ONLY_OPEN);
107
		Open_Dir(#dev_name, ONLY_OPEN);
108
		dev_disc_num = files.count;
108
		dev_disc_num = files.count;
109
		for (j1=0; j1
109
		for (j1=0; j1
110
		{
110
		{
111
			sprintf(#sys_discs,"%s%s/",#dev_name,j1*304+ buf+72);
111
			sprintf(#sys_discs,"%s/%s",#dev_name,j1*304+ buf+72);
112
			list.add(#sys_discs);
112
			list.add(#sys_discs);
113
		}
113
		}
114
		if (!strcmp(#sys_discs, "/rd/1/")) 
114
		if (!strcmp(#sys_discs, "/rd/1")) 
115
		{
115
		{
116
			GetDir(#tempbuf, #temp_file_count, "/kolibrios", DIRS_ONLYREAL);
116
			GetDir(#tempbuf, #temp_file_count, "/kolibrios", DIRS_ONLYREAL);
117
			if (temp_file_count) list.add("/kolibrios/");
117
			if (temp_file_count) list.add("/kolibrios");
118
			free(tempbuf);
118
			free(tempbuf);
119
		}
119
		}
120
	}
120
	}
121
	free(devbuf);
121
	free(devbuf);
122
}
122
}
123
 
123
 
124
void _SystemDiscs::Draw()
124
void _SystemDiscs::Draw()
125
{    
125
{    
126
	char dev_name[15], disc_name[100], i, dev_icon, is_active, name_len;
126
	char dev_name[15], disc_name[100], i, dev_icon, is_active, name_len;
127
	int draw_y, draw_x, draw_h;
127
	int draw_y, draw_x, draw_h;
128
	
128
	
129
	for (i=0; i<30; i++) DeleteButton(100+i);
129
	for (i=0; i<30; i++) DeleteButton(100+i);
130
 
130
 
131
	if ( two_panels) { draw_y = 41; draw_x =  2; draw_h = 21; }
131
	if ( two_panels) { draw_y = 41; draw_x =  2; draw_h = 21; }
132
	if (!two_panels) { draw_y = 74; draw_x = 17; draw_h = 16; }
132
	if (!two_panels) { draw_y = 74; draw_x = 17; draw_h = 16; }
133
 
133
 
134
	for (i=0;i
134
	for (i=0;i
135
	{
135
	{
136
		strcpy(#dev_name, list.get(i));
136
		strcpy(#dev_name, list.get(i));
137
		dev_name[strlen(#dev_name)-1]=NULL;
-
 
138
		GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name);
137
		GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name);
139
		if (strstr(#path, #dev_name)) is_active=true; else is_active=false;
138
		if (strstr(#path, #dev_name)) is_active=true; else is_active=false;
140
		if (two_panels)
139
		if (two_panels)
141
		{
140
		{
142
			name_len = strlen(#dev_name)-1*8;
141
			name_len = strlen(#dev_name)-1*8;
143
			DrawBar(draw_x, draw_y, name_len + 31, draw_h, 0xFFFFFF);
142
			DrawBar(draw_x, draw_y, name_len + 31, draw_h, 0xFFFFFF);
144
			DefineButton(draw_x+2, draw_y, name_len + 27, draw_h-1, 100+i+BT_HIDE,0xFFFFFF);
143
			DefineButton(draw_x+2, draw_y, name_len + 27, draw_h-1, 100+i+BT_HIDE,0xFFFFFF);
145
			_PutImage(draw_x + 5, draw_y+2, 18,17, is_active*6+dev_icon*17*18*3+#devices);
144
			_PutImage(draw_x + 5, draw_y+2, 18,17, is_active*6+dev_icon*17*18*3+#devices);
146
			WriteText(draw_x + 24, draw_y+3, 10110000b, 0, #dev_name+1);
145
			WriteText(draw_x + 24, draw_y+3, 10110000b, 0, #dev_name+1);
147
			draw_x += name_len + 31;
146
			draw_x += name_len + 31;
148
			if (draw_x>=Form.width-35) && (Form.width) {
147
			if (draw_x>=Form.width-35) && (Form.width) {
149
				DrawBar(draw_x, draw_y, Form.cwidth - draw_x - 2, draw_h, 0xFFFFFF);
148
				DrawBar(draw_x, draw_y, Form.cwidth - draw_x - 2, draw_h, 0xFFFFFF);
150
				draw_x = 2;
149
				draw_x = 2;
151
				draw_y += draw_h;
150
				draw_y += draw_h;
152
			}
151
			}
153
		}
152
		}
154
		else
153
		else
155
		{
154
		{
156
			DrawBar(draw_x,draw_y,6,draw_h+1,0xFFFFFF);
155
			DrawBar(draw_x,draw_y,6,draw_h+1,0xFFFFFF);
157
			DrawBar(draw_x+6+18,draw_y,160-6-18,draw_h+1,0xFFFFFF);
156
			DrawBar(draw_x+6+18,draw_y,160-6-18,draw_h+1,0xFFFFFF);
158
			DefineButton(draw_x,draw_y,159,16,100+i+BT_HIDE,0xFFFFFF);
157
			DefineButton(draw_x,draw_y,159,16,100+i+BT_HIDE,0xFFFFFF);
159
			if (show_dev_name)
158
			if (show_dev_name)
160
			{
159
			{
161
				strcat(#disc_name, #dev_name);
160
				strcat(#disc_name, #dev_name);
162
				if (is_active) WriteText(draw_x+30,draw_y+5,0x80,0x555555,#disc_name);
161
				if (is_active) WriteText(draw_x+30,draw_y+5,0x80,0x555555,#disc_name);
163
				WriteText(draw_x+29,draw_y+5,0x80,0,#disc_name);
162
				WriteText(draw_x+29,draw_y+5,0x80,0,#disc_name);
164
			}
163
			}
165
			else
164
			else
166
			{
165
			{
167
				if (is_active) WriteText(draw_x+30,draw_y+5,0x80,0x555555,#dev_name);
166
				if (is_active) WriteText(draw_x+30,draw_y+5,0x80,0x555555,#dev_name);
168
				WriteText(draw_x+29,draw_y+5,0x80,0,#dev_name);
167
				WriteText(draw_x+29,draw_y+5,0x80,0,#dev_name);
169
			}
168
			}
170
			_PutImage(draw_x+6,draw_y, 18,17, is_active*6+dev_icon*17*18*3+#devices);
169
			_PutImage(draw_x+6,draw_y, 18,17, is_active*6+dev_icon*17*18*3+#devices);
171
			draw_y += draw_h;
170
			draw_y += draw_h;
172
		}
171
		}
173
	}
172
	}
174
	if (two_panels)
173
	if (two_panels)
175
	{
174
	{
176
		DrawBar(draw_x, draw_y, Form.cwidth - draw_x - 2, draw_h, 0xFFFFFF);
175
		DrawBar(draw_x, draw_y, Form.cwidth - draw_x - 2, draw_h, 0xFFFFFF);
177
		DefineButton(Form.cwidth - 23, draw_y+2, 17,16, 60+BT_HIDE, 0xCCCccc);
176
		DefineButton(Form.cwidth - 23, draw_y+2, 17,16, 60+BT_HIDE, 0xCCCccc);
178
		_PutImage(Form.cwidth - 21, draw_y+4, 14,13, 2*14*13*3+#factions);
177
		_PutImage(Form.cwidth - 21, draw_y+4, 14,13, 2*14*13*3+#factions);
179
		files.y = draw_y + draw_h + 17;
178
		files.y = draw_y + draw_h + 17;
180
	}
179
	}
181
}
180
}
182
 
181
 
183
void _SystemDiscs::Click(int n)
182
void _SystemDiscs::Click(int n)
184
{
183
{
185
	strcpy(#path, list.get(n));
184
	strcpy(#path, list.get(n));
186
	files.KeyHome();
185
	files.KeyHome();
187
	Open_Dir(#path,WITH_REDRAW);	
186
	Open_Dir(#path,WITH_REDRAW);	
188
}
187
}
189
 
188
 
190
 
189
 
191
 
190
 
192
void DrawDeviceAndActionsLeftPanel()
191
void DrawDeviceAndActionsLeftPanel()
193
{
192
{
194
	Tip(56, T_DEVICES, 55, "=");
193
	Tip(56, T_DEVICES, 55, "=");
195
	SystemDiscs.Draw();
194
	SystemDiscs.Draw();
196
	ActionsDraw();
195
	ActionsDraw();
197
	DrawLeftPanelBg();
196
	DrawLeftPanelBg();
198
}
197
}
199
 
198
 
200
void Tip(int y, dword caption, id, arrow)
199
void Tip(int y, dword caption, id, arrow)
201
{
200
{
202
	DrawBar(17,y,160,1,0xEFEDEE);
201
	DrawBar(17,y,160,1,0xEFEDEE);
203
	DrawFilledBar(17, y+1, 160, 16);
202
	DrawFilledBar(17, y+1, 160, 16);
204
	WriteText(25,y+5,0x80,0x000000,caption);
203
	WriteText(25,y+5,0x80,0x000000,caption);
205
	if (id) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0); //arrow button
204
	if (id) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0); //arrow button
206
	WriteText(165,y+5,0x80,0x000000,arrow); //arrow
205
	WriteText(165,y+5,0x80,0x000000,arrow); //arrow
207
	DrawBar(17,y+17,160,1,col_graph);
206
	DrawBar(17,y+17,160,1,col_graph);
208
}
207
}
209
 
208
 
210
void ActionsDraw()
209
void ActionsDraw()
211
{
210
{
212
	int actions_y= SystemDiscs.list.count*16+108, lineh=16;
211
	int actions_y= SystemDiscs.list.count*16+108, lineh=16;
213
	Tip(actions_y-18, T_ACTIONS, 77, ""); //çàãîëîâîê
212
	Tip(actions_y-18, T_ACTIONS, 77, ""); //çàãîëîâîê
214
	for (i=0; actions[i*3]!=0; i++, actions_y+=lineh)
213
	for (i=0; actions[i*3]!=0; i++, actions_y+=lineh)
215
	{
214
	{
216
		DrawBar(17,actions_y,160,lineh,0xFFFFFF); //áåëîå
215
		DrawBar(17,actions_y,160,lineh,0xFFFFFF); //áåëîå
217
		DefineButton(17,actions_y,159,lineh,actions[i*3]+BT_HIDE,0xE4DFE1);
216
		DefineButton(17,actions_y,159,lineh,actions[i*3]+BT_HIDE,0xE4DFE1);
218
		WriteText(45,actions_y+4,0x80,0,actions[i*3+1]);
217
		WriteText(45,actions_y+4,0x80,0,actions[i*3+1]);
219
		WriteText(-strlen(actions[i*3+2])*6+170,actions_y+4,0x80,0x999999,actions[i*3+2]);
218
		WriteText(-strlen(actions[i*3+2])*6+170,actions_y+4,0x80,0x999999,actions[i*3+2]);
220
		_PutImage(23,actions_y+2, 14,13, i*14*13*3+#factions);
219
		_PutImage(23,actions_y+2, 14,13, i*14*13*3+#factions);
221
	}
220
	}
222
}
221
}
223
 
222
 
224
void DrawLeftPanelBg()
223
void DrawLeftPanelBg()
225
{
224
{
226
	int actions_y = SystemDiscs.list.count*16;
225
	int actions_y = SystemDiscs.list.count*16;
227
	int start_y = actions_y+156;
226
	int start_y = actions_y+156;
228
	int onTop1;
227
	int onTop1;
229
	DrawBar(2,41,190,15,col_lpanel);		      //ñèíèé ïðÿìîóãîëüíèê - íàä äåâàéñàìè
228
	DrawBar(2,41,190,15,col_lpanel);		      //ñèíèé ïðÿìîóãîëüíèê - íàä äåâàéñàìè
230
	DrawBar(17,actions_y+75,160,15,col_lpanel); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
229
	DrawBar(17,actions_y+75,160,15,col_lpanel); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
231
	PutShadow(17,actions_y+75,160,1,1,3);
230
	PutShadow(17,actions_y+75,160,1,1,3);
232
	PutShadow(18,actions_y+75+1,158,1,1,1);
231
	PutShadow(18,actions_y+75+1,158,1,1,1);
233
	DrawBar(2,56,15,actions_y+103,col_lpanel);	          //ñèíèé ïðÿìîóãîëüíèê - ñëåâà       
232
	DrawBar(2,56,15,actions_y+103,col_lpanel);	          //ñèíèé ïðÿìîóãîëüíèê - ñëåâà       
234
	DrawBar(177,56,15,actions_y+103,col_lpanel);            //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
233
	DrawBar(177,56,15,actions_y+103,col_lpanel);            //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
235
	onTop1 = Form.cheight-start_y-2 - status_bar_h;
234
	onTop1 = Form.cheight-start_y-2 - status_bar_h;
236
	if (onTop1 < 268)
235
	if (onTop1 < 268)
237
	{
236
	{
238
		PutPaletteImage(#blue_hl, 190, onTop1, 2, start_y, 8, #blue_hl_pal);
237
		PutPaletteImage(#blue_hl, 190, onTop1, 2, start_y, 8, #blue_hl_pal);
239
	}
238
	}
240
	else
239
	else
241
	{
240
	{
242
		DrawBar(2,start_y,190, onTop1-268+status_bar_h, col_lpanel);
241
		DrawBar(2,start_y,190, onTop1-268+status_bar_h, col_lpanel);
243
		PutPaletteImage(#blue_hl, 190, 268, 2, Form.cheight-270, 8, #blue_hl_pal);
242
		PutPaletteImage(#blue_hl, 190, 268, 2, Form.cheight-270, 8, #blue_hl_pal);
244
	}
243
	}
245
	PutShadow(17,start_y,160,1,1,3);
244
	PutShadow(17,start_y,160,1,1,3);
246
	PutShadow(18,start_y+1,158,1,1,1);
245
	PutShadow(18,start_y+1,158,1,1,1);
247
}
246
}
248
>
247
>