forked from KolibriOS/kolibrios
Eolite: show disk sizes
TmpDisk: get disk size by 70.5 instead of ini storage, impove board loging git-svn-id: svn://kolibrios.org@7515 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
c6ceff795e
commit
6260ae112b
@ -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)
|
||||
);
|
||||
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="<DIR>";
|
||||
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;
|
||||
|
@ -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 "” ©«"
|
||||
|
@ -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 "<EFBFBD>஡ãî 㤠«¨âì /tmp%i"
|
||||
?define NEW_DISK_TEXT "<EFBFBD>஡ãî ¤®¡ ¢¨âì ¢¨àâã «ìë© ¤¨áª /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");
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user