git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@26 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-09-28 13:46:18 +00:00
parent 5a318e6160
commit c684c75526
10 changed files with 112 additions and 61 deletions

61
src/draw.c Normal file
View File

@@ -0,0 +1,61 @@
/* $Id$ */
#include <Milsko/Milsko.h>
static int hex(const char* txt, int len) {
int i;
int r = 0;
for(i = 0; i < len; i++) {
char c = txt[i];
int n = 0;
if('a' <= c && c <= 'f') {
n = c - 'a' + 10;
} else if('A' <= c && c <= 'F') {
n = c - 'A' + 10;
} else if('0' <= c && c <= '9') {
n = c - '0';
}
r = r << 4;
r |= n;
}
return r;
}
MilskoLLColor MilskoParseColor(MilskoWidget handle, const char* text) {
int r = 0;
int g = 0;
int b = 0;
if(text[0] == '#' && strlen(text) == 4) {
r = hex(text + 1, 1);
g = hex(text + 2, 1);
b = hex(text + 3, 1);
r |= r << 4;
g |= g << 4;
b |= b << 4;
} else if(text[0] == '#' && strlen(text) == 7) {
r = hex(text + 1, 2);
g = hex(text + 3, 2);
b = hex(text + 5, 2);
}
return MilskoLLAllocColor(handle->lowlevel, r, g, b);
}
void MilskoDrawRect(MilskoWidget handle, MilskoRect* rect, MilskoLLColor color) {
MilskoPoint p[4];
p[0].x = rect->x;
p[0].y = rect->y;
p[1].x = rect->x + rect->width;
p[1].y = rect->y;
p[2].x = rect->x + rect->width;
p[2].y = rect->y + rect->height;
p[3].x = rect->x;
p[3].y = rect->y + rect->height;
MilskoLLPolygon(handle->lowlevel, p, 4, color);
}