Subversion Repositories Kolibri OS

Rev

Rev 9467 | Rev 9481 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9467 Rev 9469
Line 23... Line 23...
23
//                                                   //
23
//                                                   //
24
//                       DATA                        //
24
//                       DATA                        //
25
//                                                   //
25
//                                                   //
26
//===================================================//
26
//===================================================//
Line 27... Line 27...
27
 
27
 
-
 
28
int active_skin, active_wallpaper, active_screensaver;
28
signed int active_skin=-1, active_wallpaper=-1, active_screensaver=-1;
29
 
29
enum { 
30
enum { 
30
	BASE_TAB_BUTTON_ID=3, 
31
	BASE_TAB_BUTTON_ID=3, 
31
	BTN_SELECT_WALLP_FOLDER=10,
32
	BTN_SELECT_WALLP_FOLDER=10,
Line 32... Line 33...
32
	BTN_TEST_SCREENSAVER };
33
	BTN_TEST_SCREENSAVER };
33
 
34
 
34
char folder_path[4096];
35
char folder_path[4096];
-
 
36
char cur_file_path[4096];
-
 
37
char cur_skin_path[4096];
35
char cur_file_path[4096];
38
char default_skin[4096];
Line 36... Line 39...
36
char cur_skin_path[4096];
39
char default_wallp[4096];
Line 37... Line 40...
37
char ss_available[200];
40
char ss_available[200];
38
 
41
 
Line 39... Line 42...
39
int screensaver_timeout;
42
int screensaver_timeout;
-
 
43
 
Line 40... Line 44...
40
 
44
_tabs tabs = { -sizeof(t_skins)-sizeof(t_wallpapers)-sizeof(t_screensaver)-3*8+WIN_W
41
_tabs tabs = { -sizeof(t_skins)-sizeof(t_wallpapers)-sizeof(t_screensaver)-3*8+WIN_W
45
	 - TAB_PADDING / 2, LP, NULL, BASE_TAB_BUTTON_ID };
42
	 - TAB_PADDING / 2, LP, NULL, BASE_TAB_BUTTON_ID };
46
 
Line 62... Line 66...
62
	load_dll(libini, #lib_init,1);
66
	load_dll(libini, #lib_init,1);
63
	load_dll(Proc_lib, #OpenDialog_init,0);
67
	load_dll(Proc_lib, #OpenDialog_init,0);
64
	o_dialog.type = 2; //select folder
68
	o_dialog.type = 2; //select folder
65
	OpenDialog_init stdcall (#o_dialog);
69
	OpenDialog_init stdcall (#o_dialog);
Line -... Line 70...
-
 
70
 
-
 
71
	GetIniSettings();
66
 
72
 
67
	tabs.add(#t_skins, #EventTabSkinsClick);	
73
	tabs.add(#t_skins, #EventTabSkinsClick);	
68
	tabs.add(#t_wallpapers, #EventTabWallpappersClick);
74
	tabs.add(#t_wallpapers, #EventTabWallpappersClick);
69
	tabs.add(#t_screensaver, #EventTabScreensaverClick);
75
	tabs.add(#t_screensaver, #EventTabScreensaverClick);
Line 70... Line -...
70
	tabs.draw_active_tab();
-
 
71
 
-
 
72
	GetScreensaverIniSettings();
76
	tabs.draw_active_tab();
73
 
77
 
74
	SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
78
	SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
75
	loop() switch(WaitEvent()) 
79
	loop() switch(WaitEvent()) 
76
	{
80
	{
Line 179... Line 183...
179
		optionbox_auto.draw(RIGHTx+14, PANEL_H+79);
183
		optionbox_auto.draw(RIGHTx+14, PANEL_H+79);
180
		DrawStandartCaptButton(RIGHTx, PANEL_H+130, BTN_SELECT_WALLP_FOLDER, T_SELECT_FOLDER);
184
		DrawStandartCaptButton(RIGHTx, PANEL_H+130, BTN_SELECT_WALLP_FOLDER, T_SELECT_FOLDER);
181
	}
185
	}
182
	if (tabs.active_tab == TAB_SCREENSAVERS)
186
	if (tabs.active_tab == TAB_SCREENSAVERS)
183
	{
187
	{
184
		DrawStandartCaptButton(RIGHTx, PANEL_H, BTN_TEST_SCREENSAVER, T_SCREENSAVER_PREVIEW);
188
		DrawStandartCaptButton(RIGHTx, PANEL_H, BTN_TEST_SCREENSAVER, T_SS_PREVIEW);
185
	}
189
	}
186
}
190
}
Line 187... Line 191...
187
 
191
 
188
bool strreqi(dword _left, _right)
192
bool strreqi(dword _left, _right)
Line 196... Line 200...
196
	int j;
200
	int j;
197
	char fname[4096];
201
	char fname[4096];
198
	select_list.ClearList();
202
	select_list.ClearList();
199
	if(io.dir.buffer)free(io.dir.buffer);
203
	if(io.dir.buffer)free(io.dir.buffer);
200
	io.dir.load(#folder_path,DIR_ONLYREAL);
204
	io.dir.load(#folder_path,DIR_ONLYREAL);
-
 
205
 
201
	for (j=0; j
206
	for (j=0; j
202
	{
207
	{
203
		strcpy(#fname, io.dir.position(j));
208
		strcpy(#fname, io.dir.position(j));
204
		strlwr(#fname);
209
		strlwr(#fname);
205
		if (tabs.active_tab==TAB_SKINS) {
210
		if (tabs.active_tab==TAB_SKINS) {
Line 214... Line 219...
214
		}
219
		}
215
		ESDWORD[select_list.count*4 + #files_mas] = j;
220
		ESDWORD[select_list.count*4 + #files_mas] = j;
216
		select_list.count++;
221
		select_list.count++;
217
	}
222
	}
218
	Sort_by_Name(0, select_list.count-1);
223
	Sort_by_Name(0, select_list.count-1);
-
 
224
 
219
	list.drop();
225
	list.drop();
220
	for (j=0; j
-
 
221
		list.add(io.dir.position(files_mas[j]));
-
 
222
	}
-
 
223
	if (!select_list.count) notify(T_NO_FILES);
-
 
224
	//save current item for tab change
226
	//save current item for tab change
-
 
227
	//add default item
225
	switch(tabs.active_tab) {
228
	switch(tabs.active_tab) {
-
 
229
		CASE TAB_SKINS: 
226
		CASE TAB_SKINS: select_list.cur_y = active_skin; BREAK;
230
				select_list.cur_y = active_skin;
-
 
231
				select_list.count++;
-
 
232
				list.add(#default_skin);
-
 
233
				BREAK;
-
 
234
		CASE TAB_WALLPAPERS: 
227
		CASE TAB_WALLPAPERS: select_list.cur_y = active_wallpaper; BREAK;
235
				select_list.cur_y = active_wallpaper; 
-
 
236
				select_list.count++;
-
 
237
				list.add(#default_wallp);
-
 
238
				BREAK;
-
 
239
		CASE TAB_SCREENSAVERS: 
228
		CASE TAB_SCREENSAVERS: select_list.cur_y = active_screensaver;
240
				select_list.cur_y = active_screensaver;
-
 
241
	}
-
 
242
 
-
 
243
	for (j=0; j
-
 
244
		miniprintf(#param,"%s/",#folder_path);
-
 
245
		strcat(#param, io.dir.position(files_mas[j]));
-
 
246
		list.add(#param);
229
	}
247
	}
-
 
248
 
-
 
249
	if (!select_list.count) notify(T_NO_FILES);
230
	if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; 
250
	if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; 
231
	select_list.CheckDoesValuesOkey();	
251
	select_list.CheckDoesValuesOkey();	
232
	if (LIST_W) draw_window();
252
	if (LIST_W) draw_window();
233
}
253
}
Line 253... Line 273...
253
	int i_abs = select_list.first + i;
273
	int i_abs = select_list.first + i;
254
	char filename_buf[4096];
274
	char filename_buf[4096];
255
	char* filename = #filename_buf;
275
	char* filename = #filename_buf;
Line 256... Line 276...
256
 
276
 
257
	strcpy(filename, list.get(i_abs));
-
 
258
	EAX = math.min(strrchr(filename,'.')-1, LIST_W - 24 / 8);
-
 
259
	filename_buf[EAX] = '\0';
-
 
260
	if (filename_buf[0]=='T') && (filename_buf[1]=='_') filename+=2;
277
	strcpy(filename, list.get(i_abs));
-
 
278
	if (EAX = strrchr(filename,'/')) filename += EAX;
-
 
279
	if (ESBYTE[filename]=='T') && (ESBYTE[filename+1]=='_') filename+=2;
-
 
280
	EAX = math.min(strrchr(filename,'.')-1, LIST_W - 24 / 8);
Line 261... Line 281...
261
	if (EAX = strrchr(filename,'/')) filename += EAX;
281
	if(EAX) ESBYTE[filename+EAX] = '\0';
262
 
282
 
-
 
283
	//save current item for tab change
263
	//save current item for tab change
284
	switch(tabs.active_tab) {
-
 
285
		CASE TAB_SKINS: 
-
 
286
				active_skin = select_list.cur_y;
-
 
287
				if (!i_abs) filename = T_DEFAULT;
264
	switch(tabs.active_tab) {
288
				BREAK;
-
 
289
		CASE TAB_WALLPAPERS: 
-
 
290
				active_wallpaper = select_list.cur_y; 
-
 
291
				if (!i_abs) filename = T_DEFAULT;
265
		CASE TAB_SKINS: active_skin = select_list.cur_y; BREAK;
292
				BREAK;
266
		CASE TAB_WALLPAPERS: active_wallpaper = select_list.cur_y; BREAK;
293
		CASE TAB_SCREENSAVERS: 
Line 267... Line 294...
267
		CASE TAB_SCREENSAVERS: active_screensaver = select_list.cur_y;
294
				active_screensaver = select_list.cur_y;
268
	}
295
	}
269
	
296
	
Line 290... Line 317...
290
	SetCurDir("/kolibrios");
317
	SetCurDir("/kolibrios");
291
	GetCurDir(#real_kolibrios_path, sizeof(real_kolibrios_path));
318
	GetCurDir(#real_kolibrios_path, sizeof(real_kolibrios_path));
292
	return #real_kolibrios_path;
319
	return #real_kolibrios_path;
293
}
320
}
Line 294... Line 321...
294
 
321
 
295
void GetScreensaverIniSettings()
322
void GetIniSettings()
296
{
323
{
297
	ini.section = "screensaver";
324
	ini.section = "screensaver";
298
	screensaver_timeout = ini.GetInt("timeout", 10);
325
	screensaver_timeout = ini.GetInt("timeout", 10);
-
 
326
	ini.GetString("available", #ss_available, sizeof(ss_available), 0);
-
 
327
	ini.section = "style";
-
 
328
	ini.GetString("default_skin", #default_skin, sizeof(default_skin), 0);
299
	ini.GetString("available", #ss_available, sizeof(ss_available), 0);
329
	ini.GetString("default_wallp", #default_wallp, sizeof(default_wallp), 0);
Line 300... Line 330...
300
}
330
}
301
 
331
 
302
//===================================================//
332
//===================================================//
Line 326... Line 356...
326
	dword j;
356
	dword j;
327
	char ssmas[sizeof(ss_available)];
357
	char ssmas[sizeof(ss_available)];
328
	list.drop();
358
	list.drop();
329
	select_list.ClearList();
359
	select_list.ClearList();
Line -... Line 360...
-
 
360
 
-
 
361
	select_list.count++;
-
 
362
	list.add(T_NO_SS);
330
 
363
 
331
	strcpy(#ssmas, #ss_available);
364
	strcpy(#ssmas, #ss_available);
332
	do {
365
	do {
333
		j = strrchr(#ss_available, '|');
366
		j = strrchr(#ssmas, '|');
334
		miniprintf(#param, "/sys/%s", #ss_available + j);
367
		miniprintf(#param, "/sys/%s", #ssmas + j);
335
		list.add(#param);
368
		list.add(#param);
336
		ESBYTE[#ss_available + j - 1] = '\0';
369
		ESBYTE[#ssmas + j - 1] = '\0';
337
		select_list.count++;
370
		select_list.count++;
Line 338... Line 371...
338
	} while (j);
371
	} while (j);
339
 
372
 
Line 340... Line 373...
340
	if (LIST_W) draw_window();
373
	if (LIST_W) draw_window();
341
}
374
}
342
 
375
 
343
void EventDeleteFile()
376
void EventDeleteFile()
344
{
377
{
345
	DeleteFile(#cur_file_path);
378
	if (select_list.cur_y) DeleteFile(#cur_file_path); //no not delete default
Line 346... Line 379...
346
	Open_Dir();
379
	Open_Dir();
Line 366... Line 399...
366
 
399
 
367
void EventApply()
400
void EventApply()
368
{
401
{
369
	char kivparam[4096+10];
402
	char kivparam[4096+10];
370
	dword file_name = list.get(select_list.cur_y);
-
 
371
	miniprintf(#cur_file_path,"%s/",#folder_path);
403
	dword file_name = list.get(select_list.cur_y);
372
	strcat(#cur_file_path, list.get(select_list.cur_y));
404
	strcpy(#cur_file_path, list.get(select_list.cur_y));
373
	if (tabs.active_tab==TAB_SKINS)
405
	if (tabs.active_tab==TAB_SKINS)
374
	{
406
	{
375
		SetSystemSkin(#cur_file_path);
407
		SetSystemSkin(#cur_file_path);
376
		SelectList_Draw();
408
		SelectList_Draw();
Line 379... Line 411...
379
	} 
411
	} 
380
	if (tabs.active_tab==TAB_WALLPAPERS)
412
	if (tabs.active_tab==TAB_WALLPAPERS)
381
	{
413
	{
382
		SelectList_Draw();
414
		SelectList_Draw();
383
		miniprintf(#kivparam, "\\S__%s", #cur_file_path);
415
		miniprintf(#kivparam, "\\S__%s", #cur_file_path);
384
		if (optionbox_tiled.checked) kivparam[1]='T';
416
		if (optionbox_tiled.checked) || (!select_list.cur_y) kivparam[1]='T';
385
		if (optionbox_auto.checked) {
417
		if (optionbox_auto.checked) {
-
 
418
			file_name += strrchr(file_name, '/');
386
			if (ESBYTE[file_name+1] == '_') && (ESBYTE[file_name] == 'T') {
419
			if (ESBYTE[file_name] == 'T') && (ESBYTE[file_name+1] == '_') {
387
				kivparam[1]='T';
420
				kivparam[1]='T';
388
			}
421
			}
389
		}
422
		}
390
		RunProgram("/sys/media/kiv", #kivparam);
423
		RunProgram("/sys/media/kiv", #kivparam);
391
	}
424
	}
Line 404... Line 437...
404
	ActivateWindow_Self();
437
	ActivateWindow_Self();
405
}
438
}
Line 406... Line 439...
406
 
439
 
407
void EventOpenFile()
440
void EventOpenFile()
-
 
441
{
408
{
442
	switch (tabs.active_tab) {
409
	if (tabs.active_tab==TAB_SKINS) RunProgram("/sys/skincfg", #cur_file_path);
443
		case TAB_SKINS: RunProgram("/sys/skincfg", #cur_file_path); break;
410
	if (tabs.active_tab==TAB_WALLPAPERS) RunProgram("/sys/media/kiv", #cur_file_path);
444
		case TAB_WALLPAPERS: RunProgram("/sys/media/kiv", #cur_file_path); break;
-
 
445
		case TAB_SCREENSAVERS: if(select_list.cur_y) RunProgram(list.get(select_list.cur_y), "@ss");
411
	if (tabs.active_tab==TAB_SCREENSAVERS) RunProgram(list.get(select_list.cur_y), "@ss");
446
	}
Line 412... Line 447...
412
}
447
}
413
 
448
 
414
void EventExit()
449
void EventExit()