diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index c02926d88c..3cabef9cf9 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -709,6 +709,7 @@ void Line_ReDraw(dword bgcol, filenum){ ext1, attr, file_offet, file_name_off, + file_size=0, y=filenum*files.item_h+files.y, icon_y = files.item_h-icon_size/2+1+y; BDVK file; @@ -727,18 +728,13 @@ void Line_ReDraw(dword bgcol, filenum){ file.sizelo = ESDWORD[file_offet+32]; file.sizehi = ESDWORD[file_offet+36]; file_name_off = file_offet+40; + sprintf(#temp_path,"%s/%s",#path,file_name_off); if (! TestBit(attr, 4) ) //file or folder? { ext1 = strrchr(file_name_off,'.') + file_name_off; - if (ext1==file_name_off) ext1 = NULL; //if no extension then show nothing - WriteText( - 7-strlen(ConvertSize64(file.sizelo, file.sizehi))*6+files.x+files.w - 58, - files.text_y+y+1, - files.font_type, - 0, - ConvertSize64(file.sizelo, file.sizehi) - ); + if (ext1==file_name_off) ext1 = NULL; //if no extension then show nothing + file_size = ConvertSize64(file.sizelo, file.sizehi); if (ext1) && (strlen(ext1)<9) WriteTextCenter(files.x+files.w-140, files.text_y+y+1, 72, 0, ext1); } else @@ -747,8 +743,10 @@ void Line_ReDraw(dword bgcol, filenum){ ext1=""; WriteTextCenter(files.x+files.w-140, files.text_y+y+1, 72, 0, ext1); } + if (chrnum(#path, '/')==1) file_size = GetDeviceSizeLabel(#temp_path); } - sprintf(#temp_path,"%s/%s",#path,file_name_off); + if (file_size) WriteText(7-strlen(file_size)*6+files.x+files.w-58, + files.text_y+y+1, files.font_type, 0, file_size); DrawIconByExtension(#temp_path, ext1, files.x+4, icon_y, bgcol); if (TestBit(attr, 1)) || (TestBit(attr, 2)) text_col=0xA6A6B7; //system or hiden? @@ -1167,6 +1165,22 @@ void EventSelectFileByKeyPress() } } +dword GetDeviceSizeLabel(dword path) +{ + BDVK bdvk; + char cdname[8]; + if (ESBYTE[path+1] == '/') path++; + if (ESBYTE[path+1] == 'c') && (ESBYTE[path+2] == 'd') + && (ESBYTE[path+4] == 0) { + //hack for http://board.kolibrios.org/viewtopic.php?p=72293#p72279 + strcpy(#cdname, path); + strcat(#cdname, "/1"); + path = #cdname; + } + GetFileInfo(path, #bdvk); + return ConvertSize64(bdvk.sizelo, bdvk.sizehi); +} + int GetRealFileCountInFolder(dword folder_path) { int fcount; diff --git a/programs/cmm/eolite/include/translations.h b/programs/cmm/eolite/include/translations.h index ab43608bea..030016252e 100644 --- a/programs/cmm/eolite/include/translations.h +++ b/programs/cmm/eolite/include/translations.h @@ -1,5 +1,5 @@ -#define TITLE "Eolite File Manager 4.03" -#define ABOUT_TITLE "EOLITE 4.03" +#define TITLE "Eolite File Manager 4.04" +#define ABOUT_TITLE "EOLITE 4.04" #ifdef LANG_RUS ?define T_FILE "Файл" diff --git a/programs/cmm/tmpdisk/t_console.c b/programs/cmm/tmpdisk/t_console.c index 3207d47a33..30380ccaed 100644 --- a/programs/cmm/tmpdisk/t_console.c +++ b/programs/cmm/tmpdisk/t_console.c @@ -3,12 +3,10 @@ ///////////////////////////////////////////////////////////////////////////////////////// #ifdef LANG_RUS - ?define ADD_DISK_TEXT "пробую добавить виртуальный диск" - ?define DELETE_DISK_TEXT "пробую удалить виртуальный диск" - ?define DONT_KNOW_DISK_SIZE_TEXT "его размер не указан, 20% свободной ОЗУ будет использовано" - ?define NEW_DISK_TEXT "размер диска будет: " + ?define DELETE_DISK_TEXT "Пробую удалить /tmp%i" + ?define NEW_DISK_TEXT "Пробую добавить виртуальный диск /tmp%i размером %i MB" char *rezult_text[]={ - "операция успешно завершена", + "TmpDisk операция успешно завершена", "неизвестный IOCTL, неверный размер предоставляемых данных...", "номер диска должен быть от 0 до 9", "размер создаваемого диска слишком велик", @@ -17,12 +15,10 @@ "неизвестная ошибка O_o", 0}; #else - ?define ADD_DISK_TEXT "trying to add disk" - ?define DELETE_DISK_TEXT "trying to delete virtual disk" - ?define DONT_KNOW_DISK_SIZE_TEXT "its size is not specified, 20% from free RAM will be used" - ?define NEW_DISK_TEXT "new DiskSize: " + ?define DELETE_DISK_TEXT "Trying to delete /tmp%i" + ?define NEW_DISK_TEXT "Trying to add virtual disk /tmp%i, the size of %i MB" char *rezult_text[]={ - "operation completed successfully", + "TmpDisk operation completed successfully", "unknown IOCTL code, wrong input/output size...", "DiskId must be from 0 to 9", "DiskSize is too large", @@ -48,8 +44,7 @@ char Console_Work() debugln("d[number] - delete RAM disk"); ExitProcess(); break; - case 'd': - debugln(DELETE_DISK_TEXT); + case 'd': //Delete disk del_disk.DiskId = param[1]-'0'; ioctl.handle = driver_handle; ioctl.io_code = DEV_DEL_DISK; @@ -57,24 +52,19 @@ char Console_Work() ioctl.inp_size = sizeof(del_disk); ioctl.output = 0; ioctl.out_size = 0; - disk_sizes[del_disk.DiskId] = 0; + sprintf(#size_t, DELETE_DISK_TEXT, add_disk.DiskId); + debugln(#size_t); break; - case 'a': - debugln(ADD_DISK_TEXT); + case 'a': //Add disk disk_size= strchr(#param, 's'); if (!disk_size) { add_disk.DiskSize = GetFreeRAM() / 5 * 2; - debugln(DONT_KNOW_DISK_SIZE_TEXT); } else { add_disk.DiskSize = atoi(disk_size+1)*2048; } - strcpy(#size_t, NEW_DISK_TEXT); - strcat(#size_t, itoa(add_disk.DiskSize/2048)); - strcat(#size_t, " MB"); - debugln(#size_t); add_disk.DiskId = param[1]-'0'; ioctl.handle = driver_handle; ioctl.io_code = DEV_ADD_DISK; @@ -82,7 +72,8 @@ char Console_Work() ioctl.inp_size = sizeof(add_disk); ioctl.output = 0; ioctl.out_size = 0; - disk_sizes[add_disk.DiskId] = add_disk.DiskSize * 512; + sprintf(#size_t, NEW_DISK_TEXT, add_disk.DiskId, add_disk.DiskSize/2048); + debugln(#size_t); break; default: debugln("unknown command line parameters"); diff --git a/programs/cmm/tmpdisk/t_gui.c b/programs/cmm/tmpdisk/t_gui.c index 790c71467b..55c944ac1d 100644 --- a/programs/cmm/tmpdisk/t_gui.c +++ b/programs/cmm/tmpdisk/t_gui.c @@ -55,9 +55,9 @@ void Main_Window() int x; load_dll(boxlib, #box_lib_init,0); - GetSizeDisk(); + GetNewSizeDisk(); edit_disk_size.left = strlen(SIZE_TEXT)*9 + 10; - SetEventMask(0x27); + SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); loop() { switch(WaitEvent()) @@ -142,7 +142,7 @@ void Main_Window() break; case evReDraw: system.color.get(); - DefineAndDrawWindow(170,150,405,290,0x74,system.color.work,"Virtual Disk Manager 0.67a",0); + DefineAndDrawWindow(170,150,405,290,0x74,system.color.work,"Virtual Disk Manager 0.68",0); GetProcessInfo(#Form, SelfInfo); if (Form.status_window>2) break; @@ -151,7 +151,6 @@ void Main_Window() WriteText(6, 9, 0x90, system.color.work_text, SIZE_TEXT); WriteText(edit_disk_size.left + edit_disk_size.width + 12, 9, 0x90, system.color.work_text, "MB."); DrawEditBox(#edit_disk_size); - x = 6; x = 6 + DrawStandartCaptButton(6, 36, 10, T_ADD_DISK); DrawStandartCaptButton(x, 36, 11, T_DELETE_DISK); _PutImage(6+6, 42, 14,14, #icons); @@ -163,7 +162,7 @@ void Main_Window() } -void GetSizeDisk() +void GetNewSizeDisk() { int fr; fr = GetFreeRAM() / 5 * 2; @@ -209,14 +208,24 @@ void GetDisks() } +dword GetDiskSize(dword disk_n) +{ + BDVK bdvk; + char tmp_path[8]; + strcpy(#tmp_path, "/tmp0/1"); + tmp_path[4] = disk_n + '0'; + GetFileInfo(#tmp_path, #bdvk); + return bdvk.sizelo; +} + unsigned int disk_pos_x[]={13,13,13,102,102,102,191,191,191,279,279,279}; unsigned int disk_pos_y[]={79,127,175, 79,127,175, 79,127,175, 79,127,175}; void DrawTmpDisks() { + #define SELECTION_ACTIVE 0x0080FF; + #define SELECTION_INACTIVE 0x757489; dword selection_color; - dword selection_active = 0x0080FF; - dword selection_inactive = 0x757489; char free_ram_text[60]; byte i, real_id; int FreeRAM=GetFreeRAM()/1024; @@ -240,10 +249,13 @@ void DrawTmpDisks() DefineButton(disk_pos_x[i], disk_pos_y[i], 80, 40, 20+i, 0xFFFfff); WriteText(disk_pos_x[i]+26,disk_pos_y[i]+6, 10110000b, 0x222222, #disk_list[i].Item); real_id = disk_list[i].Item[3] - '0'; - WriteText(disk_pos_x[i]+27,disk_pos_y[i]+24, 0x80, 0x555555, ConvertSize(disk_sizes[real_id])); + WriteText(disk_pos_x[i]+27,disk_pos_y[i]+24, 0x80, 0x555555, ConvertSize(GetDiskSize(real_id))); _PutImage(disk_pos_x[i]+6,disk_pos_y[i]+6, 14,14, 2*14*14*3+#icons); if (selected==i) { - if ( edit_disk_size.flags & ed_focus) selection_color = selection_inactive; else selection_color = selection_active; + if ( edit_disk_size.flags & ed_focus) + selection_color = SELECTION_INACTIVE; + else + selection_color = SELECTION_ACTIVE; DrawWideRectangle(disk_pos_x[i], disk_pos_y[i], 80, 40, 2, selection_color); PutPixel(disk_pos_x[i], disk_pos_y[i], 0xFFFfff); } @@ -279,7 +291,7 @@ void AddDisk() pause(5); GetDisks(); DrawTmpDisks(); - GetSizeDisk(); + GetNewSizeDisk(); } diff --git a/programs/cmm/tmpdisk/tmpdisk.c b/programs/cmm/tmpdisk/tmpdisk.c index b909c4f413..f611b9d7e5 100644 --- a/programs/cmm/tmpdisk/tmpdisk.c +++ b/programs/cmm/tmpdisk/tmpdisk.c @@ -4,10 +4,6 @@ #include "..\lib\strings.h" #include "..\lib\fs.h" -#include "..\lib\dll.h" -#include "..\lib\obj\libio.h" -#include "..\lib\obj\libini.h" - #ifndef AUTOBUILD #include "lang.h--" #endif @@ -47,10 +43,6 @@ del_disk_struc del_disk; int driver_handle; -dword disk_sizes[10]; - -_ini ini = { "/sys/settings/system.ini", "DiskSizes" }; - ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////// Code //////////////////// ///////////////////////////////////////////////////////////////////////////////////////// @@ -67,40 +59,12 @@ void main() ExitProcess(); } - GetDiskSizesFromIni(); - if (param) Console_Work(); else Main_Window(); - SaveDiskSizesToIni(); ExitProcess(); } - -void GetDiskSizesFromIni() -{ - char i, key[2]; - load_dll(libini, #lib_init, 1); - key[1]=0; - for (i=0; i<=9; i++) - { - key[0]=i+'0'; - disk_sizes[i] = ini.GetInt(#key, 0); - } -} - -void SaveDiskSizesToIni() -{ - char i, key[2]; - key[1]=0; - for (i=0; i<=9; i++) - { - key[0]=i+'0'; - if (disk_sizes[i]) ini.SetInt(#key, disk_sizes[i]); - } -} - - stop: