From a5cd1974e45ee06feb796aff0aa27fa402b649f0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:05:36 +0900 Subject: [PATCH] add MwNouterPadding --- include/Mw/StringDefs.h | 1 + milsko.xml | 2 ++ src/widget/box.c | 23 ++++++++++++----------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index a4e999d..8ed73f6 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -34,6 +34,7 @@ #define MwNfillArea "IfillArea" #define MwNratio "Iratio" #define MwNfixedSize "IfixedSize" +#define MwNouterPadding "IouterPadding" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 83ef0e3..28a8134 100644 --- a/milsko.xml +++ b/milsko.xml @@ -86,6 +86,7 @@ + @@ -491,6 +492,7 @@ + diff --git a/src/widget/box.c b/src/widget/box.c index 777c32e..0789a1b 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -7,6 +7,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNorientation, MwHORIZONTAL); MwSetInteger(handle, MwNpadding, 0); + MwSetInteger(handle, MwNouterPadding, 0); return 0; } @@ -28,9 +29,9 @@ static void layout(MwWidget handle) { int i; int sum = 0; int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0; - int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding); - int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; - int sk = 0; + int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNouterPadding) * 2; + int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNouterPadding) * 2; + int sk = MwGetInteger(handle, MwNouterPadding); for(i = 0; i < arrlen(handle->children); i++) { int n = MwGetInteger(handle->children[i], MwNratio); @@ -38,7 +39,7 @@ static void layout(MwWidget handle) { if(n == MwDEFAULT) n = 1; if(s != MwDEFAULT) { - sz -= s + MwGetInteger(handle, MwNpadding); + sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); } else { sum += n; } @@ -53,17 +54,17 @@ static void layout(MwWidget handle) { if(s != MwDEFAULT) { wsz = s; } else { - wsz = sz * n / sum - MwGetInteger(handle, MwNpadding); + wsz = sz * n / sum; } + wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); - sk += MwGetInteger(handle, MwNpadding); MwVaApply(handle->children[i], - horiz ? MwNx : MwNy, sk, /* this is what gets changed */ - horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */ - horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ - horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ + horiz ? MwNx : MwNy, sk, /* this is what gets changed */ + horiz ? MwNy : MwNx, MwGetInteger(handle, MwNouterPadding), /* fixed between widgets */ + horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ + horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); - sk += wsz; + sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); } }