More lua stuff, yay.
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "uielement.h"
|
||||
#include "display/screen.h"
|
||||
#include "debug/debug.h"
|
||||
|
||||
errorret_t uiElementInitScript(
|
||||
uielement_t *element,
|
||||
@@ -18,40 +19,52 @@ errorret_t uiElementInitScript(
|
||||
}
|
||||
|
||||
errorret_t uiElementUpdate(uielement_t *element) {
|
||||
if(!scriptContextHasFunc(&element->ctx, "update")) errorOk();
|
||||
|
||||
errorChain(scriptContextCallFunc(
|
||||
&element->ctx,
|
||||
"update",
|
||||
NULL,
|
||||
0,
|
||||
NULL
|
||||
));
|
||||
lua_getglobal(element->ctx.luaState, "uiElementUpdate");
|
||||
if(lua_isfunction(element->ctx.luaState, -1)) {
|
||||
if(lua_pcall(element->ctx.luaState, 0, 0, 0) != LUA_OK) {
|
||||
const char_t *strErr = lua_tostring(element->ctx.luaState, -1);
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
errorThrow("Failed to call UI element uiElementUpdate: %s", strErr);
|
||||
}
|
||||
} else {
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
}
|
||||
|
||||
errorOk();
|
||||
}
|
||||
|
||||
errorret_t uiElementRender(uielement_t *element) {
|
||||
if(!scriptContextHasFunc(&element->ctx, "render")) errorOk();
|
||||
lua_getglobal(element->ctx.luaState, "uiElementRender");
|
||||
if(lua_isfunction(element->ctx.luaState, -1)) {
|
||||
|
||||
// scriptvalue_t args[4] = {
|
||||
// { .type = SCRIPT_VALUE_TYPE_FLOAT, .value.floatValue = 0.0f },
|
||||
// { .type = SCRIPT_VALUE_TYPE_FLOAT, .value.floatValue = 0.0f },
|
||||
// { .type = SCRIPT_VALUE_TYPE_FLOAT, .value.floatValue = SCREEN.width },
|
||||
// { .type = SCRIPT_VALUE_TYPE_FLOAT, .value.floatValue = SCREEN.height },
|
||||
// };
|
||||
|
||||
// errorChain(scriptContextCallFunc(
|
||||
// &element->ctx,
|
||||
// "render",
|
||||
// args,
|
||||
// 4,
|
||||
// NULL
|
||||
// ));
|
||||
// Push parameters: x, y, w, h
|
||||
lua_pushnumber(element->ctx.luaState, 0);
|
||||
lua_pushnumber(element->ctx.luaState, 0);
|
||||
lua_pushnumber(element->ctx.luaState, SCREEN.width);
|
||||
lua_pushnumber(element->ctx.luaState, SCREEN.height);
|
||||
|
||||
if(lua_pcall(element->ctx.luaState, 4, 0, 0) != LUA_OK) {
|
||||
const char_t *strErr = lua_tostring(element->ctx.luaState, -1);
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
errorThrow("Failed to call UI element uiElementRender: %s", strErr);
|
||||
}
|
||||
} else {
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
}
|
||||
|
||||
errorOk();
|
||||
}
|
||||
|
||||
void uiElementDispose(uielement_t *element) {
|
||||
lua_getglobal(element->ctx.luaState, "uiElementDispose");
|
||||
if(lua_isfunction(element->ctx.luaState, -1)) {
|
||||
if(lua_pcall(element->ctx.luaState, 0, 0, 0) != LUA_OK) {
|
||||
const char_t *strErr = lua_tostring(element->ctx.luaState, -1);
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
debugPrint("Failed to call UI element uiElementDispose: %s\n", strErr);
|
||||
}
|
||||
} else {
|
||||
lua_pop(element->ctx.luaState, 1);
|
||||
}
|
||||
scriptContextDispose(&element->ctx);
|
||||
}
|
||||
Reference in New Issue
Block a user