Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2567 → Rev 2568

/programs/fs/Eolite/trunk/include/some_code.h--
File deleted
/programs/fs/Eolite/trunk/include/icons_f.h--
File deleted
/programs/fs/Eolite/trunk/include/about_dialog.h--
File deleted
\ No newline at end of file
/programs/fs/Eolite/trunk/include/sorting.h--
File deleted
/programs/fs/Eolite/trunk/include/ini.h--
File deleted
/programs/fs/Eolite/trunk/include/about_dialog.h
0,0 → 1,56
//Leency - 2012
 
#include "imgs\logo.txt"
 
#define BROWSER_PATH "/sys/htmlv"
#define BROWSER_LINK "http://www.kolibri-os.narod.ru"
 
 
void authors()
{
byte p;
mouse mm;
byte id, letitclose=0;
SetEventMask(100111b);
loop() switch(WaitEvent())
{
case evMouse:
mm.get();
//êóëüíî
IF (mm.x>85) && (mm.x<155) && (mm.y>190) && (mm.y<190+22)
IF (mm.lkm) {DrawRegion_3D(86,191,68,20,0xC7C7C7,0xFFFFFF); letitclose=1;}
ELSE {IF (letitclose) {DrawRegion_3D(86,191,68,20,0xFFFFFF,0xC7C7C7); Pause(7); ExitProcess();}}
ELSE IF (letitclose) {letitclose=0; DrawRegion_3D(86,191,68,20,0xFFFFFF,0xC7C7C7);}
break;
case evButton:
id=GetButtonID();
IF (id==1) ExitProcess();
IF (id==23) RunProgram(BROWSER_PATH, BROWSER_LINK);
break;
case evKey:
IF (GetKey()==27) ExitProcess();
break;
case evReDraw:
DefineAndDrawWindow(600,150,181,256,0x34,0x10EFEBEF,0,0,"About Eolite");
DrawBar(0,0,172,50,0x8494C4); //ãîëóáîå ñçàäè
PutPaletteImage(#logo,85,85,43,7,#logo_pal);
WriteText(54,100,0x80,0xBF40BF,"Eolite v1.1",0);
WriteText(55,120,0x80,0,"Developers:",0);
WriteText(39,130,0x80,0,"Leency & Veliant",0);
WriteText(30,140,0x80,0,"Diamond, Lrz, Nable",0);
WriteText(55,150,0x80,0," 2008-2012 ",0);
WriteText(12,170,0x80,0,"Visit",0);
DrawLink(48,170,23, "kolibri-os.narod.ru"); //ññûëêa
DrawFlatButton(85,190,70,22,0,0xE4DFE1, "Close");
}
}
 
void DrawLink(dword x,y,btn_id, inscription)
{
WriteText(x,y,0x80,0x4E00E7,inscription,0);
DrawBar(x,y+8,strlen(inscription)*6,1,0x4E00E7); //ïîä÷åðêíóòü ññûëêó
DefineButton(x-1,y-1,strlen(inscription)*6,10,btn_id+BT_HIDE,0);
}
/programs/fs/Eolite/trunk/include/devices.h
0,0 → 1,70
//03.04.2012
 
struct string {
char Item[4096];
};
 
string disk_list[20];
int disc_num;
 
 
void GetSystemDiscs()
{
char dev_name[10], sys_discs[10];
int i1, j1, dev_num, dev_disc_num;
dword devbuf;
 
devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
ReadDir(10, devbuf, "/");
dev_num = EBX;
for (i1=0; i1<dev_num; i1++)
{
copystr("/", #dev_name); // /
copystr(i1*304+ devbuf+72, #dev_name+strlen(#dev_name)); // /rd
copystr("/", #dev_name+strlen(#dev_name)); // /rd/
Open_Dir(#dev_name, ONLY_OPEN);
dev_disc_num = count;
for (j1=0; j1<dev_disc_num; j1++;)
{
copystr(#dev_name, #sys_discs); // /rd/
copystr(j1*304+ buf+72, #sys_discs+strlen(#sys_discs)); // /rd/1
copystr("/", #sys_discs+strlen(#sys_discs)); // /rd/1/
copystr(#sys_discs,#disk_list[disc_num].Item);
disc_num++;
}
}
}
 
 
void DrawSystemDiscs()
{
byte disc_icon;
char dev_name[6];
char disc_name[100];
int i, dev_icon;
DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà
DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
//ñïèñîê äèñêîâ
Tip(56, "Disks", 0, "");
for (i=0;i<disc_num;i++)
{
DrawBar(17,i*16+74,160,17,0xFFFFFF); //áåëîå
DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xFFFFFF); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ
copystr("Unknown drive",#disc_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü
dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê
copystr(#disk_list[i].Item, #dev_name);
IF (dev_name[1]=='r') { dev_icon=0; copystr("RAM disk ",#disc_name); }
IF (dev_name[1]=='c') { dev_icon=1; copystr("CD-ROM ",#disc_name); }
IF (dev_name[1]=='f') { dev_icon=2; copystr("Floppy disk ",#disc_name); }
IF (dev_name[1]=='h') || (dev_name[1]=='b') copystr("Hard disk ",#disc_name);
//IF (dev_name[1]=='b') copystr("SATA disk ",#disc_name);
copystr(#dev_name,#disc_name+strlen(#disc_name));
//
WriteText(45,i*16+79,0x80,0,#disc_name,0);
PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
}
}
/programs/fs/Eolite/trunk/include/icons_f.h
0,0 → 1,247
 
#include "imgs\icons.txt"
dword Put_icon(dword extension, yy)
{
dword ftype="", fnum=0; //åøè íåèçâåñíûé ôàéë
 
IF (!strcmp(extension,"htm")) || (!strcmp(extension,"html")) ||
(!strcmp(extension,"mht")) {fnum = 2; ftype="Web-page";}
IF (!strcmp(extension,"ini")) || (!strcmp(extension,"conf")) {fnum = 3; ftype="Config";}
IF (!strcmp(extension,"xlt")) || (!strcmp(extension,"xls")) ||
(!strcmp(extension,"ods")) || (!strcmp(extension,"xlsx")) {fnum = 4; ftype="Table";}
IF (!strcmp(extension,"cmd")) || (!strcmp(extension,"bat")) || (!strcmp(extension,"sh")) {fnum = 5; ftype="Script";}
IF (!strcmp(extension,"com")) {fnum = 5; ftype="DOS Exec";}
IF (!strcmp(extension,"kex")) {fnum = 6; ftype="Program";}
IF (!strcmp(extension,"exe")) || (!strcmp(extension,"msi")) {fnum = 7; ftype="Win32 Exec";}
IF (!strcmp(extension,"sys")) || (!strcmp(extension,"ocx")) ||
(!strcmp(extension,"drv")) || (!strcmp(extension,"so")) fnum = 8;
IF (!strcmp(extension,"inc")) fnum = 9;
IF (!strcmp(extension,"chr")) || (!strcmp(extension,"mt")) ||
(!strcmp(extension,"ttf")) || (!strcmp(extension,"fon")) {fnum = 10; ftype="Font";}
IF (!strcmp(extension,"asm")) {fnum = 11; ftype="Source";}
IF (!strcmp(extension,"skn")) {fnum = 13; ftype="Skin";}
IF (!strcmp(extension,"djvu")) || (!strcmp(extension,"pdf")) {fnum = 15; ftype="Book";}
IF (!strcmp(extension,"nes")) {fnum = 18; ftype="Cartridge";}
IF (!strcmp(extension,"img")) || (!strcmp(extension,"ima")) {fnum = 21; ftype="Image";}
IF (!strcmp(extension,"dll")) || (!strcmp(extension,"obj")) {fnum = 22; ftype="Library";}
IF (!strcmp(extension,"iso")) || (!strcmp(extension,"cue")) ||
(!strcmp(extension,"nrg")) || (!strcmp(extension,"mdf")) {fnum = 24; ftype="Disc image";}
//text
IF (!strcmp(extension,"txt")) || (!strcmp(extension,"doc")) ||
(!strcmp(extension,"rtf")) || (!strcmp(extension,"odt")) ||
(!strcmp(extension,"log")) || (!strcmp(extension,"docx")) {fnum = 1; ftype="Text";}
//èçîáðàæåíèÿ
IF (!strcmp(extension,"gif")) || (!strcmp(extension,"bmp")) ||
(!strcmp(extension,"tga")) || (!strcmp(extension,"pcx")) ||
(!strcmp(extension,"png")) || (!strcmp(extension,"jpg")) {fnum = 19; ftype="Image";}
IF (!strcmp(extension,"xcf")) || (!strcmp(extension,"ai")) ||
(!strcmp(extension,"jpeg")) || (!strcmp(extension,"raw")) ||
(!strcmp(extension,"psd")) {fnum = 19; ftype="Image";}
//ïèêòîãðàììû
IF (!strcmp(extension,"ico")) {fnum = 20; ftype="Icon";}
IF (!strcmp(extension,"cur")) || (!strcmp(extension,"ani")) {fnum = 20; ftype="Cursor";}
//àðõèâû
IF (!strcmp(extension,"rar")) || (!strcmp(extension,"zip")) ||
(!strcmp(extension,"cab")) || (!strcmp(extension,"tar")) ||
(!strcmp(extension,"ajr")) || (!strcmp(extension,"jar")) ||
(!strcmp(extension,"7z")) ||(!strcmp(extension,"gz")) {fnum = 23; ftype="Archive";}
//audio
IF (!strcmp(extension,"mp3")) {fnum = 12; ftype="Music";}
IF (!strcmp(extension,"wav")) || (!strcmp(extension,"mid")) ||
(!strcmp(extension,"midi")) || (!strcmp(extension,"ogg")) ||
(!strcmp(extension,"wma")) || (!strcmp(extension,"flac")) {fnum = 12; ftype="Audio";}
//video
IF (!strcmp(extension,"avi")) || (!strcmp(extension,"flv")) ||
(!strcmp(extension,"mpg")) || (!strcmp(extension,"wmv")) ||
(!strcmp(extension,"mov")) || (!strcmp(extension,"mkv")) ||
(!strcmp(extension,"mp4")) || (!strcmp(extension,"vob")) {fnum = 14; ftype="Video";}
//ïàïêè
IF (!strcmp(extension,"<DIR>")) { fnum=16; WriteText(onLeft(145,0),yy+4,0x80,0,extension,0);}
IF (!strcmp(extension,"..")) fnum=17;
//
PutPaletteImage(fnum*16*15+#ficons,16,15,195,yy,#ficons_pal);
WriteText(onLeft(160,0),yy+4,0x80,0,ftype,0);
return fnum;
}
 
 
 
void IconFairing(int filenum, y)
{
switch(filenum)
{
case 0...1: //ôàéëèê
DrawBar(195,y,2,15,videlenie);
RIGHT_PAINT:
DrawBar(209,y,2,15,videlenie);
DrawBar(205,y,4,1,videlenie);
DrawBar(206,y+1,3,1,videlenie);
DrawBar(207,y+2,2,1,videlenie);
PutPixel(208,y+3,videlenie);
return;
case 2: //html
DrawBar(195,y,1,7,videlenie);
DrawBar(196,y,1,6,videlenie);
DrawBar(195,y+10,1,5,videlenie);
DrawBar(196,y+11,1,4,videlenie);
GOTO RIGHT_PAINT;
case 3: //íàñòðîéêè
DrawBar(195,y,2,7,videlenie);
DrawBar(195,y+7,1,2,videlenie);
DrawBar(195,y+12,1,3,videlenie);
PutPixel(196,y+14,videlenie);
GOTO RIGHT_PAINT;
case 9: //inc
DrawBar(195,y,1,12,videlenie);
DrawBar(196,y,1,11,videlenie);
DrawBar(197,y,1,10,videlenie);
DrawBar(198,y,1,5,videlenie);
DrawBar(199,y,1,4,videlenie);
DrawBar(200,y,1,3,videlenie);
DrawBar(201,y,1,2,videlenie);
DrawBar(202,y,1,3,videlenie);
DrawBar(203,y,1,2,videlenie);
PutPixel(204,y,videlenie);
PutPixel(205,y+4,videlenie);
PutPixel(206,y+3,videlenie);
PutPixel(207,y,videlenie);
PutPixel(207,y+2,videlenie);
DrawBar(208,y,1,3,videlenie);
DrawBar(209,y,2,4,videlenie);
DrawBar(210,y,1,15,videlenie);
PutPixel(198,y+14,videlenie);
DrawBar(199,y+13,1,2,videlenie);
DrawBar(200,y+12,10,3,videlenie);
PutPixel(205,y+11,videlenie);
DrawBar(206,y+10,1,2,videlenie);
DrawBar(207,y+9,1,3,videlenie);
PutPixel(207,y+7,videlenie);
DrawBar(208,y+6,2,7,videlenie);
PutPixel(209,y+5,videlenie);
return;
case 10: //font
DrawRegion_3D(195,y,15,14,videlenie,videlenie);
DrawBar(196,y+1,1,13,videlenie);
DrawBar(197,y+1,1,11,videlenie);
DrawBar(198,y+1,1,10,videlenie);
DrawBar(199,y+1,1,9,videlenie);
DrawBar(200,y+1,1,7,videlenie);
DrawBar(201,y+1,1,5,videlenie);
DrawBar(202,y+1,1,4,videlenie);
DrawBar(203,y+1,1,2,videlenie);
DrawBar(209,y+1,1,13,videlenie);
DrawBar(208,y+1,1,11,videlenie);
PutPixel(204,y+6,videlenie);
DrawBar(203,y+10,2,1,videlenie);
DrawBar(202,y+11,2,3,videlenie);
return;
case 11: //asm
DrawBar(195,y,1,15,videlenie);
return;
case 12: //audio
DrawBar(195,y,16,1,videlenie);
DrawBar(195,y,1,15,videlenie);
DrawBar(196,y+1,4,8,videlenie);
DrawBar(196,y+9,1,2,videlenie);
PutPixel(197,y+9,videlenie);
PutPixel(196,y+14,videlenie);
DrawBar(210,y+1,1,14,videlenie);
DrawBar(202,y+4,6,4,videlenie);
DrawBar(202,y+8,4,1,videlenie);
DrawBar(202,y+9,3,1,videlenie);
DrawBar(202,y+10,2,3,videlenie);
DrawBar(201,y+13,4,1,videlenie);
DrawBar(200,y+14,14,1,videlenie);
DrawBar(209,y+12,1,2,videlenie);
PutPixel(208,y+13,videlenie);
return;
case 13: //skin
PutPixel(210,y,videlenie);
return;
case 14...15: //video, book
DrawBar(195,y,1,15,videlenie);
DrawBar(210,y,1,15,videlenie);
return;
case 16...17: //ïàïêà
DrawBar(195,y,1,15,videlenie);
DrawBar(203,y,8,2,videlenie);
IF (filenum==17) PutPixel(206,y+1,0x1A7B17); //çåë¸íàÿ òî÷êà ñòðåëêè
DrawBar(196,y+13,15,2,videlenie);
PutPixel(196,y,videlenie); //.òî÷êè
PutPixel(202,y,videlenie);
PutPixel(210,y+2,videlenie);
PutPixel(196,y+12,videlenie);
PutPixel(210,y+12,videlenie);
return;
case 18: //êàðòðèäæ
DrawBar(195,y,16,2,videlenie);
DrawBar(195,y+11,1,2,videlenie);
DrawBar(210,y+11,1,2,videlenie);
DrawBar(195,y+13,16,2,videlenie);
return;
case 19: //èçîáðàæåíèå
case 20: //èçîáðàæåíèå
DrawBar(195,y+14,16,1,videlenie);
return;
case 21: //äèñêåòà
PutPixel(195,y,videlenie);
PutPixel(210,y,videlenie);
return;
case 22: //áèáëèîòåêà
DrawBar(195,y,16,1,videlenie); //ñâåðõó ñëåâà
DrawBar(195,y+1,3,1,videlenie);
DrawBar(195,y+2,2,1,videlenie);
PutPixel(195,y+3,videlenie);
PutPixel(210,y+11,videlenie); //ñïðàâà ñïðàâà
DrawBar(209,y+12,2,1,videlenie);
DrawBar(208,y+13,3,1,videlenie);
DrawBar(207,y+14,4,1,videlenie);
return;
case 23: //àðõèâ
PutPixel(195,y+3,videlenie);
PutPixel(195,y+11,videlenie);
PutPixel(210,y+3,videlenie);
PutPixel(210,y+11,videlenie);
 
DrawBar(195,y,7,1,videlenie);
DrawBar(204,y,7,1,videlenie);
DrawBar(195,y+14,7,1,videlenie);
DrawBar(204,y+14,7,1,videlenie);
 
DrawBar(195,y+1,5,1,videlenie);
DrawBar(206,y+1,5,1,videlenie);
DrawBar(195,y+13,5,1,videlenie);
DrawBar(206,y+13,5,1,videlenie);
 
DrawBar(195,y+2,3,1,videlenie);
DrawBar(208,y+2,3,1,videlenie);
DrawBar(195,y+12,3,1,videlenie);
DrawBar(208,y+12,3,1,videlenie);
return;
case 24: //îáðàç
DrawBar(195,y,6,1,videlenie);
DrawBar(195,y+1,4,1,videlenie);
DrawBar(195,y+2,3,1,videlenie);
DrawBar(195,y+3,2,2,videlenie);
DrawBar(195,y+5,1,5,videlenie);
DrawBar(195,y+10,2,2,videlenie);
DrawBar(195,y+12,3,1,videlenie);
DrawBar(195,y+13,4,1,videlenie);
DrawBar(195,y+14,6,1,videlenie);
 
DrawBar(195+11,y,5,1,videlenie);
DrawBar(195+13,y+1,3,1,videlenie);
DrawBar(195+14,y+2,2,1,videlenie);
DrawBar(195+15,y+3,1,2,videlenie);
DrawBar(195+15,y+10,1,2,videlenie);
DrawBar(195+14,y+12,2,1,videlenie);
DrawBar(195+13,y+13,3,1,videlenie);
DrawBar(195+11,y+14,5,1,videlenie);
 
return;
}
}
/programs/fs/Eolite/trunk/include/ini.h
0,0 → 1,121
//INI parser in C--, GPL licence.
//Leency - 2012
 
#define COMMENT 0
#define SECTION 1
#define PARAM 2
#define OPTION 3
 
char NOTIFY_PATH[7]="@notify";
 
 
void GetIni(byte onload)
{
byte section[32]='', parametr[32]='', option[256]='', InfType=0;
word bukva[1];
int errornum;
dword buff, fsize, tj;
//÷èòàåì ôàéë
buff = malloc(1048576);
IF (onload==1) copystr(".ini", #program_path+strlen(#program_path)); //facepalm
ReadFile(0, 1048576, buff, #program_path);
IF (EAX<>6) //åñëè ôàéëà ñ íàñòðîéêàìè íåò â ïàïêå ñ ïðîãðàììîé ñìîòðèì â ïàïêå ïî-óìîë÷àíèþ
ReadFile(0, 1048576, buff, "/sys/File managers/Eolite.ini");
IF (EAX<>6) //åñëè ôàéëà ñ íàñòðîéêàìè òóïî íåò ïå÷àëüêà
{
IF (onload==1) RunProgram(#NOTIFY_PATH, "Eolite.ini not found. Defaults will be used.");
IF (onload==0) goto RUN_AS_PROGRAM;
}
fsize=EBX;
//ïàðñèì åãî
for (tj=0; tj<fsize; tj++;)
{
bukva = ESBYTE[buff+tj];
switch (bukva)
{
case ';':
InfType=COMMENT;
break;
case '[':
InfType=SECTION;
section='';
break;
case ']':
InfType=PARAM;
break;
case '=':
InfType=OPTION;
break;
case 0x0a:
case 0x0d:
InfType=PARAM;
IF (strcmp(#parametr,"SelectionColor")==0) videlenie=StrToCol(#option);
IF (strcmp(#parametr,"LineHeight")==0) BUTTON_HEIGHT=StrToInt(#option);
IF (parametr) && (!strcmp(#file_name+find_symbol(#file_name,'.'),#parametr)) {
errornum=RunProgram(#option,#file_path);
IF (errornum<0) //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
{
//WriteDebug(#option);
Write_Debug_Error(errornum);
}
return;
}
parametr=option='';
break;
default:
IF (InfType==SECTION) copystr(#bukva,#section+strlen(#section));
IF (InfType==PARAM) copystr(#bukva,#parametr+strlen(#parametr));
IF (InfType==OPTION) copystr(#bukva,#option+strlen(#option));
}
}
RUN_AS_PROGRAM:
IF (file_path) errornum=RunProgram(#file_path,'');
IF (errornum<0) //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
{
//WriteDebug(#file_path);
Write_Debug_Error(errornum);
}
}
 
 
///////////////////////////////////////////
/// íóæíî ÷òîáû ïðîñòî âîçâðàùàëî òåêñò ///
///////////////////////////////////////////
 
void Write_Debug_Error(int error_number)
{
char unknown_error[8];
if (error_number<0) error_number=-1*error_number;
switch (error_number) //èçâåñíàÿ îøèáêà - ïèøåì êàêàÿ è óõîäèì
{
CASE 2: RunProgram(#NOTIFY_PATH, "Eolite: error 2 - Function is not supported for the given file system");
return;
CASE 3: RunProgram(#NOTIFY_PATH, "Eolite: error 3 - Unknown file system");
return;
CASE 5: RunProgram(#NOTIFY_PATH, "Eolite: error 5 - File or folder not found");
return;
CASE 6: RunProgram(#NOTIFY_PATH, "Eolite: error 6 - End of file, EOF");
return;
CASE 7: RunProgram(#NOTIFY_PATH, "Eolite: error 7 - Pointer lies outside of application memory");
return;
case 8: RunProgram(#NOTIFY_PATH, "Eolite: error 8 - FAT table is destroyed");
return;
case 9: RunProgram(#NOTIFY_PATH, "Eolite: error 9 - FAT table is destroyed");
return;
case 10:RunProgram(#NOTIFY_PATH, "Eolite: error 10 - Access denied");
RETURN;
case 11:RunProgram(#NOTIFY_PATH, "Eolite: error 11 - Device error");
RETURN;
case 30:RunProgram(#NOTIFY_PATH, "Eolite: error 30 - Not enough memory");
RETURN;
case 31:RunProgram(#NOTIFY_PATH, "Eolite: error 31 - File is not executable");
RETURN;
case 32:RunProgram(#NOTIFY_PATH, "Eolite: error 32 - Too many processes");
RETURN;
default:copystr(IntToStr(error_number), #unknown_error);
copystr(" - Unknown error number O_o", #unknown_error+strlen(#unknown_error));
RunProgram(#NOTIFY_PATH, #unknown_error);
}
}
/programs/fs/Eolite/trunk/include/some_code.h
0,0 → 1,53
//Leency - 2012
 
#define add_new_path 1
#define go_back 2
 
void HistoryPath(byte action)
{
if (action==add_new_path)
{
IF (strcmp(#PathHistory+find_symbol(#PathHistory,'|'),#path)==0) return;
IF (strlen(#PathHistory)+strlen(#path)>2560)
{
copystr(#PathHistory+1024,#PathHistory);
copystr("/",#PathHistory+strlen(#PathHistory));
}
copystr("|",#PathHistory+strlen(#PathHistory));
copystr(#path,#PathHistory+strlen(#PathHistory));
}
if (action==go_back)
{
i=strlen(#PathHistory)-1;
WHILE (PathHistory[i]<>'|') { i--; };
IF (i>0) PathHistory[i]=0x00;
WHILE (PathHistory[i]<>'|') { copystr(#PathHistory[i],#path); i--; }
IF (i>0) PathHistory[i]=0x00;
}
}
 
 
dword onLeft(dword right,left) {EAX=Form.width-right-left;}
dword onTop(dword down,up) {EAX=Form.height-GetSkinWidth()-down-up;}
 
 
void ShowMessage(dword message)
{
DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, message);
Pause(150);
List_ReDraw();
}
 
 
dword ConvertSize(dword bytes)
{
byte size_prefix[8], temp[3];
IF (bytes>=1073741824) copystr(" Gb",#temp);
ELSE IF (bytes>=1048576) copystr(" Mb",#temp);
ELSE IF (bytes>=1024) copystr(" Kb",#temp);
ELSE copystr(" b ",#temp);
WHILE (bytes>1023) bytes/=1024;
copystr(IntToStr(bytes),#size_prefix);
copystr(#temp,#size_prefix+strlen(#size_prefix));
EAX=#size_prefix;
}
/programs/fs/Eolite/trunk/include/sorting.h
0,0 → 1,55
//Áûñòðàÿ ñîðòèðîâêà. Leency 2008.
 
void Sort_by_Size(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
{
int i = a;
IF (a >= b) return;
FOR (j = a; j <= b; j++)
IF (ESDWORD[file_mas[j]*304 + buf+64] <= ESDWORD[file_mas[b]*304 + buf+64])
{ file_mas[i] >< file_mas[j]; i++;}
Sort_by_Size (a, i-2);
Sort_by_Size (i, b);
}
 
 
void Sort_by_Name(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
{
int i = a;
IF (a >= b) return;
FOR (j = a; j <= b; j++)
IF (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[i] >< file_mas[j]; i++;}
Sort_by_Name(a, i-2);
Sort_by_Name(i, b);
}
 
void Sort_by_Type(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
{
int i=a;
int n;
dword offset=buf+72;
byte filename1[256], filename2[256];
IF (a >= b) return;
for (j = a; j <= b; j++)
{
//
copystr(file_mas[j]*304 + offset, #filename1);
copystr(file_mas[b]*304 + offset, #filename2);
n=strlen(#filename1)-1;
WHILE (filename1[n]<>'.') && (n>0) n--;
IF (n) copystr(#filename1+n+1, #filename1);
n=strlen(#filename2)-1;
WHILE (filename2[n]<>'.') && (n>0) n--;
IF (n) copystr(#filename2+n+1, #filename2);
//
n=strcmp(#filename1, #filename2);
IF (n<0) { file_mas[i] >< file_mas[j]; i++;}
IF (n==0) && (strcmp(file_mas[j]*304 + offset, file_mas[b]*304 + offset)<=0) { file_mas[i] >< file_mas[j]; i++;}
}
Sort_by_Type(a, i-2);
Sort_by_Type(i, b);
}