20,14 → 20,23 |
#define ONLY_OPEN 2 |
|
//ïåðåìåííûå |
#define title "Eolite File Manager v1.27" |
dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
#define title "Eolite File Manager v1.28" |
dword selection_col=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
// |
|
/* |
int f_visible, |
f_count, |
f_first, |
f_current; |
*/ |
|
int but_num, |
count, |
za_kadrom, |
curbtn, |
scroll_size; |
curbtn; |
|
|
byte cut_active, |
rename_active, |
del_active; |
41,8 → 50,10 |
file_name[4096], |
copy_file[4096], |
temp[4096]; |
int scroll_size; |
|
|
|
int toolbar_buttons_x[6]={9,46,85,134,167,203}; |
|
dword file_mas[6898]; |
74,31 → 85,31 |
mouse m; |
int pressed_y; |
{ |
// |
load_editbox_lib(); |
GetSystemDiscs(); |
GetIni(1); |
|
edit1.shift_color=videlenie; |
edit2.shift_color=videlenie; |
edit1.shift_color=selection_col; |
edit2.shift_color=selection_col; |
|
HistoryPath(add_new_path); |
IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì |
IF (param) |
{ |
copystr(#param, #path); |
IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
} |
else copystr("/rd/1/", #path); |
else |
copystr("/rd/1/", #path); |
|
Open_Dir(#path,ONLY_OPEN); |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
IF (del_active==1) break; |
IF (del_active) break; |
|
id=GetSlot(Form.ID); |
IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
|
IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
IF (!rename_active) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
|
m.get(); |
|
162,10 → 173,14 |
break; |
//Button pressed----------------------------------------------------------------------------- |
case evButton: |
IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí |
id=GetButtonID(); |
IF (id==1) ExitProcess(); |
IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;} |
|
IF (del_active) |
{ |
IF (id==301) || (id==302) Del_File(302-id); |
break; |
} |
switch(id) |
{ |
case 21: //Back |
172,7 → 187,9 |
GoBack(); |
break; |
case 22: //Forward |
HistoryPath(go_forward); |
HistoryPath(GO_FORWARD); |
za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
Open_Dir(#path,WITH_REDRAW); |
break; |
case 23: //up! |
Dir_Up(); |
256,7 → 273,7 |
//Key pressed----------------------------------------------------------------------------- |
case evKey: |
key = GetKey(); |
IF (del_active==1) |
IF (del_active) |
{ |
IF (key==013) Del_File(true); |
IF (key==027) Del_File(false); |
293,14 → 310,16 |
IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); |
RunProgram("/sys/File Managers/Eolite", #path); |
break; |
case 024: //Ctrl+X cut |
case 003: //Ctrl+C copy |
case 024: //Ctrl+X |
case 003: //Ctrl+C |
CTRLC_MARK: |
IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
IF (key==24) cut_active=1; ELSE cut_active=0; |
break; |
case 022: Paste(); break;//Ctrl+V paste |
case 022: //Ctrl+V |
Paste(); |
break; |
case 027: //Esc |
IF (rename_active==1) ReName(false); |
break; |
385,6 → 404,7 |
IF (Form.status_window>2) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
|
//toolbar buttons |
PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
FOR (j=0; j<3; j++) DefineButton(toolbar_buttons_x[j]+2,5+2,31-5,29-5,21+j+BT_HIDE,0xE4DFE1); |
412,7 → 432,7 |
DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
if (del_active==1) Del_Form(); |
if (del_active) Del_Form(); |
} |
|
|
432,7 → 452,7 |
{ |
Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
curbtn+=curbtn_; |
Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
Line_ReDraw(selection_col, curbtn); //âûäåëåíèå |
return; |
} |
ELSE |
450,7 → 470,7 |
{ |
Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
curbtn+=curbtn_; |
Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
Line_ReDraw(selection_col, curbtn); //âûäåëåíèå |
return; |
} |
else |
486,7 → 506,7 |
IF (count-za_kadrom<but_num) || (curbtn>but_num-1) //åñëè ìû â êîíöå ñïèñêà ôàéëîâ ðàçâåðí¸ì îêíî ïîÿâÿòüñÿ ïóñòÿå áåëûå êíîïêè |
{ za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
// |
FOR (j=0; j<but_num; j++) IF (curbtn<>j) Line_ReDraw(0xFFFFFF, j); ELSE Line_ReDraw(videlenie, curbtn); |
FOR (j=0; j<but_num; j++) IF (curbtn<>j) Line_ReDraw(0xFFFFFF, j); ELSE Line_ReDraw(selection_col, curbtn); |
DrawBar(192,paint_x,onLeft(27,192),onTop(paint_x,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
DrawBar(onLeft(168,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
DrawBar(onLeft(95,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
493,7 → 513,42 |
TVScroll(); |
} |
|
/*#include "def_file.txt" |
#define CELL_SIZE 58 |
void List_ReDraw() |
{ |
int i, |
po_gor, po_ver, |
on_xx, name_len; |
po_gor=onLeft(22,197)/CELL_SIZE; |
po_ver=onTop(57,6)/CELL_SIZE; |
for (j=0; j<po_ver; j++;) for (i=0; i<po_gor; i++;) |
{ |
if (j*po_gor+i+za_kadrom>=count) |
{ |
DrawBar(i*CELL_SIZE+192,j*CELL_SIZE+57,CELL_SIZE,CELL_SIZE,0xFFFFFF); |
continue; |
} |
DefineButton(i*CELL_SIZE+192,j*CELL_SIZE+57,CELL_SIZE,CELL_SIZE,j*po_gor+i+201+BT_HIDE,0xFFFFFF); |
DrawBar(i*CELL_SIZE+192,j*CELL_SIZE+57,CELL_SIZE,CELL_SIZE,0xFFFFFF); |
|
off=file_mas[j*po_gor+i+za_kadrom]*304 + buf+72; |
name_len=strlen(off); |
if (name_len>9) name_len=9; |
on_xx=-name_len*3+29; |
WriteText(i*CELL_SIZE+193+on_xx,j*CELL_SIZE+57+CELL_SIZE-16,0,0,off,name_len); |
if (!TestBit(ESDWORD[off-40], 4)) |
PutImage(#file32,32,32,i*CELL_SIZE+197+9,j*CELL_SIZE+57+5); |
else |
PutImage(#folder32,32,32,i*CELL_SIZE+197+9,j*CELL_SIZE+57+5); |
|
} |
TVScroll(); |
}*/ |
|
//------------------------------------------------------------------------------------- |
|
|
void Line_ReDraw(dword color, filenum){ |
dword text_col=0, name_len, |
y=filenum*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y |
555,7 → 610,7 |
errornum=ReadDir(0, buf, #path_); |
if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
{ |
HistoryPath(add_new_path); |
HistoryPath(ADD_NEW_PATH); |
GoBack(); |
Write_Error(errornum); |
return; |
571,7 → 626,7 |
//debug("successfully \n"); |
copystr(temp_,#edit_path); |
KEdit(); |
HistoryPath(add_new_path); |
HistoryPath(ADD_NEW_PATH); |
IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "." |
FOR (j=0;j<but_num;j++) DeleteButton(201+j); //óäàëÿåì ñòàðûå |
but_num=onTop(6,57)/BUTTON_HEIGHT; |
664,13 → 719,13 |
|
void Paste() |
{ |
char new_copy_path[4096]=''; |
char new_copy_path[4096]; |
int copy_rezult; |
|
IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè |
copystr(#path,#new_copy_path); |
copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
if (strcmp(#copy_file,#new_copy_path)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
if (!strcmp(#copy_file,#new_copy_path)) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
{ |
copystr(#path,#new_copy_path); |
copystr("new_",#new_copy_path+strlen(#new_copy_path)); |
683,7 → 738,7 |
DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); |
Pause(150); |
} |
IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
IF (cut_active) //åñëè ìû âûáðàëè âûðåçàòü |
{ |
copystr(#copy_file,#file_path); |
Del_File(true); |
708,7 → 763,7 |
void ReName(byte rename) |
{ |
int del_file_rez; |
char edit_name[256]=''; |
char edit_name[256]; |
rename_active=0; |
edit2.flags=64; |
DefineButton(192,curbtn*BUTTON_HEIGHT+57,onLeft(27,192),BUTTON_HEIGHT,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
737,7 → 792,7 |
} |
SelectFile(#edit_name); |
} |
Line_ReDraw(videlenie,curbtn); |
Line_ReDraw(selection_col,curbtn); |
} |
|
|
774,11 → 829,16 |
|
void Goto_edit_path() |
{ |
IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
IF (!strcmp(#path,#edit_path)) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
Open_Dir(#edit_path,ONLY_OPEN); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
IF (count<1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
{za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
IF (count<1) |
KEdit(); //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
ELSE |
{ |
za_kadrom=curbtn=0; //íàâåðõ ñïèñêà |
copystr(#edit_path,#path); |
} |
Open_Dir(#path,1); |
} |
|
788,7 → 848,7 |
Open_Dir(#path,ONLY_OPEN); |
ChangeCase(that_file); |
for (i=count-1; i>=0; i--;) |
if (strcmp(file_mas[i]*304+buf+72,that_file)==0) break; |
if (!strcmp(file_mas[i]*304+buf+72,that_file)) break; |
FileList_ReDraw(i); |
List_ReDraw(); |
} |
810,7 → 870,7 |
{ |
char cur_folder[4096]; |
copystr(GetCurrentFolder(), #cur_folder); |
HistoryPath(go_back); |
HistoryPath(GO_BACK); |
SelectFile(#cur_folder); |
} |
|