git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@20 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-09-28 09:55:42 +00:00
parent 9f96056a1a
commit 376cef244b
4 changed files with 36 additions and 12 deletions

View File

@@ -17,16 +17,22 @@ typedef void* MilskoLLColor;
#include <Milsko/MachDep.h>
#include <Milsko/TypeDefs.h>
MILSKODECL MilskoLL MilskoLLCreate(MilskoLL parent, int x, int y, int width, int height);
MILSKODECL void MilskoLLDestroy(MilskoLL handle);
MILSKODECL void MilskoLLPolygon(MilskoLL handle, MilskoPoint* points, int points_count, MilskoLLColor color);
MILSKODECL MilskoLL MilskoLLCreate(MilskoLL parent, int x, int y, int width, int height);
MILSKODECL void MilskoLLDestroy(MilskoLL handle);
MILSKODECL void MilskoLLPolygon(MilskoLL handle, MilskoPoint* points, int points_count, MilskoLLColor color);
MILSKODECL MilskoLLColor MilskoLLAllocColor(MilskoLL handle, int r, int g, int b);
MILSKODECL void MilskoLLGetXYWH(MilskoLL handle, int* x, int* y, unsigned int* w, unsigned int* h);
MILSKODECL void MilskoLLSetXY(MilskoLL handle, int x, int y);
MILSKODECL void MilskoLLSetWH(MilskoLL handle, int w, int h);
MILSKODECL void MilskoLLSetTitle(MilskoLL handle, const char* title);
MILSKODECL int MilskoLLPending(MilskoLL handle);
MILSKODECL void MilskoLLNextEvent(MilskoLL handle);
MILSKODECL void MilskoLLSleep(int ms);
MILSKODECL void MilskoLLFreeColor(MilskoLLColor color);
MILSKODECL void MilskoLLGetXYWH(MilskoLL handle, int* x, int* y, unsigned int* w, unsigned int* h);
MILSKODECL void MilskoLLSetXY(MilskoLL handle, int x, int y);
MILSKODECL void MilskoLLSetWH(MilskoLL handle, int w, int h);
MILSKODECL void MilskoLLSetTitle(MilskoLL handle, const char* title);
MILSKODECL int MilskoLLPending(MilskoLL handle);
MILSKODECL void MilskoLLNextEvent(MilskoLL handle);
MILSKODECL void MilskoLLSleep(int ms);
#endif

View File

@@ -7,7 +7,7 @@
if(x->class != NULL && x->class->y != NULL) x->class->y(x)
static void llhandler(MilskoLL handle) {
MilskoWidget h = (MilskoWidget)handle;
MilskoWidget h = (MilskoWidget)handle->user;
Dispatch(h, draw);
}
@@ -86,7 +86,7 @@ int MilskoPending(MilskoWidget handle) {
void MilskoLoop(MilskoWidget handle) {
while(1) {
MilskoStep(handle);
MilskoLLSleep(10);
MilskoLLSleep(5);
}
}

View File

@@ -2,6 +2,21 @@
#include <Milsko/Milsko.h>
static void draw(MilskoWidget handle) {
MilskoLLColor c = MilskoLLAllocColor(handle->lowlevel, 255, 0, 0);
MilskoPoint p[4];
p[0].x = 0;
p[0].y = 0;
p[1].x = MilskoGetInteger(handle, MilskoNwidth);
p[1].y = 0;
p[2].x = MilskoGetInteger(handle, MilskoNwidth);
p[2].y = MilskoGetInteger(handle, MilskoNheight);
p[3].x = 0;
p[3].y = MilskoGetInteger(handle, MilskoNheight);
MilskoLLPolygon(handle->lowlevel, p, 4, c);
MilskoLLFreeColor(c);
}
MilskoClassRec MilskoWindowClassRec = {

View File

@@ -102,6 +102,9 @@ int MilskoLLPending(MilskoLL handle) {
void MilskoLLNextEvent(MilskoLL handle) {
XEvent ev;
if(XCheckWindowEvent(handle->display, handle->window, mask, &ev)) {
if(ev.type == Expose) {
if(handle->draw != NULL) handle->draw(handle);
}
}
}