forked from pyrite-dev/milsko
show size
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@397 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
parent
75db522462
commit
89228ae102
17 changed files with 511 additions and 485 deletions
|
|
@ -77,7 +77,6 @@ MWDECL char* MwIconUp[];
|
||||||
*/
|
*/
|
||||||
MWDECL char* MwIconWarning[];
|
MWDECL char* MwIconWarning[];
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,7 @@ struct _MwSizeHints {
|
||||||
struct _MwDirectoryEntry {
|
struct _MwDirectoryEntry {
|
||||||
char* name;
|
char* name;
|
||||||
int type;
|
int type;
|
||||||
|
MwOffset size;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MwCursorDataHeight 16
|
#define MwCursorDataHeight 16
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,12 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) {
|
||||||
} else {
|
} else {
|
||||||
entry->type = MwDIRECTORY_FILE;
|
entry->type = MwDIRECTORY_FILE;
|
||||||
}
|
}
|
||||||
|
entry->size = 0;
|
||||||
|
|
||||||
|
entry->size = entry->size << 32;
|
||||||
|
entry->size |= dir->ffd.nFileSizeHigh;
|
||||||
|
entry->size = entry->size << 32;
|
||||||
|
entry->size |= dir->ffd.nFileSizeLow;
|
||||||
#else
|
#else
|
||||||
struct dirent* d;
|
struct dirent* d;
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
|
@ -92,6 +98,7 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) {
|
||||||
} else {
|
} else {
|
||||||
entry->type = MwDIRECTORY_FILE;
|
entry->type = MwDIRECTORY_FILE;
|
||||||
}
|
}
|
||||||
|
entry->size = s.st_size;
|
||||||
|
|
||||||
free(p);
|
free(p);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,8 @@ static void scan(MwWidget handle, const char* path) {
|
||||||
MwDirectoryEntry** entries = NULL;
|
MwDirectoryEntry** entries = NULL;
|
||||||
int i;
|
int i;
|
||||||
char** names = NULL;
|
char** names = NULL;
|
||||||
|
char** dates = NULL;
|
||||||
|
char** sizes = NULL;
|
||||||
MwLLPixmap* icons = NULL;
|
MwLLPixmap* icons = NULL;
|
||||||
if(dir != NULL) {
|
if(dir != NULL) {
|
||||||
MwDirectoryEntry* entry;
|
MwDirectoryEntry* entry;
|
||||||
|
|
@ -264,26 +266,56 @@ static void scan(MwWidget handle, const char* path) {
|
||||||
|
|
||||||
MwListBoxReset(fc->files);
|
MwListBoxReset(fc->files);
|
||||||
MwListBoxInsert(fc->files, -1, NULL, "Name", "Date modified", "Size", NULL);
|
MwListBoxInsert(fc->files, -1, NULL, "Name", "Date modified", "Size", NULL);
|
||||||
MwListBoxSetWidth(fc->files, 0, -128 - 64);
|
MwListBoxSetWidth(fc->files, 0, -128 - 96);
|
||||||
MwListBoxSetWidth(fc->files, 1, 128);
|
MwListBoxSetWidth(fc->files, 1, 128);
|
||||||
MwListBoxSetWidth(fc->files, 2, 0);
|
MwListBoxSetWidth(fc->files, 2, 0);
|
||||||
|
|
||||||
icons = NULL;
|
icons = NULL;
|
||||||
names = NULL;
|
names = NULL;
|
||||||
|
dates = NULL;
|
||||||
|
sizes = NULL;
|
||||||
for(i = 0; i < arrlen(entries); i++) {
|
for(i = 0; i < arrlen(entries); i++) {
|
||||||
if(strcmp(entries[i]->name, ".") == 0 || strcmp(entries[i]->name, "..") == 0) continue;
|
if(strcmp(entries[i]->name, ".") == 0 || strcmp(entries[i]->name, "..") == 0) continue;
|
||||||
if(entries[i]->type == MwDIRECTORY_DIRECTORY) {
|
if(entries[i]->type == MwDIRECTORY_DIRECTORY) {
|
||||||
arrput(names, entries[i]->name);
|
arrput(names, entries[i]->name);
|
||||||
|
arrput(dates, NULL);
|
||||||
|
arrput(sizes, NULL);
|
||||||
arrput(icons, fc->dir);
|
arrput(icons, fc->dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i = 0; i < arrlen(entries); i++) {
|
for(i = 0; i < arrlen(entries); i++) {
|
||||||
if(entries[i]->type == MwDIRECTORY_FILE) {
|
if(entries[i]->type == MwDIRECTORY_FILE) {
|
||||||
|
char* date = malloc(128);
|
||||||
|
char* size = malloc(128);
|
||||||
|
|
||||||
|
memset(date, 0, 128);
|
||||||
|
memset(size, 0, 128);
|
||||||
|
|
||||||
|
if(entries[i]->size / 1024 == 0) {
|
||||||
|
sprintf(size, "%d", (int)entries[i]->size);
|
||||||
|
} else if(entries[i]->size / 1024 / 1024 == 0) {
|
||||||
|
sprintf(size, "%.1fK", (double)entries[i]->size / 1024);
|
||||||
|
} else if(entries[i]->size / 1024 / 1024 / 1024 == 0) {
|
||||||
|
sprintf(size, "%.1fM", (double)entries[i]->size / 1024 / 1024);
|
||||||
|
} else {
|
||||||
|
sprintf(size, "%.1fG", (double)entries[i]->size / 1024 / 1024 / 1024);
|
||||||
|
}
|
||||||
|
|
||||||
arrput(names, entries[i]->name);
|
arrput(names, entries[i]->name);
|
||||||
|
arrput(dates, date);
|
||||||
|
arrput(sizes, size);
|
||||||
arrput(icons, fc->file);
|
arrput(icons, fc->file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MwListBoxInsertMultiple(fc->files, -1, arrlen(names), icons, names, NULL);
|
MwListBoxInsertMultiple(fc->files, -1, arrlen(names), icons, names, dates, sizes, NULL);
|
||||||
|
for(i = 0; i < arrlen(dates); i++) {
|
||||||
|
if(dates[i] != NULL) free(dates[i]);
|
||||||
|
}
|
||||||
|
for(i = 0; i < arrlen(sizes); i++) {
|
||||||
|
if(sizes[i] != NULL) free(sizes[i]);
|
||||||
|
}
|
||||||
|
arrfree(sizes);
|
||||||
|
arrfree(dates);
|
||||||
arrfree(names);
|
arrfree(names);
|
||||||
arrfree(icons);
|
arrfree(icons);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,5 +32,4 @@ char *MwIconBack[] = {
|
||||||
"OOO .oOOOOOOOOO",
|
"OOO .oOOOOOOOOO",
|
||||||
"OOOO OOOOOOOOOOOOOO",
|
"OOOO OOOOOOOOOOOOOO",
|
||||||
"OOOOO OOOOOOOOOOOOOO",
|
"OOOOO OOOOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOOOOOOO"
|
"OOOOOOOOOOOOOOOOOOOO"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -29,5 +29,4 @@ char *MwIconComputer[] = {
|
||||||
"#o+++XXXXXXX+###",
|
"#o+++XXXXXXX+###",
|
||||||
"+X+++++++++.X###",
|
"+X+++++++++.X###",
|
||||||
" +XXXXXXXXX+ +##",
|
" +XXXXXXXXX+ +##",
|
||||||
"X ......... X###"
|
"X ......... X###"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -28,5 +28,4 @@ char *MwIconDirectory[] = {
|
||||||
"@@@ XoOOo X .@@",
|
"@@@ XoOOo X .@@",
|
||||||
"@@@@@ Xoo X ..@",
|
"@@@@@ Xoo X ..@",
|
||||||
"@@@@@@@ X X ..@",
|
"@@@@@@@ X X ..@",
|
||||||
"@@@@@@@@@ ..@@"
|
"@@@@@@@@@ ..@@"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -45,5 +45,4 @@ char *MwIconError[] = {
|
||||||
" ooo ..## @ o ....### ..#",
|
" ooo ..## @ o ....### ..#",
|
||||||
"## oo .### @@@@ooo ...#####...##",
|
"## oo .### @@@@ooo ...#####...##",
|
||||||
"## ..#### ooooo ...###########",
|
"## ..#### ooooo ...###########",
|
||||||
"###....##### ..#############"
|
"###....##### ..#############"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -28,5 +28,4 @@ char *MwIconFile[] = {
|
||||||
"o++++++++++.@@@@",
|
"o++++++++++.@@@@",
|
||||||
"o++++++++++.@@@@",
|
"o++++++++++.@@@@",
|
||||||
"o++++++++++.@@@@",
|
"o++++++++++.@@@@",
|
||||||
"@X......... @@@@"
|
"@X......... @@@@"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -32,5 +32,4 @@ char *MwIconForward[] = {
|
||||||
"OOOOOOOOOo. OOO",
|
"OOOOOOOOOo. OOO",
|
||||||
"OOOOOOOOOOOOOO OOOO",
|
"OOOOOOOOOOOOOO OOOO",
|
||||||
"OOOOOOOOOOOOOO OOOOO",
|
"OOOOOOOOOOOOOO OOOOO",
|
||||||
"OOOOOOOOOOOOOOOOOOOO"
|
"OOOOOOOOOOOOOOOOOOOO"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -40,5 +40,4 @@ char *MwIconInfo[] = {
|
||||||
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||||
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||||
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||||
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -42,5 +42,4 @@ char *MwIconNews[] = {
|
||||||
"OOOOOOOOOOOOOOOOO OOOOOOOOOO",
|
"OOOOOOOOOOOOOOOOO OOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
|
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
|
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
|
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,4 @@ char *MwIconNote[] = {
|
||||||
"@@@@@@@@ X+X+X+ @@@@@@@@@",
|
"@@@@@@@@ X+X+X+ @@@@@@@@@",
|
||||||
"@@@@@@@@@ X++ X+X @@@@@@@@@@@",
|
"@@@@@@@@@ X++ X+X @@@@@@@@@@@",
|
||||||
"@@@@@@@@@@ X @@@@@@@@@@@@@",
|
"@@@@@@@@@@ X @@@@@@@@@@@@@",
|
||||||
"@@@@@@@@@@@@ @@@@@@@@@@@@@@@"
|
"@@@@@@@@@@@@ @@@@@@@@@@@@@@@"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -42,5 +42,4 @@ char *MwIconQuestion[] = {
|
||||||
"OOOOOOOOOOOO.... oooOOOOOOOOOOO",
|
"OOOOOOOOOOOO.... oooOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOO. ooooOOOOOOOOOOO",
|
"OOOOOOOOOOOOO. ooooOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOooooooOOOOOOOOOOOO",
|
"OOOOOOOOOOOOOOooooooOOOOOOOOOOOO",
|
||||||
"OOOOOOOOOOOOOOOooooOOOOOOOOOOOOO"
|
"OOOOOOOOOOOOOOOooooOOOOOOOOOOOOO"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -33,5 +33,4 @@ char *MwIconSearch[] = {
|
||||||
".OOOOOooooOOOOOOo ++",
|
".OOOOOooooOOOOOOo ++",
|
||||||
".OOOOOOOOOOOOOOOo ++",
|
".OOOOOOOOOOOOOOOo ++",
|
||||||
"..oooooooooooooo. ++",
|
"..oooooooooooooo. ++",
|
||||||
"++ ++"
|
"++ ++"};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -29,5 +29,4 @@ char *MwIconUp[] = {
|
||||||
"....................",
|
"....................",
|
||||||
"....................",
|
"....................",
|
||||||
"....................",
|
"....................",
|
||||||
"...................."
|
"...................."};
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -42,5 +42,4 @@ char *MwIconWarning[] = {
|
||||||
"OXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",
|
"OXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",
|
||||||
"OOXXXXXXXXXXXXXXXXXXXXXXXXXXX...",
|
"OOXXXXXXXXXXXXXXXXXXXXXXXXXXX...",
|
||||||
"OOOO...........................O",
|
"OOOO...........................O",
|
||||||
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
|
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"};
|
||||||
};
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue