git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@345 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-15 18:55:41 +00:00
parent f71ab6184b
commit 39c09b1fb7
11 changed files with 292 additions and 264 deletions

View File

@@ -38,6 +38,14 @@ enum MwALIGNMENT {
*/ */
#define MwDEFAULT 0x0fffffff #define MwDEFAULT 0x0fffffff
/*!
* %brief Directory entry type
*/
enum {
MwDIRECTORY_FILE = 0,
MwDIRECTORY_DIRECTORY
};
/*! /*!
* %brief Icon mask * %brief Icon mask
*/ */

View File

@@ -42,7 +42,6 @@ MWDECL char* MwIconQuestion[];
*/ */
MWDECL char* MwIconWarning[]; MWDECL char* MwIconWarning[];
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -23,6 +23,7 @@
#include <dlfcn.h> #include <dlfcn.h>
#include <signal.h> #include <signal.h>
#include <dirent.h> #include <dirent.h>
#include <sys/stat.h>
#endif #endif
#ifndef M_PI #ifndef M_PI

View File

@@ -139,7 +139,7 @@ struct _MwSizeHints {
struct _MwDirectoryEntry { struct _MwDirectoryEntry {
char* name; char* name;
unsigned long attribute; int type;
}; };
#define MwCursorDataHeight 16 #define MwCursorDataHeight 16

View File

@@ -14,6 +14,7 @@ typedef struct dir {
#else #else
typedef struct dir { typedef struct dir {
DIR* dir; DIR* dir;
char* base;
} dir_t; } dir_t;
#endif #endif
@@ -35,6 +36,8 @@ void* MwDirectoryOpen(const char* path) {
free(dir); free(dir);
return NULL; return NULL;
} }
dir->base = malloc(strlen(path) + 1);
strcpy(dir->base, path);
#endif #endif
return dir; return dir;
@@ -46,6 +49,7 @@ void MwDirectoryClose(void* handle) {
FindClose(dir->hFind); FindClose(dir->hFind);
#else #else
closedir(dir->dir); closedir(dir->dir);
free(dir->base);
#endif #endif
free(handle); free(handle);
} }
@@ -62,14 +66,36 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) {
} }
entry->name = malloc(strlen(dir->ffd.cFileName) + 1); entry->name = malloc(strlen(dir->ffd.cFileName) + 1);
strcpy(entry->name, dir->ffd.cFileName); strcpy(entry->name, dir->ffd.cFileName);
if(dir->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
entry->type = MwDIRECTORY_DIRECTORY;
} else {
entry->type = MwDIRECTORY_FILE;
}
#else #else
struct dirent* d; struct dirent* d;
struct stat s;
char* p;
if((d = readdir(dir->dir)) == NULL) { if((d = readdir(dir->dir)) == NULL) {
free(entry); free(entry);
return NULL; return NULL;
} }
entry->name = malloc(strlen(d->d_name) + 1); entry->name = malloc(strlen(d->d_name) + 1);
strcpy(entry->name, d->d_name); strcpy(entry->name, d->d_name);
p = malloc(strlen(dir->base) + 1 + strlen(d->d_name) + 1);
strcpy(p, dir->base);
strcat(p, "/");
strcat(p, d->d_name);
stat(p, &s);
if(S_ISDIR(s.st_mode)) {
entry->type = MwDIRECTORY_DIRECTORY;
} else {
entry->type = MwDIRECTORY_FILE;
}
free(p);
#endif #endif
return entry; return entry;

View File

@@ -2,48 +2,47 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconError[] = { char* MwIconError[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 8 1 ", "32 32 8 1 ",
" c None", " c None",
". c black", ". c black",
"X c white", "X c white",
"o c gray", "o c gray",
"O c gainsboro", "O c gainsboro",
"+ c lavender", "+ c lavender",
"@ c DarkSlateGray", "@ c DarkSlateGray",
"# c SlateGray", "# c SlateGray",
/* pixels */ /* pixels */
" ... ... ", " ... ... ",
" .Xo. .XX. ", " .Xo. .XX. ",
"..XXo. .XXX..", "..XXo. .XXX..",
".XXoo. .XXOo.", ".XXoo. .XXOo.",
".XXooo. ......... .XOooo.", ".XXooo. ......... .XOooo.",
" ...Xoo...O+++++++o.. .Xoo...@", " ...Xoo...O+++++++o.. .Xoo...@",
" .Xo.#O++XXXXX++Oo. .Xoo.@@@@", " .Xo.#O++XXXXX++Oo. .Xoo.@@@@",
" ..#OO+XXXXXX+OOOo.#oo.@@ ", " ..#OO+XXXXXX+OOOo.#oo.@@ ",
" .OOO+XXXXX++OOOo.@#.@@ ", " .OOO+XXXXX++OOOo.@#.@@ ",
" .#OOO+XXXX++OOOoo#..@@ ", " .#OOO+XXXX++OOOoo#..@@ ",
" .#OOO+XX+++OOOOoo#.@@ ", " .#OOO+XX+++OOOOoo#.@@ ",
" .#ooo+++++OOOOo###.@@@ ", " .#ooo+++++OOOOo###.@@@ ",
" .ooXXXXX+OOO++++##.@@@ ", " .ooXXXXX+OOO++++##.@@@ ",
" .oXXOOOOOOO++OOoo#.@@@ ", " .oXXOOOOOOO++OOoo#.@@@ ",
" .oo...OOOOO...oo..@@@ ", " .oo...OOOOO...oo..@@@ ",
" .o.....ooo.....o.@@@@ ", " .o.....ooo.....o.@@@@ ",
" .X.....ooo...@#o.@@@ ", " .X.....ooo...@#o.@@@ ",
" .oX@@@@.Xoo.@##@oo.@@ ", " .oX@@@@.Xoo.@##@oo.@@ ",
" .OXo@@.Xo.oX.@@oXo.@@@ ", " .OXo@@.Xo.oX.@@oXo.@@@ ",
" .OOXXXXo...oXXXOoo.@@@ ", " .OOXXXXo...oXXXOoo.@@@ ",
" ..oOOXo.o.oOOOo..@.@@ ", " ..oOOXo.o.oOOOo..@.@@ ",
" ..oOOo.o.oOOo..@##.@ ", " ..oOOo.o.oOOo..@##.@ ",
" ..o.oXXXXXOOo.o..###. ", " ..o.oXXXXXOOo.o..###. ",
" .oo.o.@oXXo...o.@@.#oX... ", " .oo.o.@oXXo...o.@@.#oX... ",
" .XXo.X@o....@o.o.@@@.ooXXX. ", " .XXo.X@o....@o.o.@@@.ooXXX. ",
" ...XXo..X@X@o@o@X.o.@@@ .oXoo. ", " ...XXo..X@X@o@o@X.o.@@@ .oXoo. ",
".XXXoo.@@.X.@X@X@.o.@@@@ .Xoo..@", ".XXXoo.@@.X.@X@X@.o.@@@@ .Xoo..@",
".XXXo.@@@.X.@o@o@.o.@@@ .oo.@@@", ".XXXo.@@@.X.@o@o@.o.@@@ .oo.@@@",
"..ooo.@@ .X.....o.@@@@ ...@@ ", "..ooo.@@ .X.....o.@@@@ ...@@ ",
" .oo.@ .XXXXooo.@@@ @@@ ", " .oo.@ .XXXXooo.@@@ @@@ ",
" ...@@ .ooooo.@@@ ", " ...@@ .ooooo.@@@ ",
" @@@@ .....@@ " " @@@@ .....@@ "};
};

View File

@@ -2,44 +2,43 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconInfo[] = { char* MwIconInfo[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 4 1 ", "32 32 4 1 ",
" c None", " c None",
". c blue", ". c blue",
"X c DarkSlateGray", "X c DarkSlateGray",
"o c #6632F7", "o c #6632F7",
/* pixels */ /* pixels */
" ", " ",
" ", " ",
" ", " ",
" ", " ",
" ", " ",
" ..... ", " ..... ",
" ....... ", " ....... ",
" .....XX ", " .....XX ",
" XXXXX ", " XXXXX ",
" ", " ",
" ", " ",
" ...... ", " ...... ",
" .......XX ", " .......XX ",
" ..........XX ", " ..........XX ",
" XXX.....XX ", " XXX.....XX ",
" .....XX ", " .....XX ",
" .....XX ", " .....XX ",
" .....XX ", " .....XX ",
" .....XX ", " .....XX ",
" .....XX ", " .....XX ",
" .....XX ", " .....XX ",
" ....XX ", " ....XX ",
" ....XX ", " ....XX ",
" ....XX . ", " ....XX . ",
" ....X ...XX ", " ....X ...XX ",
" .......XXX ", " .......XXX ",
" XXXXXXX ", " XXXXXXX ",
" ", " ",
" ", " ",
" ", " ",
" ", " ",
" " " "};
};

View File

@@ -2,46 +2,45 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconNews[] = { char* MwIconNews[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 6 1 ", "32 32 6 1 ",
" c None", " c None",
". c black", ". c black",
"X c white", "X c white",
"o c SlateGray", "o c SlateGray",
"O c gray", "O c gray",
"+ c #6632F7", "+ c #6632F7",
/* pixels */ /* pixels */
" ", " ",
" ", " ",
" ", " ",
" ... ", " ... ",
" .XXX.. ", " .XXX.. ",
" .XX.XXX.. ", " .XX.XXX.. ",
" .XX..X.XXX.. ", " .XX..X.XXX.. ",
" .XX.X..XX.oXX.. ", " .XX.X..XX.oXX.. ",
" .XX.XX.XX.Xo.XXX.. ", " .XX.XX.XX.Xo.XXX.. ",
" .XOXXX.XX.O.XX.XXXX.. ", " .XOXXX.XX.O.XX.XXXX.. ",
" .XXo.oXXX.oXXX.XoXoXXX.. ", " .XXo.oXXX.oXXX.XoXoXXX.. ",
" .XOXXXo.OXXO.X.Xo.X.X.oXX.. ", " .XOXXXo.OXXO.X.Xo.X.X.oXX.. ",
" .XXo.oXXXO.oXXX...X.X.Xo.XXX.", " .XXo.oXXXO.oXXX...X.X.Xo.XXX.",
" .XOXXXo.OXXXo.oXXX..XXX.XXXX.O", " .XOXXXo.OXXXo.oXXX..XXX.XXXX.O",
" .XXo.oXXXO.oXXXOX.XXX.oX.XXX.O.", " .XXo.oXXXO.oXXXOX.XXX.oX.XXX.O.",
".oOXXXo.OXXXo.oXX.X..XXo.XXX.O.O", ".oOXXXo.OXXXo.oXX.X..XXo.XXX.O.O",
".Xo.oXXXO.oXXXOX.OXXX..XXXX.O.O.", ".Xo.oXXXO.oXXXOX.OXXX..XXXX.O.O.",
".XXXo.OXXXo.oXX.OOOOXXX.XX.O.O.O", ".XXXo.OXXXo.oXX.OOOOXXX.XX.O.O.O",
".O.oXXO.oXXXOX.oooOOOO.XX.O.O.O.", ".O.oXXO.oXXXOX.oooOOOO.XX.O.O.O.",
".oOO.oXXo.oXXX..ooooO.XX.O.O.O. ", ".oOO.oXXo.oXXX..ooooO.XX.O.O.O. ",
" ..oOOOoXXoOOXXX..oo.XX.O.O.O. ", " ..oOOOoXXoOOXXX..oo.XX.O.O.O. ",
" ..oOO.oXXO.oXXX..XX.O.O.O. ", " ..oOO.oXXO.oXXX..XX.O.O.O. ",
" ..oOO.oXXo.oXXXX.O.O.O. ", " ..oOO.oXXo.oXXXX.O.O.O. ",
" ..oOXOoXXo.XX.O.O.O. ", " ..oOXOoXXo.XX.O.O.O. ",
" ..oOo.oXXX.O.O.O. ", " ..oOo.oXXX.O.O.O. ",
" ..oOO.X.O.O.O. ", " ..oOO.X.O.O.O. ",
" ..oOO.O..O. ", " ..oOO.O..O. ",
" ..o.oOO. ", " ..o.oOO. ",
" ..... ", " ..... ",
" ", " ",
" ", " ",
" " " "};
};

View File

@@ -2,48 +2,47 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconNote[] = { char* MwIconNote[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 8 1 ", "32 32 8 1 ",
" c None", " c None",
". c black", ". c black",
"X c red", "X c red",
"o c magenta", "o c magenta",
"O c white", "O c white",
"+ c yellow", "+ c yellow",
"@ c gray", "@ c gray",
"# c #6632F7", "# c #6632F7",
/* pixels */ /* pixels */
" ..... ", " ..... ",
" .XXXXX. ", " .XXXXX. ",
" .XXXXXXX. ", " .XXXXXXX. ",
" .XXXXXXo. ", " .XXXXXXo. ",
" .XooOOoX. .. ", " .XooOOoX. .. ",
" .XXOOX. ..+O. ", " .XXOOX. ..+O. ",
" ..... ..O+O+. ", " ..... ..O+O+. ",
" ..XXX....+O+O+O+. ", " ..XXX....+O+O+O+. ",
" .X.XXO.X.+O+O+O+O. ", " .X.XXO.X.+O+O+O+O. ",
" .XX.XXo.Xo.+O+O+O+O. ", " .XX.XXo.Xo.+O+O+O+O. ",
" .XXX...XXo.O+O+O+O+. ", " .XXX...XXo.O+O+O+O+. ",
" .XoXXXXXoX.+O+O+O+O+. ", " .XoXXXXXoX.+O+O+O+O+. ",
" ..XXooOOoXX.O+O+O+O+O. ", " ..XXooOOoXX.O+O+O+O+O. ",
"..@..XXXXXXX.O+O+O+O+O+O. ", "..@..XXXXXXX.O+O+O+O+O+O. ",
".@@@........O+O+O+O+O+O+. ", ".@@@........O+O+O+O+O+O+. ",
" .@.@.@..O+O+O+O+O+@@O+O+. ", " .@.@.@..O+O+O+O+O+@@O+O+. ",
" .@@.@.@.+O+O+O+O@@+O+O+O. ", " .@@.@.@.+O+O+O+O@@+O+O+O. ",
" .@@.@.@O+O+@+@@O+O+O+O+O. ", " .@@.@.@O+O+@+@@O+O+O+O+O. ",
" .@@@.@O+O+O@@+O@O+O@@+O+. ", " .@@@.@O+O+O@@+O@O+O@@+O+. ",
" .@O+O+O+@@O+O+O+@@O+O+O+. ", " .@O+O+O+@@O+O+O+@@O+O+O+. ",
" .@@O+O@@+@@O+O@@+O@O+O+O+. ", " .@@O+O@@+@@O+O@@+O@O+O+O+. ",
" .@+O+O+O+O+@@O+O+O+O@@+O+...", " .@+O+O+O+O+@@O+O+O+O@@+O+...",
" .@@+O+O+@@@+O+O+O+@@O+O+O+O.", " .@@+O+O+@@@+O+O+O+@@O+O+O+O.",
" .@O+O@@+O+@+@+O@@+O+O+O+O. ", " .@O+O@@+O+@+@+O@@+O+O+O+O. ",
" .@@O+O+O+O+O+@@O+@+O+O+O. ", " .@@O+O+O+O+O+@@O+@+O+O+O. ",
" .@+O+O+O+O@@+O+O+O+O+.. ", " .@+O+O+O+O@@+O+O+O+O+.. ",
" ..@+O+O+O+O+O+O+O+O.. ", " ..@+O+O+O+O+O+O+O+O.. ",
" ....O+O+O+O+O+O+.. ", " ....O+O+O+O+O+O+.. ",
" .......+O+O+O.. ", " .......+O+O+O.. ",
" ..+OO..+O+.. ", " ..+OO..+O+.. ",
" ...+..... ", " ...+..... ",
" ..... " " ..... "};
};

View File

@@ -2,46 +2,45 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconQuestion[] = { char* MwIconQuestion[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 6 1 ", "32 32 6 1 ",
" c None", " c None",
". c orange", ". c orange",
"X c red", "X c red",
"o c firebrick", "o c firebrick",
"O c SlateGray", "O c SlateGray",
"+ c lavender", "+ c lavender",
/* pixels */ /* pixels */
" ", " ",
" ........... ", " ........... ",
" ..XXXXXXXXXXXXX ", " ..XXXXXXXXXXXXX ",
" .XXXXXoooooooooXXO ", " .XXXXXoooooooooXXO ",
" .XXXXoooooooooooooXO ", " .XXXXoooooooooooooXO ",
" .XXXXooooXXXXoooooooXO ", " .XXXXooooXXXXoooooooXO ",
" .XXXXooooOOO XXooooooooO ", " .XXXXooooOOO XXooooooooO ",
" .XXXXooooOOO XXoooooooOO ", " .XXXXooooOOO XXoooooooOO ",
" .XXXoooooOO .XXooooooOO ", " .XXXoooooOO .XXooooooOO ",
" .XXXooooooO .XXooooooOO ", " .XXXooooooO .XXooooooOO ",
" XXXooooooOO .XXooooooOO ", " XXXooooooOO .XXooooooOO ",
" XXooooooOO .XXXooooooOO ", " XXooooooOO .XXXooooooOO ",
" XXooooOOO .XXooooooOOO ", " XXooooOOO .XXooooooOOO ",
" XXooOOO .XXooooooOOO ", " XXooOOO .XXooooooOOO ",
" OOOOO .XXooooooOOOO ", " OOOOO .XXooooooOOOO ",
" OOO .XXooooooOOOO ", " OOO .XXooooooOOOO ",
" .XXoooooOOOOO ", " .XXoooooOOOOO ",
" .XXoooooOOOO ", " .XXoooooOOOO ",
" .XXoooooOOOO ", " .XXoooooOOOO ",
" .XXooooOOOO ", " .XXooooOOOO ",
" XXoooOOOO ", " XXoooOOOO ",
" XXoOOOO ", " XXoOOOO ",
" OOOOO ", " OOOOO ",
" .XXooO ", " .XXooO ",
" .X.XXoo ", " .X.XXoo ",
" .X.X.XXoo ", " .X.X.XXoo ",
" .XX.XXXooO ", " .XX.XXXooO ",
" XXXXXXooOO ", " XXXXXXooOO ",
" XXXXooOOO ", " XXXXooOOO ",
" XoooOOOO ", " XoooOOOO ",
" OOOOOO ", " OOOOOO ",
" OOOO " " OOOO "};
};

View File

@@ -2,46 +2,45 @@
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
/* XPM */ /* XPM */
char *MwIconWarning[] = { char* MwIconWarning[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 6 1 ", "32 32 6 1 ",
" c None", " c None",
". c red", ". c red",
"X c yellow", "X c yellow",
"o c DarkSlateGray", "o c DarkSlateGray",
"O c black", "O c black",
"+ c #6632F7", "+ c #6632F7",
/* pixels */ /* pixels */
" ", " ",
" ", " ",
" ... ", " ... ",
" ..... ", " ..... ",
" ..X..oo ", " ..X..oo ",
" ..XXX..oo ", " ..XXX..oo ",
" ..XXX..oo ", " ..XXX..oo ",
" ..XXXXX..oo ", " ..XXXXX..oo ",
" ..XXXXX..oo ", " ..XXXXX..oo ",
" ..XXOOOXX..oo ", " ..XXOOOXX..oo ",
" ..XOOOOOX..oo ", " ..XOOOOOX..oo ",
" ..XXOOOOOXX..oo ", " ..XXOOOOOXX..oo ",
" ..XXOOOOOXX..oo ", " ..XXOOOOOXX..oo ",
" ..XXXOOOOOXXX..oo ", " ..XXXOOOOOXXX..oo ",
" ..XXXOOOOOXXX..oo ", " ..XXXOOOOOXXX..oo ",
" ..XXXXOOOOOXXXX..oo ", " ..XXXXOOOOOXXXX..oo ",
" ..XXXXOOOOOXXXX..oo ", " ..XXXXOOOOOXXXX..oo ",
" ..XXXXXOOOOOXXXXX..oo ", " ..XXXXXOOOOOXXXXX..oo ",
" ..XXXXXXOOOXXXXXX..oo ", " ..XXXXXXOOOXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ", " ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ", " ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXXOOOXXXXXXXX..oo ", " ..XXXXXXXXOOOXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXX..oo ", " ..XXXXXXXXXXXXXXXXXXX..oo ",
" ..XXXXXXXXXOOOXXXXXXXXX..oo ", " ..XXXXXXXXXOOOXXXXXXXXX..oo ",
" ..XXXXXXXXOOOOOXXXXXXXX..oo ", " ..XXXXXXXXOOOOOXXXXXXXX..oo ",
" ..XXXXXXXXXOOOOOXXXXXXXXX..oo ", " ..XXXXXXXXXOOOOOXXXXXXXXX..oo ",
" ..XXXXXXXXXXOOOXXXXXXXXXX..oo ", " ..XXXXXXXXXXOOOXXXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXXXXXXXX..oo", " ..XXXXXXXXXXXXXXXXXXXXXXXXX..oo",
" .............................oo", " .............................oo",
" ...........................ooo", " ...........................ooo",
" ooooooooooooooooooooooooooo ", " ooooooooooooooooooooooooooo ",
" " " "};
};