From 3ca9b489582103c8791cd1258f37a1c77563ba4d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 16 Oct 2025 04:58:12 +0000 Subject: [PATCH] new function git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@347 b9cfdab3-6d41-4d17-bbe4-086880011989 --- include/Mw/Draw.h | 9 +++++++++ src/draw.c | 17 ++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index ec1839a..31216f0 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -145,6 +145,15 @@ MWDECL MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int */ MWDECL MwLLPixmap MwLoadXPM(MwWidget handle, char** data); +/*! + * %brief Creates a pixmap from XPM data with background + * %param handle Widget + * %param data Data + * %param bgcolor RGBA data for background + * %return Pixmap + */ +MWDECL MwLLPixmap MwLoadXPMEx(MwWidget handle, char** data, unsigned char* bgcolor); + /* color.c */ /*! diff --git a/src/draw.c b/src/draw.c index 4e4617f..2755874 100644 --- a/src/draw.c +++ b/src/draw.c @@ -642,7 +642,7 @@ typedef struct color { int a; } color_t; -MwLLPixmap MwLoadXPM(MwWidget handle, char** data) { +MwLLPixmap MwLoadXPMEx(MwWidget handle, char** data, unsigned char* bgcolor) { int col, row, colors, cpp; unsigned char* rgb; MwLLPixmap px; @@ -665,10 +665,10 @@ MwLLPixmap MwLoadXPM(MwWidget handle, char** data) { shput(c, k, v); ind = shgeti(c, k); - c[ind].r = 0; - c[ind].g = 0; - c[ind].b = 0; - c[ind].a = 0; + c[ind].r = bgcolor[0]; + c[ind].g = bgcolor[1]; + c[ind].b = bgcolor[2]; + c[ind].a = bgcolor[3]; } else { MwLLColor color = MwParseColor(handle, v); @@ -714,3 +714,10 @@ MwLLPixmap MwLoadXPM(MwWidget handle, char** data) { return px; } + +MwLLPixmap MwLoadXPM(MwWidget handle, char** data){ + unsigned char rgba[4]; + memset(rgba, 0, 4); + + return MwLoadXPMEx(handle, data, rgba); +}