better font api

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@229 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-08 17:24:42 +00:00
parent 66196a56c7
commit d6c787f1a7
6 changed files with 16 additions and 10 deletions

View File

@@ -77,9 +77,10 @@ MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int in
* %param point Center point of the text
* %param text Text
* %param bold Bold
* %param align Align
* %param color Color
*/
MWDECL void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, MwLLColor color);
MWDECL void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color);
/*!
* %brief Creates a pixmap from image

View File

@@ -359,13 +359,19 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert,
MwLLFreeColor(darker);
}
void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, MwLLColor color) {
void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) {
int i, x, y, sx, sy;
MwRect r;
sx = point->x - strlen(text) * FontWidth * FontScale / 2;
sx = point->x;
sy = point->y - FontHeight * FontScale / 2;
if(align == MwALIGNMENT_CENTER) {
sx -= strlen(text) * FontWidth * FontScale / 2;
} else if(align == MwALIGNMENT_END) {
sx -= strlen(text) * FontWidth * FontScale;
}
for(i = 0; text[i] != 0; i++) {
for(y = 0; y < FontHeight; y++) {
for(x = 0; x < FontWidth; x++) {

View File

@@ -50,7 +50,7 @@ static void draw(MwWidget handle) {
point.x = r.x + r.width / 2;
point.y = r.x + r.height / 2;
MwDrawText(handle, &point, str, 0, text);
MwDrawText(handle, &point, str, 0, MwALIGNMENT_CENTER, text);
}
MwLLFreeColor(text);

View File

@@ -34,7 +34,7 @@ static void draw(MwWidget handle) {
p.x = r.width - MwTextWidth(handle, str) / 2;
}
p.y = r.height / 2;
MwDrawText(handle, &p, str, 0, text);
MwDrawText(handle, &p, str, 0, MwALIGNMENT_CENTER, text);
MwLLFreeColor(text);
MwLLFreeColor(base);

View File

@@ -83,10 +83,9 @@ static void destroy(MwWidget handle) {
if(incr) { \
p.x = MwGetInteger(handle, MwNwidth) - tw - 10; \
} \
p.x += tw / 2; \
\
r.x = p.x - tw / 2 - 5; \
r.y = p.y - th / 2 - 5; \
r.x = p.x - 5; \
r.y = p.y - 5; \
r.width = tw + 10; \
r.height = th + 10; \
\
@@ -112,7 +111,7 @@ static void draw(MwWidget handle) {
MwDrawFrame(handle, &r, base, 0);
}
MwDrawText(handle, &p, m->sub[i]->name + incr, 1, text);
MwDrawText(handle, &p, m->sub[i]->name + incr, 1, MwALIGNMENT_BEGINNING, text);
END_MENU_LOOP;
MwLLFreeColor(text);

View File

@@ -62,7 +62,7 @@ static void draw(MwWidget handle) {
p.x = 5 + tw / 2;
p.y += th / 2;
MwDrawText(handle, &p, menu->sub[i]->name, 1, text);
MwDrawText(handle, &p, menu->sub[i]->name, 1, MwALIGNMENT_CENTER, text);
if(arrlen(menu->sub[i]->sub) > 0) {
MwRect tr;