diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index 8ce59a47d6..561ee6110d 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -6,7 +6,7 @@ #endif //libraries -#define MEMSIZE 540000 +#define MEMSIZE 4096 * 150 #include "..\lib\clipboard.h" #include "..\lib\strings.h" #include "..\lib\mem.h" @@ -15,6 +15,7 @@ #include "..\lib\list_box.h" #include "..\lib\random.h" #include "..\lib\font.h" +#include "..\lib\collection.h" //obj #include "..\lib\obj\libini.h" #include "..\lib\obj\box_lib.h" @@ -72,7 +73,7 @@ char scroll_used=false; dword menu_stak,about_stak,properties_stak,settings_stak,copy_stak,delete_stak; proc_info Form; -int mouse_dd, sc_slider_h, kolibrios_drive; +int mouse_dd, sc_slider_h; int j, i; int action_buf; int rand_n; @@ -412,7 +413,7 @@ void main() { case 059...068: key_scancode -= 59; - if (key_scancode<disc_num) + if (key_scancode<disk_list.count) { if (!two_panels) { diff --git a/programs/cmm/eolite/include/left_panel.h b/programs/cmm/eolite/include/left_panel.h index d90787c2ba..9dd5707399 100644 --- a/programs/cmm/eolite/include/left_panel.h +++ b/programs/cmm/eolite/include/left_panel.h @@ -69,20 +69,17 @@ void Tip(int y, dword caption, id, arrow) } -path_string disk_list[30]; -int disc_num; -dword devbuf; - +collection disk_list; void GetSystemDiscs() { char dev_name[10], sys_discs[10]; - int i1, j1, dev_num, dev_disc_num,l; + int i1, j1, dev_num, dev_disc_num; dword temp_file_count, tempbuf; + dword devbuf; - disc_num=0; - if (devbuf) free(devbuf); - devbuf = malloc(10000); //����� ���-�� �� 10 �������� � ����� ������ + disk_list.init(4096); + devbuf = malloc(10000); ReadDir(19, devbuf, "/"); dev_num = EBX; for (i1=0; i1<dev_num; i1++) @@ -90,27 +87,20 @@ void GetSystemDiscs() sprintf(#dev_name,"/%s/",i1*304+ devbuf+72); Open_Dir(#dev_name, ONLY_OPEN); dev_disc_num = files.count; - //if (files.count<=0) copystr(#dev_name,#disk_list[disc_num].Item); else for (j1=0; j1<dev_disc_num; j1++;) { - l=sprintf(#sys_discs,"%s%s/",#dev_name,j1*304+ buf+72); - strlcpy(#disk_list[disc_num].Item, #sys_discs,l); - disc_num++; + sprintf(#sys_discs,"%s%s/",#dev_name,j1*304+ buf+72); + disk_list.add(#sys_discs); } - if (!strncmp(#sys_discs, "/rd/1/",6)) + if (!strcmp(#sys_discs, "/rd/1/")) { GetDir(#tempbuf, #temp_file_count, "/kolibrios/", DIRS_ONLYREAL); - if (temp_file_count) - { - strlcpy(#disk_list[disc_num].Item, "/kolibrios/",11); - kolibrios_drive = true; - disc_num++; - } - else kolibrios_drive = false; + if (temp_file_count) disk_list.add("/kolibrios/"); free(tempbuf); } - else if (!strncmp(#sys_discs, "/fd/1/",6)) CMD_ENABLE_SAVE_IMG = true; + else if (!strcmp(#sys_discs, "/fd/1/")) CMD_ENABLE_SAVE_IMG = true; } + free(devbuf); } @@ -119,10 +109,10 @@ void DrawSystemDiscs() char dev_name[15], disc_name[100], i, dev_icon, is_active, name_len; int pos_y, pos_x=2; - for (i=disc_num; i<30; i++) DeleteButton(100+i); - for (i=0;i<disc_num;i++) + for (i=0; i<30; i++) DeleteButton(100+i); + for (i=0;i<disk_list.count;i++) { - strcpy(#dev_name, #disk_list[i].Item); + strcpy(#dev_name, disk_list.get(i)); dev_name[strlen(#dev_name)-1]=NULL; switch(dev_name[1]) { @@ -207,7 +197,7 @@ void DrawSystemDiscs() void ActionsDraw() { - int actions_y=disc_num*16+108, lineh=16; + int actions_y=disk_list.count*16+108, lineh=16; Tip(actions_y-18, T_ACTIONS, 77, ""); //��������� for (i=0; actions[i*3]!=0; i++, actions_y+=lineh) { @@ -222,7 +212,7 @@ void ActionsDraw() void DrawLeftPanelBg() { - int actions_y=disc_num*16; + int actions_y=disk_list.count*16; int start_y = actions_y+156; int onTop1; DrawBar(2,41,190,15,col_lpanel); //����� ������������� - ��� ��������� @@ -255,9 +245,9 @@ void DrawDeviceAndActionsLeftPanel() } -void ClickOnDisk(char diskN) +void ClickOnDisk(int n) { - strcpy(#path, #disk_list[diskN].Item); + strcpy(#path, disk_list.get(n)); files.KeyHome(); Open_Dir(#path,WITH_REDRAW); } \ No newline at end of file diff --git a/programs/cmm/eolite/include/translations.h b/programs/cmm/eolite/include/translations.h index 672bbcff88..a3cd85a1d3 100644 --- a/programs/cmm/eolite/include/translations.h +++ b/programs/cmm/eolite/include/translations.h @@ -1,5 +1,5 @@ -#define TITLE "Eolite File Manager v3.26" -#define ABOUT_TITLE "Eolite 3.26" +#define TITLE "Eolite File Manager v3.27" +#define ABOUT_TITLE "Eolite 3.27" #ifdef LANG_RUS ?define T_FILE "����"