From bdc67d6369700547ec8cd43996dd5c619f0e445c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 23:02:02 +0900 Subject: [PATCH] text shadow --- include/Mw/Default.h | 5 +++++ src/default.c | 2 ++ src/widget/label.c | 9 ++++++++- tools/gendcl.pl | 3 +-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/Mw/Default.h b/include/Mw/Default.h index 93f919a..3d197d0 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -52,6 +52,11 @@ MWDECL const char* MwDefaultDarkSubBackground; */ MWDECL const char* MwDefaultDarkSubForeground; +/*! + * @brief Default shadow difference + */ +MWDECL const int MwDefaultShadow; + /*! * @brief Gets default border width * @param handle Widget diff --git a/src/default.c b/src/default.c index 4a7d52c..36537a1 100644 --- a/src/default.c +++ b/src/default.c @@ -10,6 +10,8 @@ const char* MwDefaultDarkForeground = "#ddd"; const char* MwDefaultDarkSubBackground = "#333"; const char* MwDefaultDarkSubForeground = "#ddd"; +const int MwDefaultShadow = -32; + int MwDefaultBorderWidth(MwWidget handle) { int bw = MwGetInteger(handle, MwNborderWidth); diff --git a/src/widget/label.c b/src/widget/label.c index a137ca0..86aefe8 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -126,7 +126,7 @@ static void draw(MwWidget handle) { MwPoint p; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); - MwLLColor shadow = MwLightenColor(handle, base, -32, -32, -32); + MwLLColor shadow = MwLightenColor(handle, base, MwDefaultShadow, MwDefaultShadow, MwDefaultShadow); int align; const char* str = MwGetText(handle, MwNtext); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); @@ -317,6 +317,13 @@ static void draw(MwWidget handle) { p.x = r.width - MwTextWidth(handle, str) / 2; } p.y = r.height / 2; + + p.x += 1; + p.y += 1; + MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, shadow); + + p.x -= 1; + p.y -= 1; MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, text); } diff --git a/tools/gendcl.pl b/tools/gendcl.pl index be81d9c..f2e3399 100755 --- a/tools/gendcl.pl +++ b/tools/gendcl.pl @@ -91,8 +91,7 @@ for (my $i = 0 ; $i < 2 ; $i++) { foreach my $obj (@objs) { print(OUT "\$ WRITE LINK_OPT \"$obj\"\n"); } - print(OUT - "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE\"\n"); + print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE\"\n"); print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DPML\$SHR/SHARE\"\n"); print(OUT "\$ CLOSE LINK_OPT\n"); print(OUT "\$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options\n");