Subversion Repositories Kolibri OS

Rev

Rev 902 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include "imgs\logo.txt"
  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); //ãîëóáîå ñçàäè
  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);
  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);
  23.                                 DrawFlatButton(90,190,70,22,2,0xE4DFE1, "Close");
  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. }
  99.  
  100.  
  101.