mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2025-12-31 06:30:52 +00:00
add icons
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@258 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
@@ -84,6 +84,7 @@ struct _MwWidget {
|
||||
int prop_event;
|
||||
|
||||
void* internal;
|
||||
void* opaque;
|
||||
|
||||
MwIntegerKeyValue* integer;
|
||||
MwTextKeyValue* text;
|
||||
|
||||
BIN
resource/icon/info.png
Normal file
BIN
resource/icon/info.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 397 B |
BIN
resource/icon/note.png
Normal file
BIN
resource/icon/note.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 444 B |
BIN
resource/icon/question.png
Normal file
BIN
resource/icon/question.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 492 B |
BIN
resource/icon/warning.png
Normal file
BIN
resource/icon/warning.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 458 B |
@@ -275,13 +275,19 @@ MwLLPixmap MwLLCreatePixmap(MwLL handle, unsigned char* data, int width, int hei
|
||||
|
||||
if(r->use_shm) {
|
||||
r->image = XShmCreateImage(handle->display, DefaultVisual(handle->display, DefaultScreen(handle->display)), 24, ZPixmap, NULL, &r->shm, width, height);
|
||||
free(d);
|
||||
|
||||
r->shm.shmid = shmget(IPC_PRIVATE, r->image->bytes_per_line * height, IPC_CREAT | 0777);
|
||||
r->shm.shmaddr = d = r->image->data = shmat(r->shm.shmid, 0, 0);
|
||||
r->shm.readOnly = False;
|
||||
XShmAttach(handle->display, &r->shm);
|
||||
} else {
|
||||
r->shm.shmid = shmget(IPC_PRIVATE, r->image->bytes_per_line * height, IPC_CREAT | 0777);
|
||||
if(r->shm.shmid == -1) {
|
||||
XDestroyImage(r->image);
|
||||
r->use_shm = 0;
|
||||
} else {
|
||||
free(d);
|
||||
r->shm.shmaddr = d = r->image->data = shmat(r->shm.shmid, 0, 0);
|
||||
r->shm.readOnly = False;
|
||||
XShmAttach(handle->display, &r->shm);
|
||||
}
|
||||
}
|
||||
if(!r->use_shm) {
|
||||
r->image = XCreateImage(handle->display, DefaultVisual(handle->display, DefaultScreen(handle->display)), 24, ZPixmap, 0, d, width, height, 32, width * 4);
|
||||
}
|
||||
|
||||
|
||||
37
src/draw.c
37
src/draw.c
@@ -368,7 +368,7 @@ void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int
|
||||
MwRect r;
|
||||
|
||||
sx = point->x;
|
||||
sy = point->y - FontHeight * FontScale / 2;
|
||||
sy = point->y - MwTextHeight(handle, text) / 2;
|
||||
|
||||
if(align == MwALIGNMENT_CENTER) {
|
||||
sx -= strlen(text) * FontWidth * FontScale / 2;
|
||||
@@ -382,19 +382,24 @@ void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int
|
||||
|
||||
if(out >= 0x80) out = 0;
|
||||
|
||||
for(y = 0; y < FontHeight; y++) {
|
||||
for(x = 0; x < FontWidth; x++) {
|
||||
r.x = sx + x * FontScale;
|
||||
r.y = sy + y * FontScale;
|
||||
r.width = FontScale;
|
||||
r.height = FontScale;
|
||||
if(out == '\n') {
|
||||
sx = 0;
|
||||
sy += FontHeight * FontScale;
|
||||
} else {
|
||||
for(y = 0; y < FontHeight; y++) {
|
||||
for(x = 0; x < FontWidth; x++) {
|
||||
r.x = sx + x * FontScale;
|
||||
r.y = sy + y * FontScale;
|
||||
r.width = FontScale;
|
||||
r.height = FontScale;
|
||||
|
||||
if((bold ? MwBoldFontData : MwFontData)[out].data[y] & (1 << ((FontWidth - 1) - x))) {
|
||||
MwDrawRect(handle, &r, color);
|
||||
if((bold ? MwBoldFontData : MwFontData)[out].data[y] & (1 << ((FontWidth - 1) - x))) {
|
||||
MwDrawRect(handle, &r, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
sx += FontWidth * FontScale;
|
||||
}
|
||||
sx += FontWidth * FontScale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,10 +410,20 @@ int MwTextWidth(MwWidget handle, const char* text) {
|
||||
}
|
||||
|
||||
int MwTextHeight(MwWidget handle, const char* text) {
|
||||
int c = 1;
|
||||
int i = 0;
|
||||
|
||||
(void)handle;
|
||||
(void)text;
|
||||
|
||||
return FontHeight * FontScale;
|
||||
while(text[i] != 0) {
|
||||
int out;
|
||||
i += MwUTF8ToUTF32(text + i, &out);
|
||||
|
||||
if(out == '\n') c++;
|
||||
}
|
||||
|
||||
return FontHeight * FontScale * c;
|
||||
}
|
||||
|
||||
#ifndef USE_STB_IMAGE
|
||||
|
||||
@@ -5,40 +5,40 @@
|
||||
char* MwIconInfo[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 4 1 ",
|
||||
" c black",
|
||||
". c #6632F7",
|
||||
"X c white",
|
||||
"o c None",
|
||||
" c None",
|
||||
". c blue",
|
||||
"X c DarkSlateGray",
|
||||
"o c lavender",
|
||||
/* pixels */
|
||||
"oooooooooooooooooooooooooooooooo",
|
||||
"ooooooooooo oooooooooooo",
|
||||
"ooooooooo ooooooooo",
|
||||
"ooooooo ......... oooooooo",
|
||||
"oooooo ............. oooooo",
|
||||
"ooooo ................ ooooo",
|
||||
"oooo ........XX........ ooooo",
|
||||
"ooo ........XXXX........ oooo",
|
||||
"ooo .........XXXX......... ooo",
|
||||
"oo ..........XXXX......... ooo",
|
||||
"oo ...........XX........... oo",
|
||||
"o ......................... oo",
|
||||
"o ...........XXXX.......... oo",
|
||||
"o ...........XXXX........... o",
|
||||
"o ...........XXXX........... o",
|
||||
"o ...........XXXX........... o",
|
||||
"o ...........XXXX........... o",
|
||||
"o ...........XXXX........... o",
|
||||
"o ...........XXXX.......... oo",
|
||||
"o ...........XXXX.......... oo",
|
||||
"oo ..........XXXX.......... oo",
|
||||
"oo ..........XXXX......... oo",
|
||||
"oo .........XXXX......... ooo",
|
||||
"ooo .........XXXX........ ooo",
|
||||
"oooo ........XXXX....... oooo",
|
||||
"oooo ........XX....... ooooo",
|
||||
"ooooo ............... oooooo",
|
||||
"ooooooo ........... ooooooo",
|
||||
"oooooooo ..... oooooooo",
|
||||
"oooooooooo oooooooooo",
|
||||
"ooooooooooooo oooooooooooooo",
|
||||
"oooooooooooooooooooooooooooooooo"};
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ..... ",
|
||||
" ....... ",
|
||||
" .....XX ",
|
||||
" XXXXX ",
|
||||
" ",
|
||||
" ",
|
||||
" ...... ",
|
||||
" .......XX ",
|
||||
" ..........XX ",
|
||||
" XXX.....XX ",
|
||||
" .....XX ",
|
||||
" .....XX ",
|
||||
" .....XX ",
|
||||
" .....XX ",
|
||||
" .....XX ",
|
||||
" .....XX ",
|
||||
" ....XX ",
|
||||
" ....XX ",
|
||||
" ....XX . ",
|
||||
" ....X ...XX ",
|
||||
" .......XXX ",
|
||||
" XXXXXXX ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
|
||||
@@ -4,41 +4,43 @@
|
||||
/* XPM */
|
||||
char* MwIconNote[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 4 1 ",
|
||||
"32 32 6 1 ",
|
||||
" c None",
|
||||
". c black",
|
||||
"X c #FCFC00",
|
||||
"o c black",
|
||||
". c red",
|
||||
"X c white",
|
||||
"o c SlateGray",
|
||||
"O c firebrick",
|
||||
"+ c lavender",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..... ",
|
||||
" ............ ",
|
||||
" ......XXXXX..... ",
|
||||
" ....XXXXXXXXXXX... ",
|
||||
" ...XXXXXXXXXXXXXXX... ",
|
||||
" ...XXXXXXX..XXXXXXXX... ",
|
||||
" ...XXXXXXX....XXXXXXXX.. ",
|
||||
" ...XXXXXXXX....XXXXXXXXX.. ",
|
||||
" ..XXXXXXXXX....XXXXXXXXX... ",
|
||||
" ...XXXXXXXXX....XXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXX....XXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXX....XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX..XXXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXX....XXXXXXXXXX.. ",
|
||||
" ..XXXXXXXXX....XXXXXXXXX.. ",
|
||||
" ..XXXXXXXX....XXXXXXXX... ",
|
||||
" ..XXXXXXXX..XXXXXXXX... ",
|
||||
" ...XXXXXXXXXXXXXXXX... ",
|
||||
" ....XXXXXXXXXXXXX... ",
|
||||
" ....XXXXXXXXX.... ",
|
||||
" .............. ",
|
||||
" ......... ",
|
||||
" "};
|
||||
" .... ",
|
||||
" ........ ",
|
||||
" ..XX......o ",
|
||||
" .XX.......oo ",
|
||||
" ..X........Oo ",
|
||||
" .XX........Ooo ",
|
||||
" .X.........Ooo ",
|
||||
" .X.........Ooo ",
|
||||
" ...........Ooo ",
|
||||
" ...........Ooo ",
|
||||
" ..........Ooo ",
|
||||
" ..........Ooo ",
|
||||
" .........Oooo ",
|
||||
" .........Ooo ",
|
||||
" .........Ooo ",
|
||||
" ........Oooo ",
|
||||
" .......Ooo ",
|
||||
" ......Oooo ",
|
||||
" ......Ooo ",
|
||||
" ....Oooo ",
|
||||
" ....Ooo ",
|
||||
" OOOooo ",
|
||||
" ooo ",
|
||||
" ..... ",
|
||||
" .XX...Oo ",
|
||||
" .XX.....Oo ",
|
||||
" .X......Ooo ",
|
||||
" ........Ooo ",
|
||||
" ........Ooo ",
|
||||
" O.....Oooo ",
|
||||
" OOOOOooo ",
|
||||
" ooooo "};
|
||||
|
||||
@@ -4,39 +4,43 @@
|
||||
/* XPM */
|
||||
char* MwIconQuestion[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 2 1 ",
|
||||
"32 32 6 1 ",
|
||||
" c None",
|
||||
". c red",
|
||||
". c orange",
|
||||
"X c red",
|
||||
"o c firebrick",
|
||||
"O c SlateGray",
|
||||
"+ c lavender",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ....... ",
|
||||
" ............. ",
|
||||
" ..... ...... ",
|
||||
" .... ...... ",
|
||||
" ... ...... ",
|
||||
" .... ...... ",
|
||||
" ..... ...... ",
|
||||
" ..... ...... ",
|
||||
" .. ...... ",
|
||||
" ....... ",
|
||||
" ...... ",
|
||||
" ....... ",
|
||||
" ....... ",
|
||||
" ....... ",
|
||||
" ...... ",
|
||||
" ..... ",
|
||||
" .... ",
|
||||
" ... ",
|
||||
" .... ",
|
||||
" .... ",
|
||||
" ..... ",
|
||||
" ...... ",
|
||||
" ...... ",
|
||||
" .... ",
|
||||
" ",
|
||||
" .. ",
|
||||
" ...... ",
|
||||
" ...... ",
|
||||
" ...... ",
|
||||
" .... ",
|
||||
" "};
|
||||
" ........... ",
|
||||
" ..XXXXXXXXXXXXX ",
|
||||
" .XXXXXoooooooooXXO ",
|
||||
" .XXXXoooooooooooooXO ",
|
||||
" .XXXXooooXXXXoooooooXO ",
|
||||
" .XXXXooooOOO XXooooooooO ",
|
||||
" .XXXXooooOOO XXoooooooOO ",
|
||||
" .XXXoooooOO .XXooooooOO ",
|
||||
" .XXXooooooO .XXooooooOO ",
|
||||
" XXXooooooOO .XXooooooOO ",
|
||||
" XXooooooOO .XXXooooooOO ",
|
||||
" XXooooOOO .XXooooooOOO ",
|
||||
" XXooOOO .XXooooooOOO ",
|
||||
" OOOOO .XXooooooOOOO ",
|
||||
" OOO .XXooooooOOOO ",
|
||||
" .XXoooooOOOOO ",
|
||||
" .XXoooooOOOO ",
|
||||
" .XXoooooOOOO ",
|
||||
" .XXooooOOOO ",
|
||||
" XXoooOOOO ",
|
||||
" XXoOOOO ",
|
||||
" OOOOO ",
|
||||
" .XXooO ",
|
||||
" .X.XXoo ",
|
||||
" .X.X.XXoo ",
|
||||
" .XX.XXXooO ",
|
||||
" XXXXXXooOO ",
|
||||
" XXXXooOOO ",
|
||||
" XoooOOOO ",
|
||||
" OOOOOO ",
|
||||
" OOOO "};
|
||||
|
||||
@@ -4,41 +4,42 @@
|
||||
/* XPM */
|
||||
char* MwIconWarning[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 4 1 ",
|
||||
"32 32 5 1 ",
|
||||
" c None",
|
||||
". c #FC0000",
|
||||
"X c gray",
|
||||
"o c black",
|
||||
". c red",
|
||||
"X c yellow",
|
||||
"o c DarkSlateGray",
|
||||
"O c black",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" ... ",
|
||||
" ..X.. ",
|
||||
" .XXX. ",
|
||||
" ..XXX.. ",
|
||||
" .XXXXX. ",
|
||||
" ..XXoXX.. ",
|
||||
" .XXoooXX. ",
|
||||
" ..XXoooXX.. ",
|
||||
" .XXXoooXXX. ",
|
||||
" ..XXXoooXXX.. ",
|
||||
" .XXXXoooXXXX. ",
|
||||
" ..XXXXoooXXXX.. ",
|
||||
" .XXXXXoooXXXXX. ",
|
||||
" ..XXXXXoooXXXXX.. ",
|
||||
" .XXXXXXoooXXXXXX. ",
|
||||
" ..XXXXXXoooXXXXXX.. ",
|
||||
" .XXXXXXXoooXXXXXXX. ",
|
||||
" ..XXXXXXXoooXXXXXXX.. ",
|
||||
" .XXXXXXXXXoXXXXXXXXX. ",
|
||||
" ..XXXXXXXXXXXXXXXXXXX.. ",
|
||||
" .XXXXXXXXXXoXXXXXXXXXX. ",
|
||||
" ..XXXXXXXXXoooXXXXXXXXX.. ",
|
||||
" .XXXXXXXXXoooooXXXXXXXXX. ",
|
||||
" ..XXXXXXXXXXoooXXXXXXXXXX.. ",
|
||||
" .XXXXXXXXXXXXoXXXXXXXXXXXX. ",
|
||||
" ..XXXXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||
" ............................. ",
|
||||
" ........................... ",
|
||||
" ... ",
|
||||
" ..... ",
|
||||
" ..X..oo ",
|
||||
" ..XXX..oo ",
|
||||
" ..XXX..oo ",
|
||||
" ..XXXXX..oo ",
|
||||
" ..XXXXX..oo ",
|
||||
" ..XXOOOXX..oo ",
|
||||
" ..XOOOOOX..oo ",
|
||||
" ..XXOOOOOXX..oo ",
|
||||
" ..XXOOOOOXX..oo ",
|
||||
" ..XXXOOOOOXXX..oo ",
|
||||
" ..XXXOOOOOXXX..oo ",
|
||||
" ..XXXXOOOOOXXXX..oo ",
|
||||
" ..XXXXOOOOOXXXX..oo ",
|
||||
" ..XXXXXOOOOOXXXXX..oo ",
|
||||
" ..XXXXXXOOOXXXXXX..oo ",
|
||||
" ..XXXXXXXOOOXXXXXXX..oo ",
|
||||
" ..XXXXXXXOOOXXXXXXX..oo ",
|
||||
" ..XXXXXXXXOOOXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXXXXXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXXOOOXXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXOOOOOXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXXOOOOOXXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXXXOOOXXXXXXXXXX..oo ",
|
||||
" ..XXXXXXXXXXXXXXXXXXXXXXXXX..oo",
|
||||
" .............................oo",
|
||||
" ...........................ooo",
|
||||
" ooooooooooooooooooooooooooo ",
|
||||
" "};
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
/* $Id$ */
|
||||
#include <Mw/Milsko.h>
|
||||
|
||||
void msgbox_ok_handler(MwWidget handle, void* user, void* call) {
|
||||
MwWidget win = user;
|
||||
|
||||
MwDestroyWidget(win);
|
||||
}
|
||||
|
||||
MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) {
|
||||
MwWidget window, ok;
|
||||
MwPoint p;
|
||||
int w, h;
|
||||
int left = 8;
|
||||
int th;
|
||||
|
||||
p.x = 0;
|
||||
p.y = 0;
|
||||
@@ -12,16 +20,18 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi
|
||||
window = MwVaCreateWidget(MwWindowClass, "messagebox", handle, 0, 0, (w = 512), (h = 32 * 4),
|
||||
MwNtitle, title,
|
||||
NULL);
|
||||
ok = MwVaCreateWidget(MwButtonClass, "ok", window, w - 8 - 64, h - 8 - 24, 64, 24,
|
||||
ok = MwVaCreateWidget(MwButtonClass, "ok", window, w - 8 - 80, h - 8 - 24, 80, 24,
|
||||
MwNtext, "OK",
|
||||
NULL);
|
||||
|
||||
MwAddUserHandler(ok, MwNactivateHandler, msgbox_ok_handler, window);
|
||||
|
||||
if((flag & MwMB_ICONMASK) != 0) {
|
||||
MwWidget icon;
|
||||
MwLLPixmap px;
|
||||
char** data = NULL;
|
||||
|
||||
icon = MwCreateWidget(MwImageClass, "image", window, 16, (h - 48) / 2, 48, 48);
|
||||
icon = MwCreateWidget(MwImageClass, "image", window, 8, (h - 48) / 2, 48, 48);
|
||||
|
||||
switch(flag & MwMB_ICONMASK) {
|
||||
case MwMB_ICONWARNING: {
|
||||
@@ -45,8 +55,16 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi
|
||||
px = MwLoadXPM(icon, data);
|
||||
|
||||
MwSetVoid(icon, MwNpixmap, px);
|
||||
|
||||
left = 8 + 48 + 8;
|
||||
}
|
||||
|
||||
th = MwTextHeight(handle, text);
|
||||
(void)MwVaCreateWidget(MwLabelClass, "label", window, left, (h - th) / 2, w - left - 8, th,
|
||||
MwNtext, text,
|
||||
MwNalignment, MwALIGNMENT_BEGINNING,
|
||||
NULL);
|
||||
|
||||
MwLLDetach(window->lowlevel, &p);
|
||||
MwLLSetSizeHints(window->lowlevel, w, h, w, h);
|
||||
MwLLMakePopup(window->lowlevel, handle->lowlevel);
|
||||
|
||||
@@ -14,7 +14,7 @@ echo '#ifdef __cplusplus' >> include/Mw/Icon.h
|
||||
echo 'extern "C" {' >> include/Mw/Icon.h
|
||||
echo '#endif' >> include/Mw/Icon.h
|
||||
echo '' >> include/Mw/Icon.h
|
||||
for i in doc/*.gif; do
|
||||
for i in resource/icon/*.png; do
|
||||
LOWER=`echo $i | rev | cut -d"/" -f1 | rev | cut -d"." -f1`
|
||||
if [ "$LOWER" = "unsure" ]; then
|
||||
LOWER=question
|
||||
|
||||
Reference in New Issue
Block a user