Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2053 → Rev 2054

/programs/fs/Eolite/trunk/Eolite.c--
13,11 → 13,7
#include "imgs\toolbar.txt"
#include "imgs\left_p.txt"
 
//
#define NOTIFY_PATH "@notify"
#define INI_PATH "/sys/File managers/Eolite.ini"
 
 
//ïåðåìåííûå
#define title "Eolite File Manager v0.98.9"
#define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
59,6 → 55,42
#include "include\ini.h--"
 
 
void Devices()
{
//on load
/*devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
ReadDir(10, devbuf, "/");
dev_num=EBX;
*/
byte dev_icon; dword drive_name[30]; char dev_name[4];
DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà
DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
//ñïèñîê äèñêîâ
Tip(56, "Goto:", 0, "");
for (i=0;i<dev_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",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü
dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê
copystr(i*304+ devbuf+72, #dev_name);
IF (dev_name[0]=='r') { dev_icon=0; copystr("RAM-disk /rd/1",#drive_name); }
IF (dev_name[0]=='c') { dev_icon=1; copystr("CD-drive /",#drive_name); }
IF (dev_name[0]=='f') { dev_icon=2; copystr("Floppy disk /",#drive_name); }
IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name);
IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name);
//
IF (dev_icon<>0) copystr(#dev_name,#drive_name+strlen(#drive_name));
copystr("/",#drive_name+strlen(#drive_name));
//
WriteText(45,i*16+79,0x80,0,#drive_name,0);
PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
}
Actions(); //ôóíêöèè ôàéëîâ è ïàïîê
}
 
void main()
word key, id;
mouse m;
65,10 → 97,12
int pressed_y;
{
GetIni(1);
//
load_editbox_lib();
devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
ReadDir(10, devbuf, "/");
dev_num=EBX;
//
IF (param[0]<>'')
{
copystr(#param,#edit_path);
236,10 → 270,14
FileList_ReDraw(1);
break;
case 180: //home
FileList_ReDraw(-za_kadrom-curbtn);
za_kadrom=0;
curbtn=0;
List_ReDraw();
break;
case 181: //end
FileList_ReDraw(count-za_kadrom-curbtn+but_num-1);
za_kadrom=count-but_num;
curbtn=but_num-1;
List_ReDraw();
break;
case 183: //Page Down
FileList_ReDraw(but_num-1);
277,9 → 315,13
copystr(file_mas[i]*304+buf+72,#temp);
AL=DSBYTE[#temp];
IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;}
IF (temp[0]==key)
{
FileList_ReDraw(i-curbtn-za_kadrom);
break;
}
}
}
BREAK;
case evReDraw: draw_window();
}
291,7 → 333,7
inline fastcall void draw_window()
{
WindowRedrawStatus(1);
DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,title);
DefineAndDrawWindow(98,90,560,481,0x73,0x10E4DFE1,0,0,title);
WindowRedrawStatus(2);
Form.GetInfo(SelfInfo);
IF (Form.height==GetSkinWidth()+3) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê
375,23 → 417,38
Line_ReDraw(videlenie, curbtn); //âûäåëåíèå
return;
}
//WriteDebug(IntToStr(curbtn)); =0
//WriteDebug(IntToStr(za_kadrom)); =0
//WriteDebug(IntToStr(count)); =41
ELSE
else
{
IF(but_num+za_kadrom+curbtn_>=count) //18+0+33>=41
{
za_kadrom=count-but_num; //41-18=23
//curbtn=but_num+curbtn_-count; //11=33-18
//WriteDebug("1");
za_kadrom=count-but_num;
curbtn=curbtn_-za_kadrom+curbtn;
}
ELSE
{
//WriteDebug("2");
za_kadrom+=curbtn_+curbtn-but_num+1;
//curbtn=but_num-1;
curbtn=but_num-1;
}
IF (curbtn<0) || (curbtn>but_num)
{
//ShowMessage("Bug found! Tell it Leency!");
curbtn=but_num-1;
}
List_ReDraw();
//WriteDebug(IntToStr(curbtn)); //=0
//WriteDebug(IntToStr(za_kadrom)); //=0
//WriteDebug(IntToStr(but_num)); //=41
//WriteDebug(IntToStr(count)); //=41
/*WriteDebug("");
WriteDebug(#path);
WriteDebug("Number of files:"); WriteDebug(IntToStr(count));
WriteDebug("but_num:"); WriteDebug(IntToStr(but_num));
WriteDebug("curbtn"); WriteDebug(IntToStr(curbtn));
WriteDebug("ra_kadrom:"); WriteDebug(IntToStr(za_kadrom));*/
}
}
}
622,37 → 679,6
}
 
 
void Devices()
{
byte dev_icon; dword drive_name[30]; char dev_name[4];
DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà
DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
//ñïèñîê äèñêîâ
Tip(56, "Goto:", 0, "");
for (i=0;i<dev_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",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü
dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê
copystr(i*304+ devbuf+72, #dev_name);
IF (dev_name[0]=='r') { dev_icon=0; copystr("RAM-disk /rd/1",#drive_name); }
IF (dev_name[0]=='c') { dev_icon=1; copystr("CD-drive /",#drive_name); }
IF (dev_name[0]=='f') { dev_icon=2; copystr("Floppy disk /",#drive_name); }
IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name);
IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name);
//
IF (dev_icon<>0) copystr(#dev_name,#drive_name+strlen(#drive_name));
copystr("/",#drive_name+strlen(#drive_name));
//
WriteText(45,i*16+79,0x80,0,#drive_name,0);
PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
}
Actions(); //ôóíêöèè ôàéëîâ è ïàïîê
}
 
 
void Actions()
{
int actions_y=dev_num*16;
682,15 → 708,6
 
 
 
/*WriteDebug("");
WriteDebug(#path);
WriteDebug("Number of files:"); WriteDebug(IntToStr(count));
WriteDebug("but_num:"); WriteDebug(IntToStr(but_num));
WriteDebug("curbtn"); WriteDebug(IntToStr(curbtn));
WriteDebug("ra_kadrom:"); WriteDebug(IntToStr(za_kadrom));*/
 
 
 
void Goto_edit_path()
{
IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå
/programs/fs/Eolite/trunk/include/ini.h--
6,6 → 6,9
#define PARAM 2
#define OPTION 3
 
char NOTIFY_PATH[7]="@notify";
 
 
void GetIni(byte onload)
{
byte section[32]='', parametr[32]='', option[256]='', InfType=0;
14,10 → 17,13
dword buff, fsize, tj;
//÷èòàåì ôàéë
buff = malloc(1048576);
ReadFile(0, 1048576, buff, INI_PATH);
IF (EAX<>6) //åñëè ôàéë ñ íàñòðîéêàìè íå íàéäåí
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==1) RunProgram(#NOTIFY_PATH, "Eolite.ini not found. Defaults will be used.");
IF (onload==0) goto RUN_AS_PROGRAM;
}
fsize=EBX;
80,30 → 86,30
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");
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");
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");
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");
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");
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");
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");
case 9: RunProgram(#NOTIFY_PATH, "Eolite: error 9 - FAT table is destroyed");
RETURN;
case 10:RunProgram(NOTIFY_PATH, "Eolite: error 10 - Access denied");
case 10:RunProgram(#NOTIFY_PATH, "Eolite: error 10 - Access denied");
RETURN;
case 11:RunProgram(NOTIFY_PATH, "Eolite: error 11 - Device error");
case 11:RunProgram(#NOTIFY_PATH, "Eolite: error 11 - Device error");
RETURN;
case 30:RunProgram(NOTIFY_PATH, "Eolite: error 30 - Not enough memory");
case 30:RunProgram(#NOTIFY_PATH, "Eolite: error 30 - Not enough memory");
RETURN;
case 31:RunProgram(NOTIFY_PATH, "Eolite: error 31 - File is not executable");
case 31:RunProgram(#NOTIFY_PATH, "Eolite: error 31 - File is not executable");
RETURN;
case 32:RunProgram(NOTIFY_PATH, "Eolite: error 32 - Too many processes");
case 32:RunProgram(#NOTIFY_PATH, "Eolite: error 32 - Too many processes");
RETURN;
default:RunProgram(NOTIFY_PATH, "Unknown error number O_o");
default:RunProgram(#NOTIFY_PATH, "Unknown error number O_o");
}
}
/programs/fs/Eolite/trunk/lib/kolibri.h--
10,9 → 10,11
dword alloc_mem = 0x00100000;
dword x86esp_reg = 0x00100000; // 0x0007fff0;
dword I_Param = #param;
dword I_Icon = 0x0;
char param[256]="";
dword I_Path = #program_path;
char param[4096]="";
char program_path[4096]="";
 
 
//Events
#define evMouse 6
#define evButton 3
272,7 → 274,7
do{
EDX++;
AL=DSBYTE[EDX];
IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; continue;}
IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;}
IF(AL>='€')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯
IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80; //à-ï
}while(AL!=0);