Subversion Repositories Kolibri OS

Rev

Rev 5576 | Rev 5606 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5576 Rev 5591
Line 12... Line 12...
12
	?define PR_T_CONTAINS "‘®¤¥à¦¨â: "
12
	?define PR_T_CONTAINS "‘®¤¥à¦¨â: "
13
	?define FLAGS " €ââਡãâë "
13
	?define FLAGS " €ââਡãâë "
14
	?define PR_T_HIDDEN "‘ªàëâë©"
14
	?define PR_T_HIDDEN "‘ªàëâë©"
15
	?define PR_T_SYSTEM "‘¨á⥬­ë©"
15
	?define PR_T_SYSTEM "‘¨á⥬­ë©"
16
	?define PR_T_ONLY_READ "’®«ìª® ç⥭¨¥"
16
	?define PR_T_ONLY_READ "’®«ìª® ç⥭¨¥"
-
 
17
	?define SET_BYTE_LANG "¡ ©â"
17
#else
18
#else
18
	?define WINDOW_TITLE_PROPERTIES "Properties"
19
	?define WINDOW_TITLE_PROPERTIES "Properties"
19
	?define BTN_CLOSE "Close"
20
	?define BTN_CLOSE "Close"
20
	?define PR_T_NAME "Name:"
21
	?define PR_T_NAME "Name:"
21
	?define PR_T_DEST "Destination:"
22
	?define PR_T_DEST "Destination:"
Line 28... Line 29...
28
	?define PR_T_CONTAINS "Contains: "
29
	?define PR_T_CONTAINS "Contains: "
29
	?define FLAGS " Attributes "
30
	?define FLAGS " Attributes "
30
	?define PR_T_HIDDEN "Hidden"
31
	?define PR_T_HIDDEN "Hidden"
31
	?define PR_T_SYSTEM "System"
32
	?define PR_T_SYSTEM "System"
32
	?define PR_T_ONLY_READ "Read-only"
33
	?define PR_T_ONLY_READ "Read-only"
-
 
34
	?define SET_BYTE_LANG "byte"
33
#endif
35
#endif
Line 34... Line 36...
34
 
36
 
35
dword mouse_ddd2;
37
dword mouse_ddd2;
36
char path_to_file[4096]="\0";
38
char path_to_file[4096]="\0";
Line 47... Line 49...
47
void SetProperties(byte id)
49
void SetProperties(byte id)
48
{
50
{
49
	if (selected_count) return;
51
	if (selected_count) return;
50
	else
52
	else
51
	{
53
	{
52
		if (id==20) file_info_general.readonly ^= 1;
54
		if (id==20) file_info_general.readonly ^= true;
53
		if (id==21) file_info_general.hidden ^= 1;
55
		if (id==21) file_info_general.hidden ^= true;
54
		if (id==22) file_info_general.system ^= 1;
56
		if (id==22) file_info_general.system ^= true;
55
		SetFileInfo(#file_path, #file_info_general);
57
		SetFileInfo(#file_path, #file_info_general);
56
	}
58
	}
57
}
59
}
Line 58... Line 60...
58
 
60
 
59
void GetSizeDir(dword way)
61
void GetSizeDir(dword way)
60
{
62
{
61
	dword dirbuf, fcount, i, filename;
63
	dword dirbuf, fcount, i, filename;
62
	char cur_file[4096];
64
	dword cur_file;
63
	if (isdir(way))
65
	if (isdir(way))
-
 
66
	{
-
 
67
		cur_file = malloc(4096);
64
	{
68
		// In the process of recursive descent, memory must be allocated dynamically, because the static memory -> was a bug !!! But unfortunately pass away to sacrifice speed.
65
		GetDir(#dirbuf, #fcount, way, DIRS_ONLYREAL);
69
		GetDir(#dirbuf, #fcount, way, DIRS_ONLYREAL);
66
		for (i=0; i
70
		for (i=0; i
67
		{
71
		{
68
			filename = i*304+dirbuf+72;
72
			filename = i*304+dirbuf+72;
-
 
73
			sprintf(cur_file,"%s/%s",way,filename);
69
			sprintf(#cur_file,"%s/%s",way,filename);
74
			
70
			if ( TestBit(ESDWORD[filename-40], 4) )
75
			if (TestBit(ESDWORD[filename-40], 4) )
71
			{
76
			{
72
				dir_count++;
77
				dir_count++;
73
				GetSizeDir(#cur_file);
78
				GetSizeDir(cur_file);
74
			}
79
			}
75
			else
80
			else
76
			{
81
			{
77
				GetFileInfo(#cur_file, #file_info_dirsize);
82
				GetFileInfo(cur_file, #file_info_dirsize);
78
				size_dir = size_dir + file_info_dirsize.sizelo;
83
				size_dir += file_info_dirsize.sizelo;
79
				file_count++;
84
				file_count++;
80
			}
85
			}
-
 
86
		}
81
		}
87
		free(cur_file);
82
	}
88
	}
Line 83... Line 89...
83
}
89
}
84
 
90
 
Line 94... Line 100...
94
	
100
	
95
	for (i=0; i
101
	for (i=0; i
96
    {
102
    {
97
        selected_offset2 = file_mas[i]*304 + buf+32 + 7;
103
        selected_offset2 = file_mas[i]*304 + buf+32 + 7;
98
        if (ESBYTE[selected_offset2]) {
104
        if (ESBYTE[selected_offset2]) {
Line 99... Line 105...
99
			sprintf(#cur_file,way,file_mas[i]*304+buf+72);
105
			sprintf(#cur_file,"%s/%s",way,file_mas[i]*304+buf+72);
100
 
106
 
101
			GetFileInfo(#cur_file, #file_info_general);
107
			GetFileInfo(#cur_file, #file_info_general);
102
			if ( file_info_general.isfolder )
108
			if ( file_info_general.isfolder )
Line 147... Line 153...
147
	SetEventMask(0x27);
153
	SetEventMask(0x27);
148
	loop() switch(WaitEvent())
154
	loop() switch(WaitEvent())
149
	{
155
	{
150
		case evButton: 
156
		case evButton: 
151
				id=GetButtonID();
157
				id=GetButtonID();
152
				IF (id==1) || (id==10){cmd_free=3;ExitProcess();}
158
				if (id==1) || (id==10)
-
 
159
				{
-
 
160
					cmd_free=3;
-
 
161
					ExitProcess();
-
 
162
				}
153
				if (id==20) SetProperties(id);
163
				if (id==20) SetProperties(id);
154
				if (id==21) SetProperties(id);
164
				if (id==21) SetProperties(id);
155
				if (id==22) SetProperties(id);
165
				if (id==22) SetProperties(id);
156
				DrawPropertiesCheckBoxes();
166
				DrawPropertiesCheckBoxes();
157
				break;
167
				break;
Line 161... Line 171...
161
				edit_box_mouse stdcall (#path_to_file_ed);
171
				edit_box_mouse stdcall (#path_to_file_ed);
162
				break;
172
				break;
Line 163... Line 173...
163
			
173
			
164
		case evKey:
174
		case evKey:
-
 
175
				key = GetKey();
-
 
176
				if (key==27)
-
 
177
				{
165
				key = GetKey();
178
					cmd_free=3;
-
 
179
					ExitProcess();
166
				IF (key==27){cmd_free=3;ExitProcess();}
180
				}
167
				EAX=key<<8;
181
				EAX=key<<8;
168
				edit_box_key stdcall(#file_name_ed);
182
				edit_box_key stdcall(#file_name_ed);
169
				edit_box_key stdcall(#path_to_file_ed);
183
				edit_box_key stdcall(#path_to_file_ed);
Line 183... Line 197...
183
				if (selected_count)
197
				if (selected_count)
184
				{
198
				{
185
					Put_icon('', 18, 19, 0xFFFfff, 0);
199
					Put_icon('', 18, 19, 0xFFFfff, 0);
186
					sprintf(#folder_info,"%s%d%s%d",SET_6,file_count,SET_7,dir_count);
200
					sprintf(#folder_info,"%s%d%s%d",SET_6,file_count,SET_7,dir_count);
187
					WriteText(50, 23, 0x80, 0x000000, #folder_info);
201
					WriteText(50, 23, 0x80, 0x000000, #folder_info);
188
					EAX = ConvertSize(size_dir);
-
 
189
					strcpy(#element_size_label, EAX);
-
 
190
					strcat(#element_size_label, " (");
-
 
191
					strcat(#element_size_label, itoa(size_dir));
202
					sprintf(#element_size_label,"%s (%d %s)",ConvertSize(size_dir),size_dir,SET_BYTE_LANG);
192
					strcat(#element_size_label, " b)");
-
 
193
					//tmp = ConvertSize(size_dir);
-
 
194
					//sprintf(#element_size_label," ( byte)");
-
 
195
					WriteText(100, 65, 0x80, 0x000000, #element_size_label);
203
					WriteText(100, 65, 0x80, 0x000000, #element_size_label);
196
				}
204
				}
197
				else
205
				else
198
				{
206
				{
199
					if ( file_info_general.isfolder ) 
207
					if ( file_info_general.isfolder )
Line 202... Line 210...
202
						Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 19, 0xFFFfff, 0);
210
							Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 19, 0xFFFfff, 0);
Line 203... Line 211...
203
 
211
 
204
					WriteText(50, 13, 0x80, 0x000000, PR_T_NAME);				
212
					WriteText(50, 13, 0x80, 0x000000, PR_T_NAME);                          
Line 205... Line -...
205
					edit_box_draw stdcall (#file_name_ed);
-
 
206
					
-
 
207
					if (!itdir)
213
					edit_box_draw stdcall (#file_name_ed);
208
					{
-
 
209
						element_size = file_info_general.sizelo;
214
					
210
					}
215
					if (!itdir) element_size = file_info_general.sizelo;
211
					else
216
					else
212
					{
217
					{
213
						WriteText(10, 80, 0x80, 0x000000, PR_T_CONTAINS);				
218
						WriteText(10, 80, 0x80, 0x000000, PR_T_CONTAINS);                              
214
						sprintf(#folder_info,"%s%d%s%d",SET_6,file_count,SET_7,dir_count);
219
						sprintf(#folder_info,"%s%d%s%d",SET_6,file_count,SET_7,dir_count);
215
						WriteText(100, 80, 0x80, 0x000000, #folder_info);
220
						WriteText(100, 80, 0x80, 0x000000, #folder_info);
216
						element_size = size_dir;
-
 
217
					}
221
						element_size = size_dir;
218
	
222
					}
219
					WriteText(10,  95, 0x80, 0x000000, SET_3);
223
					WriteText(10,  95, 0x80, 0x000000, SET_3);
220
					WriteText(10, 110, 0x80, 0x000000, SET_4);
224
                    WriteText(10, 110, 0x80, 0x000000, SET_4);
221
					WriteText(10, 125, 0x80, 0x000000, SET_5);
225
                    WriteText(10, 125, 0x80, 0x000000, SET_5);
222
					DrawDate(100,  95, 0, #file_info_general.datecreate);
226
					DrawDate(100,  95, 0, #file_info_general.datecreate);
Line 223... Line -...
223
					DrawDate(100, 110, 0, #file_info_general.datelastaccess);
-
 
224
					DrawDate(100, 125, 0, #file_info_general.datelastedit);
-
 
225
	
-
 
226
					EAX = ConvertSize(element_size);
-
 
227
					strcpy(#element_size_label, EAX);
-
 
228
					strcat(#element_size_label, " (");
-
 
229
					strcat(#element_size_label, itoa(element_size));
-
 
230
					strcat(#element_size_label, " b)");
227
                    DrawDate(100, 110, 0, #file_info_general.datelastaccess);
231
					//sprintf(#element_size_label,"%s (%d byte)","",element_size);
228
                    DrawDate(100, 125, 0, #file_info_general.datelastedit);
Line 232... Line 229...
232
					//tmp = ConvertSize(element_size);
229
 
233
					//sprintf(#element_size_label,"%s (%d byte)",tmp,element_size);
230
					sprintf(#element_size_label,"%s (%d %s)",ConvertSize(element_size),element_size,SET_BYTE_LANG);
234
					WriteText(100, 65, 0x80, 0x000000, #element_size_label);
231
					WriteText(100, 65, 0x80, 0x000000, #element_size_label);