mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2025-12-31 06:30:52 +00:00
va
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@34 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
@@ -7,14 +7,10 @@ void handler(MilskoWidget handle){
|
||||
}
|
||||
|
||||
int main(){
|
||||
MilskoWidget window = MilskoCreateWidget(MilskoWindowClass, "main", NULL, 0, 0, 400, 400);
|
||||
MilskoWidget button = MilskoCreateWidget(MilskoButtonClass, "button", window, 50, 50, 300, 300);
|
||||
|
||||
MilskoApply(window,
|
||||
MilskoWidget window = MilskoVaCreateWidget(MilskoWindowClass, "main", NULL, 0, 0, 400, 400,
|
||||
MilskoNtitle, "hello world",
|
||||
NULL);
|
||||
|
||||
MilskoApply(button,
|
||||
MilskoWidget button = MilskoVaCreateWidget(MilskoButtonClass, "button", window, 50, 50, 300, 300,
|
||||
MilskoNactivateHandler, handler,
|
||||
NULL);
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
if(x->class != NULL && x->class->y != NULL) x->class->y(x)
|
||||
|
||||
MILSKODECL MilskoWidget MilskoCreateWidget(MilskoClass class, const char* name, MilskoWidget parent, int x, int y, unsigned int width, unsigned int height);
|
||||
MILSKODECL MilskoWidget MilskoVaCreateWidget(MilskoClass class, const char* name, MilskoWidget parent, int x, int y, unsigned int width, unsigned int height, ...);
|
||||
MILSKODECL MilskoWidget MilskoVaListCreateWidget(MilskoClass class, const char* name, MilskoWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va);
|
||||
MILSKODECL void MilskoDestroyWidget(MilskoWidget handle);
|
||||
|
||||
MILSKODECL void MilskoLoop(MilskoWidget handle);
|
||||
@@ -23,6 +25,7 @@ MILSKODECL const char* MilskoGetText(MilskoWidget handle, const char* key);
|
||||
MILSKODECL MilskoHandler MilskoGetHandler(MilskoWidget handle, const char* key);
|
||||
MILSKODECL void MilskoDispatchHandler(MilskoWidget handle, const char* key);
|
||||
MILSKODECL void MilskoSetDefault(MilskoWidget handle);
|
||||
MILSKODECL void MilskoApply(MilskoWidget handle, ...);
|
||||
MILSKODECL void MilskoVaApply(MilskoWidget handle, ...);
|
||||
MILSKODECL void MilskoVaListApply(MilskoWidget handle, va_list va);
|
||||
|
||||
#endif
|
||||
|
||||
31
src/core.c
31
src/core.c
@@ -51,6 +51,26 @@ MilskoWidget MilskoCreateWidget(MilskoClass class, const char* name, MilskoWidge
|
||||
return h;
|
||||
}
|
||||
|
||||
MilskoWidget MilskoVaCreateWidget(MilskoClass class, const char* name, MilskoWidget parent, int x, int y, unsigned int width, unsigned int height, ...) {
|
||||
MilskoWidget h;
|
||||
va_list va;
|
||||
|
||||
va_start(va, height);
|
||||
h = MilskoVaListCreateWidget(class, name, parent, x, y, width, height, va);
|
||||
va_end(va);
|
||||
|
||||
return h;
|
||||
}
|
||||
|
||||
MilskoWidget MilskoVaListCreateWidget(MilskoClass class, const char* name, MilskoWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va) {
|
||||
MilskoWidget h;
|
||||
|
||||
h = MilskoCreateWidget(class, name, parent, x, y, width, height);
|
||||
MilskoVaListApply(h, va);
|
||||
|
||||
return h;
|
||||
}
|
||||
|
||||
void MilskoDestroyWidget(MilskoWidget handle) {
|
||||
int i;
|
||||
|
||||
@@ -171,11 +191,17 @@ MilskoHandler MilskoGetHandler(MilskoWidget handle, const char* key) {
|
||||
return shget(handle->handler, key);
|
||||
}
|
||||
|
||||
void MilskoApply(MilskoWidget handle, ...) {
|
||||
void MilskoVaApply(MilskoWidget handle, ...) {
|
||||
va_list va;
|
||||
char* key;
|
||||
|
||||
va_start(va, handle);
|
||||
MilskoVaListApply(handle, va);
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
void MilskoVaListApply(MilskoWidget handle, va_list va) {
|
||||
char* key;
|
||||
|
||||
while((key = va_arg(va, char*)) != NULL) {
|
||||
if(key[0] == 'I') {
|
||||
int n = va_arg(va, int);
|
||||
@@ -188,7 +214,6 @@ void MilskoApply(MilskoWidget handle, ...) {
|
||||
MilskoSetHandler(handle, key, h);
|
||||
}
|
||||
}
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
void MilskoSetDefault(MilskoWidget handle) {
|
||||
|
||||
Reference in New Issue
Block a user