forked from KolibriOS/kolibrios
Eolite 0.98.3
git-svn-id: svn://kolibrios.org@976 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
104d540920
commit
ee45105438
@ -3,11 +3,10 @@
|
||||
//ñòðîêà 258, êåéàï!
|
||||
//âîçìîæíî, áàã â KEdit
|
||||
//find_symbol íàäî ÷èòàòü ñ êîíöà
|
||||
//335 ñòðîêà
|
||||
//PathHistory áëÿ íàäî API äëÿ ðàáîòû ñ èñòîðèåé, â ò.÷. ïðîâåðÿòü íå ðàâíà ëè íîâàÿ ïàïêà ïðåäûäóùåé
|
||||
//DrawBar(sort_num[1],45,6,9,0xE4DFE1);
|
||||
//Open_Dir íàõðåí èñïàãàíåí èôàìè, ñäåëàòü äåôàéëû èëè åù¸ ÷òî-òî, ïîòîìó ÷òî ïîêà ýòî âûãëÿäèò íåêðàñèâî
|
||||
|
||||
#codesize
|
||||
#codesize
|
||||
#include "lib\kolibri.h--"
|
||||
#include "lib\memory.h--"
|
||||
#include "lib\edit_box_lib.h--"
|
||||
@ -16,15 +15,15 @@
|
||||
#include "imgs\left_p.txt"
|
||||
|
||||
//ëîêàëèçàöèÿ è íàñòðîéêè
|
||||
#define header "Eolite File Manager v0.98.2"
|
||||
#define title "Eolite File Manager v0.98.3"
|
||||
#define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
|
||||
byte toolbar_buttons_x[6]={9,46,85,134,167,203};
|
||||
//
|
||||
dword but_num,
|
||||
kolichestvo,
|
||||
count,
|
||||
za_kadrom,
|
||||
curbtn,
|
||||
razm_scrl;
|
||||
scroll_size;
|
||||
byte cut_active,
|
||||
rename_active,
|
||||
del_active;
|
||||
@ -32,13 +31,13 @@ byte show_actions=1,
|
||||
show_preview=0,
|
||||
sort_num=2,
|
||||
isdir;
|
||||
char path[256]="/rd/1/",
|
||||
byte path[256]="/rd/1/",
|
||||
edit_path[256],
|
||||
file_path[256],
|
||||
file_name[256],
|
||||
copy_file[256],
|
||||
temp[256];
|
||||
char PathHistory[2560];
|
||||
byte PathHistory[2560];
|
||||
|
||||
dword file_mas[6898];
|
||||
int temp_int, j, i;
|
||||
@ -90,7 +89,7 @@ int pressed_y;
|
||||
if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y<onTop(22,0)+16)
|
||||
{
|
||||
IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF);
|
||||
while (m.lkm==1) && (za_kadrom<kolichestvo-but_num)
|
||||
while (m.lkm==1) && (za_kadrom<count-but_num)
|
||||
{
|
||||
Pause(10);
|
||||
za_kadrom++;
|
||||
@ -101,16 +100,16 @@ int pressed_y;
|
||||
}
|
||||
|
||||
//êîë¸ñèêî ìûøè
|
||||
IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
|
||||
IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
|
||||
IF (m.vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
|
||||
IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
|
||||
//ñêðîëë
|
||||
if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm)
|
||||
{
|
||||
IF (razm_scrl/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=razm_scrl/2+57; //åñëè êóðñîð íàä îêíîì
|
||||
IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
|
||||
temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
|
||||
j= razm_scrl/2;
|
||||
za_kadrom = m.y -j -57 * kolichestvo / onTop(22,57);
|
||||
IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num;
|
||||
j= scroll_size/2;
|
||||
za_kadrom = m.y -j -57 * count / onTop(22,57);
|
||||
IF (but_num+za_kadrom>count) za_kadrom=count-but_num;
|
||||
IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
|
||||
m.get();
|
||||
}
|
||||
@ -146,7 +145,7 @@ int pressed_y;
|
||||
break;
|
||||
case 77: //actions
|
||||
IF (show_actions==1) show_actions=0; ELSE show_actions=1;
|
||||
Actions(); Preview();
|
||||
Actions();
|
||||
break;
|
||||
case 80: //rename
|
||||
goto REN_MARK;
|
||||
@ -158,10 +157,7 @@ int pressed_y;
|
||||
copystr(#path, #temp);
|
||||
copystr("New folder", #temp+strlen(#temp));
|
||||
CreateFolder(#temp);
|
||||
za_kadrom=curbtn=0;
|
||||
Open_Dir(#path,1);
|
||||
FOR (i=0; i<kolichestvo; i++)
|
||||
IF (strcmp("New folder",file_mas[i]*304+buf+72)==0) {FileList_ReDraw(i); break;}
|
||||
SelectFile("New folder");
|
||||
goto REN_MARK;
|
||||
case 100...120:
|
||||
DEVICE_MARK:
|
||||
@ -232,7 +228,7 @@ int pressed_y;
|
||||
FileList_ReDraw(-za_kadrom-curbtn);
|
||||
break;
|
||||
case 181: //end
|
||||
FileList_ReDraw(kolichestvo-za_kadrom-curbtn+but_num-1);
|
||||
FileList_ReDraw(count-za_kadrom-curbtn+but_num-1);
|
||||
break;
|
||||
case 183: //Page Down
|
||||
FileList_ReDraw(but_num-1);
|
||||
@ -261,7 +257,7 @@ int pressed_y;
|
||||
Del_Form();
|
||||
break;
|
||||
default:
|
||||
FOR (i=curbtn+za_kadrom+1; i<kolichestvo; i++)
|
||||
FOR (i=curbtn+za_kadrom+1; i<count; i++)
|
||||
{
|
||||
copystr(file_mas[i]*304+buf+72,#temp);
|
||||
AL=DSBYTE[#temp];
|
||||
@ -281,7 +277,7 @@ inline fastcall void draw_window()
|
||||
{
|
||||
WindowRedrawStatus(1);
|
||||
skin_width = GetSkinWidth();
|
||||
DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,header);
|
||||
DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,title);
|
||||
Form.GetInfo(SelfInfo);
|
||||
IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê
|
||||
IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
|
||||
@ -297,7 +293,7 @@ inline fastcall void draw_window()
|
||||
DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê
|
||||
DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà
|
||||
DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about
|
||||
DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
|
||||
DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
|
||||
PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal);
|
||||
//ïðÿìîóãîëüíèêè âíóòðè
|
||||
DrawRegion_3D(1,40,Form.width-12,Form.height-skin_width-46,0x94AECE,0x94AECE); //ñèíèé îáîäîê
|
||||
@ -307,6 +303,10 @@ inline fastcall void draw_window()
|
||||
DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File");
|
||||
DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type");
|
||||
DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size");
|
||||
//
|
||||
//sort_type[1]=onLeft(192,168)/2+210;
|
||||
//sort_type[2]=onLeft(115,0);
|
||||
//sort_type[3]=onLeft(44,0);
|
||||
//ïðîêðóòêà
|
||||
DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè
|
||||
DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ
|
||||
@ -320,21 +320,26 @@ inline fastcall void draw_window()
|
||||
|
||||
void KEdit()
|
||||
{
|
||||
edit1.size=strlen(#edit_path); edit1.pos=strlen(#edit_path);
|
||||
edit1.size=edit1.pos=strlen(#edit_path);
|
||||
edit_box_draw stdcall (#edit1);
|
||||
/*edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
|
||||
edit2.width=onLeft(24,217);
|
||||
edit2.top=curbtn*18+59;
|
||||
edit2.size=edit2.pos=strlen(#file_name);
|
||||
edit_box_draw stdcall (#edit2);*/
|
||||
}
|
||||
|
||||
|
||||
inline fastcall void TVScroll() { //Ïðîêðóòêà
|
||||
dword on_y;
|
||||
IF (kolichestvo<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;}
|
||||
on_y = za_kadrom * onTop(22,57) / kolichestvo +57;
|
||||
razm_scrl=onTop(22,57) * but_num - but_num / kolichestvo;
|
||||
IF (razm_scrl<20) razm_scrl = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà
|
||||
IF (razm_scrl>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=kolichestvo) on_y=onTop(23+razm_scrl,0); //äëÿ áîëüøîãî ñïèñêà
|
||||
DrawFlatButton(onLeft(27,0),on_y,16,razm_scrl,0,0xE4DFE1,"");//ïîëçóíîê
|
||||
IF (count<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;}
|
||||
on_y = za_kadrom * onTop(22,57) / count +57;
|
||||
scroll_size=onTop(22,57) * but_num - but_num / count;
|
||||
IF (scroll_size<20) scroll_size = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà
|
||||
IF (scroll_size>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=count) on_y=onTop(23+scroll_size,0); //äëÿ áîëüøîãî ñïèñêà
|
||||
DrawFlatButton(onLeft(27,0),on_y,16,scroll_size,0,0xE4DFE1,"");//ïîëçóíîê
|
||||
DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà
|
||||
DrawBar(onLeft(26,0),on_y+razm_scrl+1,15,onTop(22,57)-razm_scrl-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà
|
||||
DrawBar(onLeft(26,0),on_y+scroll_size+1,15,onTop(22,57)-scroll_size-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà
|
||||
}
|
||||
|
||||
|
||||
@ -360,7 +365,7 @@ void FileList_ReDraw(int curbtn_)
|
||||
}
|
||||
else //âíèç
|
||||
{
|
||||
IF (za_kadrom==kolichestvo-but_num) && (curbtn==but_num-1) return;
|
||||
IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return;
|
||||
IF (but_num-curbtn>curbtn_)
|
||||
{
|
||||
Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà
|
||||
@ -370,7 +375,7 @@ void FileList_ReDraw(int curbtn_)
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
IF(but_num+za_kadrom+curbtn_>=kolichestvo) za_kadrom=kolichestvo-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1;
|
||||
IF(but_num+za_kadrom+curbtn_>=count) za_kadrom=count-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1;
|
||||
curbtn=but_num-1;
|
||||
List_ReDraw();
|
||||
}
|
||||
@ -380,8 +385,8 @@ void FileList_ReDraw(int curbtn_)
|
||||
|
||||
void List_ReDraw()
|
||||
{
|
||||
IF (kolichestvo-za_kadrom<but_num) || (curbtn>but_num-1) //åñëè ìû â êîíöå ñïèñêà ôàéëîâ ðàçâåðí¸ì îêíî ïîÿâÿòüñÿ ïóñòÿå áåëûå êíîïêè
|
||||
{ za_kadrom=kolichestvo-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì
|
||||
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);
|
||||
temp_int=but_num*18+57;
|
||||
@ -394,7 +399,7 @@ void List_ReDraw()
|
||||
|
||||
void Line_ReDraw(dword color, filenum){
|
||||
dword y;//ïîëîæåíèå òåêñòà ïî Y;
|
||||
if (rename_active==1)
|
||||
if (rename_active==1) //âñ¸ ýòî ïîëíûé ïèïåö, è íàäî âûíåñòè â îòäåëüíóþ ïðîöåäóðó
|
||||
{
|
||||
rename_active=0;
|
||||
edit2.flags=64;
|
||||
@ -428,7 +433,7 @@ void Line_ReDraw(dword color, filenum){
|
||||
if (!EAX)
|
||||
{
|
||||
temp_int = Put_icon(off+strlen(off)-4, y+2);
|
||||
WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(70,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
|
||||
WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
|
||||
} ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon("<DIR>", y+2);
|
||||
if (color==videlenie)
|
||||
{
|
||||
@ -449,6 +454,7 @@ void Line_ReDraw(dword color, filenum){
|
||||
WriteText(215,y+6,0,0,off,temp_int); //èìÿ ôàéëà
|
||||
DrawBar(onLeft(168,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
|
||||
DrawBar(onLeft(95,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
|
||||
//Preview();
|
||||
}
|
||||
|
||||
|
||||
@ -462,32 +468,31 @@ void Open_Dir(dword temp_, redraw){
|
||||
IF (buf) free(buf);
|
||||
buf = malloc(32);
|
||||
ReadDir(0, buf, #path_);
|
||||
kolichestvo = ESDWORD[buf+8];
|
||||
buf = realloc(kolichestvo * 304 + 32, buf);
|
||||
ReadDir(kolichestvo, buf, #path_);
|
||||
IF (EBX>6898) && (EBX<>-1) EBX=6898;
|
||||
kolichestvo=EBX;
|
||||
}
|
||||
if (kolichestvo<>-1) && (redraw>0)
|
||||
count = ESDWORD[buf+8];
|
||||
buf = realloc(count * 304 + 32, buf);
|
||||
ReadDir(count, buf, #path_);
|
||||
IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;)
|
||||
count=EBX;
|
||||
}
|
||||
if (count<>-1) && (redraw>0)
|
||||
{
|
||||
IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,kolichestvo-1*304); kolichestvo--; } //ôèëüòðóåì ýëåìåíò "."
|
||||
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)/18;
|
||||
IF (but_num>100) but_num=1; ELSE //ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå
|
||||
IF (kolichestvo<but_num) but_num=kolichestvo;
|
||||
IF (count<but_num) but_num=count;
|
||||
FOR (j=0;j<but_num;j++) DefineButton(192,j*18+57,onLeft(27,192),18,201+j+BT_HIDE+BT_NOFRAME,0xFFFFFF); //íîâûå êíîïû
|
||||
IF (redraw<>3) Sorting();
|
||||
IF (redraw==1) || (redraw==3) List_ReDraw();
|
||||
copystr(temp_,#edit_path);
|
||||
KEdit();
|
||||
copystr("|",#PathHistory+strlen(#PathHistory));
|
||||
copystr(#path,#PathHistory+strlen(#PathHistory));
|
||||
HistoryPath(add_new_path);
|
||||
//ñòðåëî÷êà ñîðòèðîâêè
|
||||
IF (sort_num==1) WriteText(onLeft(192,168)/2+210,45,0x80,0x4E78AC,"\x19",0);
|
||||
IF (sort_num==2) WriteText(onLeft(115,0),45,0x80,0x4E78AC,"\x19",0);
|
||||
IF (sort_num==3) WriteText(onLeft(44,0),45,0x80,0x4E78AC,"\x19",0);
|
||||
}
|
||||
IF (kolichestvo==-1) {but_num=kolichestvo=0; List_ReDraw();}
|
||||
IF (count==-1) {but_num=count=0; List_ReDraw();}
|
||||
}
|
||||
|
||||
|
||||
@ -495,21 +500,21 @@ void Open_Dir(dword temp_, redraw){
|
||||
inline Sorting()
|
||||
{
|
||||
dword k=0, l=1;
|
||||
IF (!strcmp(#path,"/")) {FOR(k=1;k<kolichestvo;k++;)file_mas[k]=k; return;} //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
|
||||
FOR (j=kolichestvo-1, off=kolichestvo-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç
|
||||
IF (!strcmp(#path,"/")) {FOR(k=1;k<count;k++;)file_mas[k]=k; return;} //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
|
||||
FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç
|
||||
{
|
||||
ChangeCase(off+40);
|
||||
EAX=ESDWORD[off];
|
||||
$shr eax,4
|
||||
$and eax,1
|
||||
IF (EAX) {file_mas[k]=j; k++;} ELSE
|
||||
{file_mas[kolichestvo-l]=j; l++;}
|
||||
{file_mas[count-l]=j; l++;}
|
||||
}
|
||||
//Ñîáñòâåííî ñîðòèðîâêà
|
||||
Sort_by_Name(0,k-1);
|
||||
IF (sort_num==1) Sort_by_Name(k,kolichestvo-1);
|
||||
IF (sort_num==2) Sort_by_Type(k, kolichestvo-1);
|
||||
IF (sort_num==3) Sort_by_Size(k,kolichestvo-1);
|
||||
Sort_by_Name(0,k-1); //ñîðòèðóåì ïàïêè, íèæå - ôàéëû
|
||||
IF (sort_num==1) Sort_by_Name(k,count-1);
|
||||
IF (sort_num==2) Sort_by_Type(k, count-1);
|
||||
IF (sort_num==3) Sort_by_Size(k,count-1);
|
||||
//åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà
|
||||
IF (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k=k-1; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]><file_mas[0];
|
||||
}
|
||||
@ -571,7 +576,7 @@ void Paste()
|
||||
copy_file='';
|
||||
cut_active=0;
|
||||
}
|
||||
Open_Dir(#path,1);
|
||||
SelectFile(#copy_file+find_symbol(#copy_file,'/'));
|
||||
}
|
||||
|
||||
|
||||
@ -600,18 +605,19 @@ void Devices()
|
||||
copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü
|
||||
dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê
|
||||
copystr(i*304+ devbuf+72, #dev_name);
|
||||
IF (dev_name[0]=='f') { copystr("Floppy disk /",#drive_name); dev_icon=2; }
|
||||
IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name);
|
||||
IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name);
|
||||
IF (dev_name[0]=='c') {copystr("CD-drive /",#drive_name); dev_icon=1;}
|
||||
copystr(#dev_name,#drive_name+strlen(#drive_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));
|
||||
IF (dev_name[0]=='r') { copystr("RAM-disk /rd/1/",#drive_name); dev_icon=0; }
|
||||
WriteText(45,i*16+79,0x80,0,#drive_name,0);
|
||||
PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
|
||||
//
|
||||
WriteText(45,i*16+79,0x80,0,#drive_name,0);
|
||||
PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
|
||||
}
|
||||
Actions(); //ôóíêöèè ôàéëîâ è ïàïîê
|
||||
Preview();
|
||||
}
|
||||
|
||||
|
||||
@ -636,32 +642,11 @@ void Actions()
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
DeleteButton(80); DeleteButton(81); DeleteButton(82);
|
||||
Tip(dev_num*16+90, "Actions", 77, "\x18");
|
||||
DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå
|
||||
DeleteButton(80); DeleteButton(81); DeleteButton(82);
|
||||
Tip(dev_num*16+90, "Actions", 77, "\x18");
|
||||
DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Dir_Up()
|
||||
{
|
||||
char temp_[256];
|
||||
i=strlen(#path)-1;
|
||||
path[i]=0x00;
|
||||
do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_);
|
||||
path[i+1]=0x00;
|
||||
ChangeCase(#temp_);
|
||||
za_kadrom=curbtn=0; //ââåðõ ñïèñêà
|
||||
Open_Dir(#path,2);
|
||||
FOR (i=kolichestvo-1; i>0; i--;) IF(strcmp(file_mas[i]*304+buf+72,#temp_)==0) BREAK;
|
||||
//
|
||||
if (i>kolichestvo-but_num)
|
||||
{
|
||||
za_kadrom=kolichestvo-but_num;
|
||||
curbtn=i-kolichestvo+but_num;
|
||||
}
|
||||
ELSE FileList_ReDraw(i);
|
||||
List_ReDraw();
|
||||
Preview();
|
||||
}
|
||||
|
||||
|
||||
@ -674,15 +659,14 @@ void Preview()
|
||||
{
|
||||
Tip(top_pr,"Preview",78,"\x19");
|
||||
DrawBar(17,top_pr+18,160,100,0xFFFFFF); //áåëîå
|
||||
WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(kolichestvo),0);
|
||||
/*WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0);
|
||||
DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå
|
||||
//
|
||||
WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(count),0);
|
||||
WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0);
|
||||
WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0);
|
||||
WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0);
|
||||
WriteText(30,top_pr+70,0x80,0,#file_path,0);
|
||||
WriteText(30,top_pr+80,0x80,0,#file_name,0);*/
|
||||
//WriteText(30,top_pr+60,0x80,0,"Not realized... I think",0);
|
||||
//WriteText(30,top_pr+70,0x80,0,"it will be realired soon.",0);
|
||||
DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå
|
||||
WriteText(30,top_pr+80,0x80,0,#file_name,0);
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
@ -697,28 +681,45 @@ void Goto_edit_path()
|
||||
IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå
|
||||
IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/"
|
||||
Open_Dir(#edit_path,0); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà
|
||||
IF (kolichestvo==-1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà
|
||||
IF (count<1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà
|
||||
{za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà
|
||||
Open_Dir(#path,1);
|
||||
}
|
||||
|
||||
void SelectFile(dword that_file)
|
||||
{
|
||||
za_kadrom=curbtn=0; //ââåðõ ñïèñêà
|
||||
Open_Dir(#path,2);
|
||||
ChangeCase(that_file);
|
||||
FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK;
|
||||
IF (i>but_num-1) && (i>count-but_num)
|
||||
{
|
||||
za_kadrom=count-but_num;
|
||||
curbtn=i-count+but_num;
|
||||
}
|
||||
ELSE FileList_ReDraw(i);
|
||||
List_ReDraw();
|
||||
}
|
||||
|
||||
|
||||
void Dir_Up()
|
||||
{
|
||||
char temp_[256];
|
||||
i=strlen(#path)-1;
|
||||
path[i]=0x00;
|
||||
do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_);
|
||||
path[i+1]=0x00;
|
||||
SelectFile(#temp_);
|
||||
}
|
||||
|
||||
|
||||
inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü
|
||||
{
|
||||
//char old_dir[256]='';
|
||||
i=strlen(#PathHistory)-2;
|
||||
//
|
||||
//WHILE (PathHistory[i]<>'/') { copystr(#PathHistory[i],#old_dir); i--; };
|
||||
//old_dir[strlen(#old_dir)-1]=0x00;
|
||||
//DrawTitle(#old_dir);
|
||||
//
|
||||
WHILE (PathHistory[i]<>'|') { i--; };
|
||||
IF (i>0) PathHistory[i]=0x00;
|
||||
WHILE (PathHistory[i]<>'|') { copystr(#PathHistory[i],#path); i--; }
|
||||
IF (i>0) PathHistory[i]=0x00;
|
||||
za_kadrom=curbtn=0; Open_Dir(#path,1);
|
||||
//FOR (i=0; i<kolichestvo; i++;) IF (strcmp(file_mas[i]*304+buf+72,#old_dir)==0) {curbtn=3; za_kadrom=i-3; Open_Dir(#path,1); return;}
|
||||
i=strlen(#PathHistory)-1;
|
||||
PathHistory[i]=0x00;
|
||||
copystr(#PathHistory+find_symbol(#PathHistory,'/'),#temp); //ïàïêà â êîòîðîé áûëè
|
||||
HistoryPath(go_back);
|
||||
SelectFile(#temp);
|
||||
}
|
||||
|
||||
|
||||
|
400
programs/fs/Eolite/trunk/imgs/History.txt
Normal file
400
programs/fs/Eolite/trunk/imgs/History.txt
Normal file
@ -0,0 +1,400 @@
|
||||
20.12.08 -- v0.98.3 RC1 -- 14.6 Кб
|
||||
- теперь координаты отсчитываются от конца скина;
|
||||
- устранён вылет программы в случае, если в папке 0 или больше чем 6898 файлов;
|
||||
- исправлен баг: если в конце списка развернуть окно, выделение "прыгало" вверх;
|
||||
- исправлена перерисовка при переходе в другую папку или устройство;
|
||||
- немного оптимизировано изменение регистра букв в названиях файлов;
|
||||
- теперь выделяется папка, в которой мы были и после кнопки "Назад";
|
||||
- исправлены недочёты при переходе в верхнюю папку;
|
||||
- в историю посещённых папок теперь не может два раза подряд записаться одна и
|
||||
та же папка;
|
||||
- удалён неиспользуемый код;
|
||||
|
||||
|
||||
16.12.08 -- v0.98.1 RC1 -- 14.7 Кб
|
||||
- папка ".." теперь всегда первая в списке;
|
||||
- кнопки вверх/вниз скролл бара теперь реагируют на нажатие и удержание;
|
||||
- файлы с некоторыми расширениями теперь нельзя запускать (реализовал s1n).
|
||||
|
||||
|
||||
15.12.08 -- v0.98 RC1 -- 14.5 Кб
|
||||
- программа научилась работать с bd-дисками и NTFS;
|
||||
- исправлен баг из-за которого прога вылетала при переходе на уровень вверх;
|
||||
- исправлено отображение регистра букв для кириллицы;
|
||||
- удаление папки "." из листинга директории (спасибо diamond'у за помощь).
|
||||
|
||||
|
||||
30.11.08 -- v0.97.2 beta7 -- 14.4 Кб
|
||||
- на /bd/ разделах прога больше не вылетает (хоть ничего на них и не видит);
|
||||
- некоторые исправления в работе полосы прокрутки;
|
||||
- динамическое выделение памяти (в режиме тестирования).
|
||||
|
||||
|
||||
26.11.08 -- v0.97.1 beta7 -- 14.3 Кб
|
||||
- удаление, создание и переименование пустых папок;
|
||||
- все процедуры работы с файловой системой вынесены в отдельный файл;
|
||||
- благодаря помощи Veliant'а большая часть изображений конвертирована в
|
||||
256-цветные с палитрой. В результате чего уменьшился размер сжатой программы
|
||||
и в 2 раза уменьшился обьём несжатой kpack'ом;
|
||||
- улучшено перетягивание ползунка;
|
||||
- исправлен один баг.
|
||||
|
||||
|
||||
20.11.08 -- v0.97 beta7 -- 14.9 Кб
|
||||
- уменьшена перерисовка: во время перерисовки списка
|
||||
фон под иконками не рисуется;
|
||||
- новая иконка изображений, обтекаемость архивов.
|
||||
|
||||
|
||||
17.11.08 -- v0.96.9 beta7 -- 14.9 Кб
|
||||
- некоторые новые ассоциации и иконки файлов .dll (.obj) и .img.
|
||||
|
||||
|
||||
14.11.08 -- v0.96.8 beta7 -- 14.6 Кб
|
||||
- при нажатии на букву, выделяется соответствующий файл;
|
||||
- некоторые новые ассоциации и иконки файлов .cpp и .nes.
|
||||
|
||||
|
||||
31.10.08 -- v0.96.7 beta7 -- 14.4 Кб
|
||||
- теперь, при переходе на уровень вверх, выделяется папка в которой мы были;
|
||||
- отловил баг из-за которого, если попытаться войти в верхнюю папку\файл в
|
||||
списке, не смотря что там выделено, вы перейдёте на уровень вверх;
|
||||
- исправлен баг из-за которого не все элементы сортировались по типу;
|
||||
- теперь выделеный элемент в списке рисуется "в порядке очереди", а не самым
|
||||
последним; это было заметно при перемотке;
|
||||
- оптимизации.
|
||||
|
||||
|
||||
24.10.08 -- v0.96.3 beta7 -- 14.4 Кб
|
||||
- скролл колёсиком как в Symbian;
|
||||
- уменьшена перерисовка окна в ущерб размеру программы;
|
||||
- исправлен баг, когда папки, названия которых имели симполы типа !,& прыгали
|
||||
вверх, выше папки "..";
|
||||
- исправление других багов, улучшение кода.
|
||||
|
||||
|
||||
23.10.08 -- v0.96 beta6 -- 14.1 Кб
|
||||
- вместо сортировки пузырьком теперь используется алгоритм быстрой сортировки
|
||||
(да здравствует Википедия!)). Как результат скорость сортировки по размеру
|
||||
увеличилась в 8 раз, по типу более чем в 5 раз, по имени возросла на 30%;
|
||||
- и более того: теперь, конечно же, сортировка проходит не по первой букве имени
|
||||
файла, а по названию вообще. Так же, при сортировке по типу есть одинаковые
|
||||
расширения, то эти файлы упорядывачиваются по имени;
|
||||
- оптимизирована процедура сравнения строк;
|
||||
- перемотка по 3 елемента;
|
||||
- оптимизация и доработка панели устройств;
|
||||
|
||||
|
||||
17.10.08 -- v0.95.7 beta6 -- 14.3 Кб
|
||||
- перемотка по 2 елемента;
|
||||
- упорядочивание файлов по типу.
|
||||
|
||||
15.10.08 -- v0.95.4 beta6 -- 14.0 Кб
|
||||
- исправлен баг: первая буква названия файл\папки не делалась большой (строчной).
|
||||
|
||||
03.10.08 -- v0.95.3 beta6 -- 14.1 Кб
|
||||
- устранён серьёзный баг с кнопкой "Назад";
|
||||
- при сортировке файлов по размеру, папки не перемешиваются в хаотичном порядке,
|
||||
а продолжают быть отсортированными по имени.
|
||||
- устранён баг в сортировке файлов;
|
||||
- новая иконка папки.
|
||||
|
||||
|
||||
17.09.08 -- v0.95.2 beta6 -- 14.1 Кб
|
||||
- исправлена ошибка, связанная с количеством файлов в папке, замечена Serge'м.
|
||||
Теперь Эолайт без проблем заходит даже в самые большие папки (было проверено
|
||||
на папке объёмом 91000 файлов), но отображает максимум только 6898 файлов;
|
||||
- по нажатию Ctrl+N создаётся новое окно программы с текущей папкой;
|
||||
- небольшие оптимизации.
|
||||
|
||||
|
||||
14.09.08 -- v0.95 beta6 -- 14.0 Кб
|
||||
- новая полоса адреса и переименования файла, основанные на компоненте от <Lrz>;
|
||||
- в EditBox'ax теперь можно использовать все цифры от 1 до 9 (мечта Атаульпы:);
|
||||
- если не выделена строка адреса клавиша BackSpace возвращает в предыдущую папку;
|
||||
- оптимизирована функция IntToStr() за что огромное спасибо diamond'y, она стала
|
||||
меньше на 158 байт;
|
||||
- много интересного почерпнуто из либы Nable'а относительно оптимизации функций;
|
||||
- по совету Albom'a динамическое выделение памяти было заменено статическим, как
|
||||
последствие - исчезло два известных бага, связанных с копированием файлов и
|
||||
их переименованием;
|
||||
- некоторые переменные стали локальными, ещё оптимизации и небольшие багфиксы;
|
||||
|
||||
|
||||
02.08.08 -- v0.94.4 beta5 -- 14.0 Кб
|
||||
- правка трёх небольших багов, оптимизации;
|
||||
|
||||
|
||||
28.07.08 -- v0.94.3 beta5 -- 14.1 Кб
|
||||
- переход по девайсам Ctrl+<цифра>;
|
||||
- установлен минимальный размер высоты окна;
|
||||
- иконка папки "вверх";
|
||||
- почищен и оптимизирован код.
|
||||
|
||||
|
||||
04.07.08 -- v0.94 beta5 -- 13.9 Кб
|
||||
- исправлен довольно старый баг, если ползунок прокрутки в папке с очень большим
|
||||
количеством файлов перетянуть вверх до начала списка, программа вылетала
|
||||
|
||||
|
||||
04.07.08 -- v0.93.9 beta5 -- 13.9 Кб
|
||||
- работает клавиша "Назад" :)
|
||||
- устранён баг из-за которого папки "." и ".." подвергались сортировке
|
||||
|
||||
|
||||
29.06.08 -- v0.93.8 beta5 -- 13.8 Кб
|
||||
- сортировка файлов по первой букве имени
|
||||
|
||||
|
||||
22.06.08 -- v0.93.6 beta5 -- 13.7 Кб
|
||||
- новый алгоритм сортировки файлов по размеру, более быстрый (вычитал о нём на
|
||||
Википедии:), в списке появилось 2 досели потеряных файла
|
||||
|
||||
|
||||
18.06.08 -- v0.93.5 beta5 -- 13.7 Кб
|
||||
- запуск программы с параметрами - например "Eolite /hd1/1/" откроет программу
|
||||
с папкой /hd1/1/ в ней. Несуществующий путь открыт не будет
|
||||
- устранён глюк окна "О программе", когда нажатие на любую клавишу приводило к
|
||||
его зависанию (уходу в бесконечный цикл)
|
||||
- иконка и поддержка файлов ".cvs"
|
||||
- оптимизации кода
|
||||
|
||||
|
||||
15.06.08 -- v0.93.4 beta5 -- 13.4 Кб
|
||||
- исправлен баг с тем появления несуществующего файла в /rd/1/
|
||||
- теперь rd, fd, hd1 и т.д. всегда в нижнем регистре
|
||||
- устранён вылет проги после нажатия кнопки "Up" (спасибо сеса за найденый баг)
|
||||
|
||||
|
||||
14.06.08 -- v0.93.3 beta5 -- 13.4 Кб
|
||||
- теперь заливается белым не весь список, а потом выводится текст, а рисуются
|
||||
белые полосы с текстом - так немного медленнее, но перерисовка значительно
|
||||
меньше (спасибо Марио79 за подсказку)
|
||||
- оптимизирована и исправлена процедура удаления файла
|
||||
- F3 - просмотр любого файла в Тайнипаде
|
||||
- исправлены баги интерфейса
|
||||
|
||||
|
||||
14.06.08 -- v0.93 beta5 -- 13.6 Кб
|
||||
- реализована прокрутка скроллом мыши (спасибо diamond'у за отловленный баг)
|
||||
- немного уменьшена перерисовка окна
|
||||
- уменьшен и оптимизирован код программы
|
||||
- частично исправлен баг разворачивания окна, если мы были в конце списка
|
||||
- теперь при переименовании файла можно использовать все цифры, кроме восьмёрки
|
||||
- у программы изменился компилятор на более новый и ключи компиляции
|
||||
- оптимизирован kolibri.h--
|
||||
|
||||
|
||||
08.06.08 -- v0.92.1 beta5 -- 14.0 Кб
|
||||
- исправлен баг, когда ползунок не всегда доезжал не до конца полосы прокрутки
|
||||
- оптимизации в прокрутке
|
||||
|
||||
|
||||
08.06.08 -- v0.92 beta5 -- 14.0 Кб
|
||||
- устранён баг, появившейся в версии 0.88. Если вы в конце списка и начнёте
|
||||
понемногу увеличивать размеры окна, оттягивая его нижний конец вниз, то со
|
||||
временем программа вылетит
|
||||
- реализован алгоритм плавной прокрутки, есть 1 серьёзный и 1 несерьёзный баг
|
||||
|
||||
|
||||
07.06.08 -- v0.91.5 beta4 -- 14.0 Кб
|
||||
- удалён неиспользуемый с 03.03.08 (v0.83) кусок кода
|
||||
- интерфейс полосы прокрутки стал более объёмным, это было сделано не с целью
|
||||
улучшения дизайна, а с целью уменьшения кода в исходнике :)
|
||||
- устранён баг открытия первого файла, который проявлялся только в эмуляторе
|
||||
- cпасибо diamond'у за исправление ошибки в процедуре складывания двух строк
|
||||
copystr() и её оптимизацию
|
||||
- установлено ограничение на размер имени файла, отображаемого при его удалении
|
||||
- если отменили удаление файла, то опять создаются кнопочки под формой
|
||||
- устранён старый баг (замеченный недавно) - если в полосе адреса прописали
|
||||
несуществующий адрес, программу выкидывало
|
||||
- уменьшена перерисовка при переходе в другую папку, где файлов меньше, чем
|
||||
было в текущей
|
||||
- исправлена ошибка в функциях lowcase() и upcase()
|
||||
- теперь названия файлов и папок начинаются с большой буквы, далее - прописные
|
||||
- с папками на NTFS-разделе программа всё ещё работать не умеет, но, по крайней
|
||||
мере, при попытке войти в какую-то из них она уже не вылетает
|
||||
- немного оптимизирована процедура перехода на девайс
|
||||
- исправлен баг из-за которого имена файлов иногда оказывались чуть выше чем
|
||||
надо, относительно иконок
|
||||
- уменьшена перерисовка окна
|
||||
- другие оптимизации и багфиксы
|
||||
|
||||
|
||||
02.06.08 -- v0.90.4 beta4 -- 14.1 Кб
|
||||
- оптимизации и багфиксы (в т.ч. спасибо Maxis за найденный баг)
|
||||
|
||||
|
||||
01.06.08 -- v0.90 beta4 -- 14.1 Кб
|
||||
- критически уменьшена перерисовка, в несколько раз! Огромное спасибо diamond
|
||||
за подсказку
|
||||
|
||||
|
||||
01.06.08 -- v0.88.5 beta3 -- 14.1 Кб
|
||||
- раньше при переходе из одной папки в другую вся область с файлами
|
||||
закрашивалась белым цветом, а поверх выводились новые. Вопрос: зачем
|
||||
закрашивать ВСЮ область, если файлов ней может быть всего 2? Я тоже не
|
||||
знаю почему я понял это только сейчас. Закрашиваем только эти файлы.
|
||||
- раньше рисовалась левая синяя панель, а поверх неё окошечки с девайсами
|
||||
и т.д. Сейчас не так: синяя панель рисуется ВОКРУГ окошечек, что уменьшает
|
||||
перерисовку.
|
||||
|
||||
|
||||
30.05.08 -- v0.88.2 beta3 -- 14.1 Кб
|
||||
- устранён баг, связанный с клавишами F2 и Home
|
||||
|
||||
|
||||
27.04.08 -- v0.88 beta3 -- 14.1 Кб
|
||||
- обьединены процедуры открытия файла
|
||||
- устранён баг, связанный с переходом из некорневой папки на другой девайс
|
||||
- динамическое выделение памяти под папки
|
||||
|
||||
|
||||
08.04.08 -- v0.87 beta3 -- 14.0 Кб
|
||||
- оптимизировано удаление файла
|
||||
- удалён продублированный код переименования файла
|
||||
- теперь для списка девайсов в левой панели (RАM-диск, жестяки и т.д.)
|
||||
существует определённый буфер, а не открывается папка "/" каждый раз при
|
||||
выводе этого списка или же перехода в какой-то из его элементов
|
||||
- при перерисовке окна больше не считывается содержимое папки, просто
|
||||
выводятся данные, что хранятся в буфере
|
||||
- посла деактивации окна то, что было напечатано в строке адреса не исчезает
|
||||
- упорядочивание файлов по размеру
|
||||
|
||||
|
||||
27.03.08 -- v0.86 beta3 -- 14.4 Кб
|
||||
- оптимизирован вывод размера файлов
|
||||
- убрана лишняя перерисовка при открытии программы
|
||||
- оптимизирован переход в начало и в конец списка файлов
|
||||
- исправлен баг с потелей одного файла в корневых разделах жестких дисков
|
||||
- обьединены процедуры Ctrl+С и Ctrl+X
|
||||
- теперь для каждого изображения не своя переменная, а все они собраны по типам
|
||||
в один файл: toolbar icons, file icons, device icons
|
||||
- уменьшено потребление программой ресурсов при выводе иконок файлов
|
||||
- и ещё много-много всего отимизировано!
|
||||
|
||||
|
||||
09.03.08 -- v0.84 beta2 -- 16.1 Кб
|
||||
- cделано окно "О программе" (размер за kpack-ованого изображения 2.5 Кб)
|
||||
- теперь при переименовании файла можно использовать все цифры
|
||||
- оптимизировано процедуры открытия папки, копирования, перерисовка полосы
|
||||
адреса и полосы переименования файла
|
||||
- запрос на удаление
|
||||
|
||||
|
||||
07.03.08 -- v0.83.3 beta2 -- 13.0 Кб
|
||||
- решён глюк, связанный с корневыми папками жёстких дисков
|
||||
|
||||
|
||||
07.03.08 -- v0.83.2 beta2 -- 13.0 Кб
|
||||
- решён крайне серьёзный баг с пожиранием программой дополнительного количества
|
||||
памяти каждый раз после перерисовки окна или открытия папки
|
||||
|
||||
|
||||
07.03.08 -- v0.83.1 beta2 -- 13.0 Кб
|
||||
- решен баг с прокруткой и папками
|
||||
- опитимизации
|
||||
|
||||
|
||||
03.03.08 -- v0.83 beta2 -- 13.0 Кб
|
||||
- цвет окна более тёмный
|
||||
- распределение: вначале папки, затем файлы
|
||||
- теперь перетягивание ползунка прокрутки работает и в Колибри!
|
||||
- реализованы быстрые клавиши Ctrl+C (Ctrl+Ins), Ctrl+X, Ctrl+V. Как сделать с
|
||||
Shift-ом я не знаю
|
||||
- новое лого
|
||||
- устранён баг с серой линией, отделяющей названия файлов и их тип
|
||||
- устранён древний баг, связанный с невозможностью открыть любой файл с первого
|
||||
раза, только со второго
|
||||
- устранён баг, связаный с длинной имени файла
|
||||
- новая иконка текстовых документов
|
||||
|
||||
|
||||
27.02.08 -- v0.81 beta -- 12.8 Кб
|
||||
- оптимизирование перерисовки при переходе в другую папку
|
||||
- некоторые иконки теперь обтекаемы
|
||||
- багфиксы прокрутки списка
|
||||
|
||||
|
||||
25.02.08 -- v0.80 beta -- 12.6 Кб
|
||||
- критически уменьшена перерисовка!
|
||||
- багфиксы интерфейса
|
||||
|
||||
|
||||
25.02.08 -- v0.77 beta -- 12.5 Кб
|
||||
- переименовывание файлов
|
||||
|
||||
|
||||
23.02.08 -- v0.75 beta -- 12.1 Кб
|
||||
- опять заработали горячие клавиши
|
||||
- библиотека eolite_copy.obj больше не нужна
|
||||
- теперь работает и вырезание файлов (размером не больше чем ОЗУ)
|
||||
- улучшение алгоритма прокрутки
|
||||
- багфиксы
|
||||
|
||||
|
||||
23.02.08 -- v0.71 beta -- 12.1 Кб
|
||||
- устранён баг ограничения размера строки для имён файлов
|
||||
- ReadMe
|
||||
|
||||
|
||||
23.02.08 -- v0.7 beta -- 12.1 Кб
|
||||
- ограничение размера строки для имён файлов
|
||||
- удалена "." в начале списка файлов
|
||||
|
||||
|
||||
22.02.08 -- v0.65 beta -- 12.3 Кб
|
||||
- размер файлов теперь выводится в Кб, Мб и Гб
|
||||
- оптимизация отрисовки в левой синей панели
|
||||
- удобно стало пользоваться полосой адреса. Если она была изменена, нажав Enter
|
||||
мы переходим по новому адресу, если же нет - открывается выделенная папка,
|
||||
файл или программа
|
||||
- в Колибри не работает, в отличии от эмулятора, реализованное перетягивание
|
||||
ползунка :(
|
||||
- выделение по Insert, пока что нигде не используется
|
||||
|
||||
|
||||
18.02.08 -- v0.6 beta -- 11.7 Кб
|
||||
- совместными усилиями устранён серьёзный баг с нажатием ПКМ на заголовке окна
|
||||
- если мы пропишем адрес папки, которой не существует и попытаемся в неё перейти
|
||||
ничего у нас УЖЕ не получится
|
||||
- улучшения в скролле
|
||||
- F5 перерисовать окно
|
||||
- иконки у устройств
|
||||
- панель действий
|
||||
- одиночное копирование и вырезание файлов размером не больше чем ОЗУ
|
||||
- удаление файлов, пока что без запроса
|
||||
|
||||
|
||||
09.02.08 -- v0.5 beta -- 10 Кб
|
||||
- оптимизировано Preview
|
||||
- до деактивации окна уже нельзя кляцать по белой области и видеть кнопки
|
||||
- уменьшен размер иконок - теперь они 16х15
|
||||
- нельзя удалить весь путь в строке адреса, "/" по-любому остаётся
|
||||
- при деактивации окна выделение не перепрыгивает на первый элемент
|
||||
- реализовано открытие програм и ассоциированных файлов
|
||||
- расширения больше не в верхнем регистре
|
||||
- переходит по носителям, теперь если неизвестный носитель - оно так и напишет
|
||||
- добавлены новые типы файлов
|
||||
|
||||
|
||||
04.02.08 -- v0.35 beta -- 9.17 Кб
|
||||
- для строки адреса отдельный "путь" (не #path, а #edit_path).
|
||||
- красивая кнопка перехода
|
||||
- входит в первую папку
|
||||
- вывод типов файлов
|
||||
- оптимизация в коде
|
||||
|
||||
|
||||
03.02.08 -- v0.33 beta -- 8.91 Кб (англ.версия)
|
||||
Первая версия. Краткое хистори:
|
||||
1. Leency делает дизайн программы и ищет пути решения некоторых проблем.
|
||||
2. Veliant делает отображение списка файлов из /rd/1/, а Leency реализует
|
||||
перемотку списка и горячие клавиши.
|
||||
3. Veliant осуществляет вывод размера файлов. Leency мучается с прокруткой.
|
||||
4. Veliant выводит иконки, Leency эти иконки рисует и переделывает дизайн окна.
|
||||
5. Veliant с Leency сделали переход по папкам.
|
||||
6. Устранение багов.
|
||||
|
||||
22.02.08 -- v0.0 -- 0 Кб
|
||||
Начало.
|
@ -1,5 +1,8 @@
|
||||
#include "imgs\logo.txt"
|
||||
|
||||
?define add_new_path 1
|
||||
?define go_back 2
|
||||
|
||||
/*
|
||||
//IPC
|
||||
#include "lib\Nable_lib.h--"
|
||||
@ -38,7 +41,7 @@ void authors()
|
||||
DefineAndDrawWindow(500,200,181,256,0x34,0x10EFEBEF,0,0,"About Eolite");
|
||||
DrawBar(0,0,172,50,0x8494C4); //ãîëóáîå ñçàäè
|
||||
PutPaletteImage(#logo,85,85,48,7,#logo_pal);
|
||||
WriteText(33,100,0x80,0xBF40BF,"Eolite v0.98.2 RC1",0);
|
||||
WriteText(33,100,0x80,0xBF40BF,"Eolite v0.98.3 RC1",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);
|
||||
@ -50,6 +53,24 @@ void authors()
|
||||
}
|
||||
|
||||
|
||||
void HistoryPath(byte action)
|
||||
{
|
||||
IF (action==add_new_path)
|
||||
{
|
||||
IF (strcmp(#PathHistory+find_symbol(#PathHistory,'|'),#path)==0) return;
|
||||
copystr("|",#PathHistory+strlen(#PathHistory));
|
||||
copystr(#path,#PathHistory+strlen(#PathHistory));
|
||||
}
|
||||
IF (action==go_back)
|
||||
{
|
||||
WHILE (PathHistory[i]<>'|') { i--; };
|
||||
IF (i>0) PathHistory[i]=0x00;
|
||||
WHILE (PathHistory[i]<>'|') { copystr(#PathHistory[i],#path); i--; }
|
||||
IF (i>0) PathHistory[i]=0x00;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*òèïà àíèìàöèÿ
|
||||
WHILE (m.lkm==1)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ void Sort_by_Name(int a, b) //
|
||||
}
|
||||
|
||||
|
||||
int partition1(dword a, b)
|
||||
/*int partition1(dword a, b)
|
||||
{
|
||||
dword i = a; byte filename1[256], filename2[256]; int n;
|
||||
for (j = a; j <= b; j++)
|
||||
@ -45,6 +45,29 @@ int partition1(dword a, b)
|
||||
IF (n==0) && (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[i] >< file_mas[j]; i++;}
|
||||
}
|
||||
EAX = i-1;
|
||||
}*/
|
||||
|
||||
int partition1(dword a, b)
|
||||
{
|
||||
dword i = a; byte filename1[256], filename2[256]; int n;
|
||||
dword offset=buf+72;
|
||||
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++;}
|
||||
}
|
||||
EAX = i-1;
|
||||
}
|
||||
|
||||
void Sort_by_Type(dword a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
|
||||
|
@ -3,12 +3,13 @@
|
||||
#define fce "/sys/games/fce"
|
||||
#define graph "graph"
|
||||
#define htmlv "/sys/network/HTMLv"
|
||||
#define jpegview "JpegView"
|
||||
#define jpegview "jpegview"
|
||||
#define kvid "/sys/kvid"
|
||||
#define life2 "/sys/demos/life2"
|
||||
#define midamp "MIDAMP"
|
||||
#define mv "MV"
|
||||
#define pngview "pngview"
|
||||
#define midamp "/sys/multimedia/midamp"
|
||||
//#define mv "MV"
|
||||
#define mv "/sys/multimedia/imgview"
|
||||
#define pngview "/sys/multimedia/pngview"
|
||||
#define rtfread "RtfRead"
|
||||
#define tinypad "TinyPad"
|
||||
#define view3ds "/sys/demos/3d/view3ds"
|
||||
|
@ -3,7 +3,7 @@
|
||||
#startaddress 0
|
||||
#code32 TRUE
|
||||
|
||||
char os_name[8] = {'M','E','N','U','E','T','0','1'};
|
||||
byte os_name[8] = {'M','E','N','U','E','T','0','1'};
|
||||
dword os_version = 0x00000001;
|
||||
dword start_addr = #main;
|
||||
dword final_addr = #stop+32;
|
||||
@ -31,9 +31,8 @@ char param[256]="";
|
||||
|
||||
|
||||
|
||||
int vert;
|
||||
struct mouse{
|
||||
int x,y,lkm,pkm;
|
||||
int x,y,lkm,pkm,hor,vert;
|
||||
void get();
|
||||
};
|
||||
|
||||
@ -166,8 +165,8 @@ inline fastcall dword MoveSize(dword EBX,ECX,EDX,ESI){
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
inline fastcall dword strlen(dword EDI){
|
||||
ECX=EAX=0;
|
||||
ECX--;
|
||||
EAX=0;
|
||||
ECX=-1;
|
||||
$REPNE $SCASB
|
||||
EAX-=2+ECX;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user