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: