Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
935 leency 1
#include "imgs\logo.txt"
902 leency 2
 
3
void authors()
4
{
5
	loop()
6
	{
7
		switch(WaitEvent())
8
		{
9
			CASE evButton: ExitProcess();
10
			CASE evKey: IF (GetKey()==27) ExitProcess(); break;
11
			CASE evReDraw:
12
				WindowRedrawStatus(1);
13
				DefineAndDrawWindow(500,200,181,256,0x04,0x10EFEBEF,0,0,"About Eolite");
14
				DrawBar(5,0,172,50,0x8494C4); //голубое сзади
935 leency 15
				//PutImage(#logo,85,85,48,7);
16
				PutPaletteImage(#logo,85,85,48,7,#logo_pal);
17
				WriteText(38,100,0x80,0xBF40BF,"Eolite v0.97 beta7",0);
902 leency 18
				WriteText(68,120,0x80,0,"Authors:",0);
19
				WriteText(44,130,0x80,0,"Leency & Veliant",0);
20
				WriteText(50,140,0x80,0,"KolibriOS Team",0);
21
				WriteText(26,160,0x80,0,"Made using C-- in 2008",0);
22
				WriteText(23,170,0x80,0,"Visit www.kolibrios.org",0);
935 leency 23
				DrawFlatButton(90,190,70,22,2,0xE4DFE1, "Close");
902 leency 24
				WindowRedrawStatus(2);
25
		}
26
	}
27
}
28
 
29
 
30
dword ConvertSize(dword bytes)
31
{
32
	byte size_prefix[7], temp[3];
33
	IF (bytes>=1073741824) copystr(" Gb",#temp);
34
	ELSE IF (bytes>=1048576) copystr(" Mb",#temp);
35
	ELSE IF (bytes>=1024) copystr(" Kb",#temp);
36
	ELSE copystr(" b ",#temp);
37
	WHILE (bytes>1023) bytes/=1024;
38
	copystr(IntToStr(bytes),#size_prefix);
39
	copystr(#temp,#size_prefix+strlen(#size_prefix));
40
	EAX=#size_prefix;
41
}
42
 
43
 
44
void Sort_by_Size(int a, b)   // для первого вызова: a = 0, b = <элементов в массиве> - 1
45
{
46
	int i= a;
47
	IF (a >= b) return;
48
	FOR (j = a; j <= b; j++)
49
	{
50
		IF (ESDWORD[file_mas[j]*304 + buf+72-8] <= ESDWORD[file_mas[b]*304 + buf+72-8])
51
		{ file_mas[i] >< file_mas[j];   i++;}
52
	}
53
	Sort_by_Size (a, i-2);
54
	Sort_by_Size (i, b);
55
}
56
 
57
 
58
void Sort_by_Name(int a, b)   // для первого вызова: a = 0, b = <элементов в массиве> - 1
59
{
60
	int i = a;
61
	IF (a >= b) return;
62
	FOR (j = a; j <= b; j++)
63
		IF (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[i] >< file_mas[j];   i++;}
64
	Sort_by_Name(a, i-2);
65
	Sort_by_Name(i, b);
66
}
67
 
68
 
69
int partition1(dword a, b)
70
{
71
	dword i = a; byte filename1[256], filename2[256]; int n;
72
	for (j = a; j <= b; j++)
73
	{
74
	    //
75
		copystr(file_mas[j]*304 + buf+72, #filename1);
76
		copystr(file_mas[b]*304 + buf+72, #filename2);
77
		n=strlen(#filename1)-1;
78
		WHILE (filename1[n]<>'.') && (n>0) n--;
79
		IF (n) copystr(#filename1+n+1, #filename1);
80
		n=strlen(#filename2)-1;
81
		WHILE (filename2[n]<>'.') && (n>0) n--;
82
		IF (n) copystr(#filename2+n+1, #filename2);
83
		//
84
		n=strcmp(#filename1, #filename2);
85
		IF (n<0) { file_mas[i] >< file_mas[j];   i++;}
86
		IF (n==0) && (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[i] >< file_mas[j];   i++;}
87
	}
88
	EAX = i-1;
89
}
90
 
91
void Sort_by_Type(dword a, b)   // для первого вызова: a = 0, b = <элементов в массиве> - 1
92
{
93
	int c;
94
	IF (a >= b) RETURN;
95
	c = partition1(a, b);
96
	Sort_by_Type(a, c-1);
97
	Sort_by_Type(c+1, b);
98
}
935 leency 99