Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
5428 leency 1
//Leency 2008-2015
5416 punk_joker 2
 
3
#define EDITOR_PATH     "/sys/tinypad"
4
 
5
#ifdef LANG_RUS
5435 leency 6
	?define EDIT_FILE_ASSOCIATIONS "Редактировать ассоциации файлов"
5416 punk_joker 7
	?define TITLE_SETT "Настройки"
5428 leency 8
	?define SET_1 "Выводить названия класса устройств"
9
	?define SET_2 "Показывать имена файлов не меняя регистр"
10
	?define SET_3 "Высота строки в списке"
5416 punk_joker 11
	?define CANCEL_T "Отмена"
12
	?define APPLY_T "Применить"
13
#else
5435 leency 14
	?define EDIT_FILE_ASSOCIATIONS "Edit file associations"
5428 leency 15
	?define TITLE_SETT "Settings"
16
	?define SET_1 "Show device class name"
17
	?define SET_2 "Show real file names without changing case"
18
	?define SET_3 "List line height"
19
	?define CANCEL_T "Cancel"
20
	?define APPLY_T "Apply"
5416 punk_joker 21
#endif
22
 
23
int	mouse_ddd;
24
char lineh_s[30]="18\0";
5435 leency 25
edit_box LineHeight_ed = {52,10,70,0xffffff,0x94AECE,0xffc90E,0xffffff,2,4,#lineh_s,#mouse_ddd, 1000000000000000b,2,2};
5428 leency 26
checkbox2 ShowDeviceName_chb = {10*65536+15, 10*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SET_1, 110b};
27
checkbox2 RealFileNamesCase_chb = {10*65536+15, 30*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SET_2, 100b};
5416 punk_joker 28
 
29
void settings_dialog()
30
{
31
	byte id;
32
	unsigned int key;
5435 leency 33
	proc_info settings_form;
5416 punk_joker 34
	dword eolite_ini_path = abspath("Eolite.ini");
5428 leency 35
	if (active_about) ExitProcess();
5416 punk_joker 36
	active_about=1;
37
	SetEventMask(0x27);
38
	loop() switch(WaitEvent())
39
	{
40
		case evButton:
41
				id=GetButtonID();
42
				if (id==10)
43
				{
5428 leency 44
					if ( asm test ShowDeviceName_chb.flags, 2) ini_set_int stdcall (eolite_ini_path, "Config", "ShowDeviceName", 1);
5416 punk_joker 45
					ELSE  ini_set_int stdcall (eolite_ini_path, "Config", "ShowDeviceName", 0);
5428 leency 46
					if ( asm test RealFileNamesCase_chb.flags, 2) ini_set_int stdcall (eolite_ini_path, "Config", "RealFileNamesCase", 1);
5416 punk_joker 47
					ELSE ini_set_int stdcall (eolite_ini_path, "Config", "RealFileNamesCase", 0);
5428 leency 48
					if (LineHeight_ed.size) ini_set_int stdcall (eolite_ini_path, "Config", "LineHeight", atoi(#lineh_s));
5416 punk_joker 49
					active_about=0;
5428 leency 50
					action_buf = 300;
5416 punk_joker 51
					ExitProcess();
52
				}
5428 leency 53
				if (id==1) || (id==11)
5416 punk_joker 54
				{
55
					active_about=0;
56
					ExitProcess();
57
				}
5435 leency 58
				if (id==5)
59
				{
60
					RunProgram("tinypad", "/sys/settings/assoc.ini");
61
				}
5416 punk_joker 62
				break;
63
 
64
		case evKey:
65
				key = GetKey();
5428 leency 66
				if (key==27)
5416 punk_joker 67
				{
68
					active_about=0;
5428 leency 69
					action_buf = 300;
5416 punk_joker 70
					ExitProcess();
71
				}
72
				EAX=key<<8;
73
				edit_box_key stdcall(#LineHeight_ed);
74
				break;
75
 
76
		case evMouse:
77
				check_box_mouse stdcall (#ShowDeviceName_chb);
78
				check_box_mouse stdcall (#RealFileNamesCase_chb);
79
				edit_box_mouse stdcall (#LineHeight_ed);
80
				break;
81
 
82
		case evReDraw:
5428 leency 83
				DefineAndDrawWindow(Form.left + 100, 150, 300, 200+GetSkinHeight(),0x34,sc.work,TITLE_SETT);
5435 leency 84
				GetProcessInfo(#settings_form, SelfInfo);
5416 punk_joker 85
 
5428 leency 86
				if (show_dev_name) ShowDeviceName_chb.flags = 110b;
5416 punk_joker 87
				ELSE  ShowDeviceName_chb.flags = 100b;
88
 
5428 leency 89
				if (real_files_names_case) RealFileNamesCase_chb.flags = 110b;
5416 punk_joker 90
				ELSE RealFileNamesCase_chb.flags = 100b;
91
 
92
				key = itoa(files.line_h);
93
				strcpy(#lineh_s, key);
94
 
95
				check_box_draw stdcall (#ShowDeviceName_chb);
96
				check_box_draw stdcall (#RealFileNamesCase_chb);
97
				edit_box_draw stdcall (#LineHeight_ed);
5435 leency 98
				DrawRectangle(LineHeight_ed.left-1, LineHeight_ed.top-1, LineHeight_ed.width+2, 16, sc.work_graph);
99
				WriteText(10, 57, 0x80, 0x000000, SET_3);
100
				DrawFlatButton(9, 100, strlen(EDIT_FILE_ASSOCIATIONS)+4*6, 22, 5, 0xE4DFE1, EDIT_FILE_ASSOCIATIONS);
101
				DrawFlatButton(128, settings_form.cheight - 34, 70, 22, 10, 0xE4DFE1, APPLY_T);
102
				DrawFlatButton(208, settings_form.cheight - 34, 70, 22, 11, 0xE4DFE1, CANCEL_T);
5416 punk_joker 103
	}
5428 leency 104
}
105
 
106
 
107
void GetIni()
108
{
109
	dword eolite_ini_path = abspath("Eolite.ini");
110
	ini_get_color stdcall (eolite_ini_path, "Config", "SelectionColor", 0x94AECE);
111
	edit2.shift_color = EAX;
112
	col_selec = EAX;
113
	ini_get_int stdcall (eolite_ini_path, "Config", "LineHeight", 18);
114
	files.line_h = EAX;
115
	ini_get_int stdcall (eolite_ini_path, "Config", "ShowDeviceName", 1);
116
	show_dev_name = EAX;
117
	ini_get_int stdcall (eolite_ini_path, "Config", "RealFileNamesCase", 0);
118
	real_files_names_case = EAX;
119
}
120
 
121
 
122
void Write_Error(int error_number)
123
{
124
	char error_message[500];
125
	dword ii;
126
	if (files.current>=0) Line_ReDraw(0xFF0000, files.current);
127
	pause(5);
128
	strcpy(#error_message, "\"Eolite\n");
129
	ii = get_error(error_number);
130
	strcat(#error_message, ii);
131
	strcat(#error_message, "\" -tE");
132
	notify(#error_message);
133
}
134
 
135
 
136
void SetAppColors()
137
{
138
	sc.work = 0xE4DFE1;
139
	sc.work_text = 0;
140
	sc.work_graph  = 0x9098B0; //A0A0B8; //0x819FC5;
141
	sc.work_button_text = 0x000000;
142
	col_padding = 0xC8C9C9;
143
	//col_selec   = 0x94AECE;
144
	col_lpanel  = 0x00699C;
145
	/*
146
	sc.get();
147
	for (i=0; i<=14; i++) col_palette[i] = sc.work;
148
	toolbar_pal[0]= goto_about_pal[0] = sc.work = sc.work;
149
	col_lpanel = sc.work_graph;
150
	for (i=0; i<=99; i++) blue_hl_pal[i] = sc.work_graph;
151
	*/
5416 punk_joker 152
}