mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-30 11:08:34 +08:00
2861 lines
82 KiB
C
2861 lines
82 KiB
C
/*XXX: generated by lua_gen. dont edit it.*/
|
|
#include "lua/lua.h"
|
|
#include "lua/lualib.h"
|
|
#include "lua/lauxlib.h"
|
|
#include "base/utf8.h"
|
|
#include "base/array.h"
|
|
#include "base/bitmap.h"
|
|
#include "base/buffer.h"
|
|
#include "base/button.h"
|
|
#include "base/canvas.h"
|
|
#include "base/check_button.h"
|
|
#include "base/dialog.h"
|
|
#include "base/edit.h"
|
|
#include "base/events.h"
|
|
#include "base/font_manager.h"
|
|
#include "base/group_box.h"
|
|
#include "base/idle.h"
|
|
#include "base/image_loader.h"
|
|
#include "base/image_manager.h"
|
|
#include "base/image.h"
|
|
#include "base/label.h"
|
|
#include "base/lcd.h"
|
|
#include "base/locale.h"
|
|
#include "base/progress_bar.h"
|
|
#include "base/rect.h"
|
|
#include "base/resource_manager.h"
|
|
#include "base/slider.h"
|
|
#include "base/str.h"
|
|
#include "base/system_info.h"
|
|
#include "base/theme.h"
|
|
#include "base/timer.h"
|
|
#include "base/types_def.h"
|
|
#include "base/value.h"
|
|
#include "base/vgcanvas.h"
|
|
#include "base/view.h"
|
|
#include "base/widget_animator.h"
|
|
#include "base/widget.h"
|
|
#include "base/window_animator.h"
|
|
#include "base/window_manager.h"
|
|
#include "base/window.h"
|
|
#include "base/wstr.h"
|
|
#include "src/tk.h"
|
|
#include "widget_animators/widget_animator_move.h"
|
|
#include "widget_animators/widget_animator_value.h"
|
|
|
|
#include "custom.c"
|
|
|
|
static int wrap_button_t_get_prop(lua_State* L);
|
|
static int wrap_button_t_set_prop(lua_State* L);
|
|
static int wrap_canvas_t_get_prop(lua_State* L);
|
|
static int wrap_canvas_t_set_prop(lua_State* L);
|
|
static int wrap_check_button_t_get_prop(lua_State* L);
|
|
static int wrap_check_button_t_set_prop(lua_State* L);
|
|
static int wrap_dialog_t_get_prop(lua_State* L);
|
|
static int wrap_dialog_t_set_prop(lua_State* L);
|
|
static int wrap_edit_t_get_prop(lua_State* L);
|
|
static int wrap_edit_t_set_prop(lua_State* L);
|
|
static int wrap_event_t_get_prop(lua_State* L);
|
|
static int wrap_event_t_set_prop(lua_State* L);
|
|
static int wrap_pointer_event_t_get_prop(lua_State* L);
|
|
static int wrap_pointer_event_t_set_prop(lua_State* L);
|
|
static int wrap_key_event_t_get_prop(lua_State* L);
|
|
static int wrap_key_event_t_set_prop(lua_State* L);
|
|
static int wrap_paint_event_t_get_prop(lua_State* L);
|
|
static int wrap_paint_event_t_set_prop(lua_State* L);
|
|
static int wrap_group_box_t_get_prop(lua_State* L);
|
|
static int wrap_group_box_t_set_prop(lua_State* L);
|
|
static int wrap_image_t_get_prop(lua_State* L);
|
|
static int wrap_image_t_set_prop(lua_State* L);
|
|
static int wrap_label_t_get_prop(lua_State* L);
|
|
static int wrap_label_t_set_prop(lua_State* L);
|
|
static int wrap_progress_bar_t_get_prop(lua_State* L);
|
|
static int wrap_progress_bar_t_set_prop(lua_State* L);
|
|
static int wrap_point_t_get_prop(lua_State* L);
|
|
static int wrap_point_t_set_prop(lua_State* L);
|
|
static int wrap_rect_t_get_prop(lua_State* L);
|
|
static int wrap_rect_t_set_prop(lua_State* L);
|
|
static int wrap_slider_t_get_prop(lua_State* L);
|
|
static int wrap_slider_t_set_prop(lua_State* L);
|
|
static int wrap_value_t_get_prop(lua_State* L);
|
|
static int wrap_value_t_set_prop(lua_State* L);
|
|
static int wrap_view_t_get_prop(lua_State* L);
|
|
static int wrap_view_t_set_prop(lua_State* L);
|
|
static int wrap_widget_t_get_prop(lua_State* L);
|
|
static int wrap_widget_t_set_prop(lua_State* L);
|
|
static int wrap_window_t_get_prop(lua_State* L);
|
|
static int wrap_window_t_set_prop(lua_State* L);
|
|
|
|
static int wrap_tk_quit(lua_State* L) {
|
|
ret_t ret = 0;
|
|
ret = (ret_t)tk_quit();
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static void globals_init(lua_State* L) {
|
|
lua_pushcfunction(L, wrap_tk_quit);
|
|
lua_setglobal(L, "tk_quit");
|
|
lua_pushcfunction(L, to_str);
|
|
lua_setglobal(L, "to_str");
|
|
lua_pushcfunction(L, to_wstr);
|
|
lua_setglobal(L, "to_wstr");
|
|
}
|
|
|
|
static int wrap_button_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)button_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/button_t/widget_t", "awtk.button_t");
|
|
}
|
|
|
|
static const struct luaL_Reg button_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_button_t_set_prop(lua_State* L) {
|
|
button_t* obj = (button_t*)tk_checkudata(L, 1, "button_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_button_t_get_prop(lua_State* L) {
|
|
button_t* obj = (button_t*)tk_checkudata(L, 1, "button_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(button_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void button_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_button_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_button_t_get_prop}, {"__newindex", wrap_button_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.button_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Button", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
|
|
static const struct luaL_Reg canvas_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_canvas_t_set_prop(lua_State* L) {
|
|
canvas_t* obj = (canvas_t*)tk_checkudata(L, 1, "canvas_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_canvas_t_get_prop(lua_State* L) {
|
|
canvas_t* obj = (canvas_t*)tk_checkudata(L, 1, "canvas_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(canvas_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void canvas_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_canvas_t_get_prop}, {"__newindex", wrap_canvas_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.canvas_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Canvas", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_check_button_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)check_button_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/check_button_t/widget_t", "awtk.check_button_t");
|
|
}
|
|
|
|
static int wrap_check_button_create_radio(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)check_button_create_radio(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/check_button_t/widget_t", "awtk.check_button_t");
|
|
}
|
|
|
|
static int wrap_check_button_set_value(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint32_t value = (uint32_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)check_button_set_value(widget, value);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg check_button_t_member_funcs[] = {
|
|
{"set_value", wrap_check_button_set_value}, {NULL, NULL}};
|
|
|
|
static int wrap_check_button_t_set_prop(lua_State* L) {
|
|
check_button_t* obj = (check_button_t*)tk_checkudata(L, 1, "check_button_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "value") == 0) {
|
|
printf("value is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_widget_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_check_button_t_get_prop(lua_State* L) {
|
|
check_button_t* obj = (check_button_t*)tk_checkudata(L, 1, "check_button_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(check_button_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "value") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->value));
|
|
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void check_button_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_check_button_create},
|
|
{"create_radio", wrap_check_button_create_radio},
|
|
{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_check_button_t_get_prop},
|
|
{"__newindex", wrap_check_button_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.check_button_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "CheckButton", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_dialog_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)dialog_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/dialog_t/widget_t", "awtk.dialog_t");
|
|
}
|
|
|
|
static int wrap_dialog_open(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
char* name = (char*)luaL_checkstring(L, 1);
|
|
ret = (widget_t*)dialog_open(name);
|
|
|
|
return tk_newuserdata(L, ret, "/dialog_t/widget_t", "awtk.dialog_t");
|
|
}
|
|
|
|
static int wrap_dialog_set_title(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
wchar_t* title = (wchar_t*)lua_touserdata(L, 2);
|
|
ret = (ret_t)dialog_set_title(widget, title);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_dialog_modal(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (ret_t)dialog_modal(widget);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_dialog_quit(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint32_t code = (uint32_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)dialog_quit(widget, code);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg dialog_t_member_funcs[] = {{"set_title", wrap_dialog_set_title},
|
|
{"modal", wrap_dialog_modal},
|
|
{"quit", wrap_dialog_quit},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_dialog_t_set_prop(lua_State* L) {
|
|
dialog_t* obj = (dialog_t*)tk_checkudata(L, 1, "dialog_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_dialog_t_get_prop(lua_State* L) {
|
|
dialog_t* obj = (dialog_t*)tk_checkudata(L, 1, "dialog_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(dialog_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void dialog_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {
|
|
{"create", wrap_dialog_create}, {"open", wrap_dialog_open}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_dialog_t_get_prop}, {"__newindex", wrap_dialog_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.dialog_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Dialog", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static void input_type_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "InputType");
|
|
lua_getglobal(L, "InputType");
|
|
|
|
lua_pushstring(L, "TEXT");
|
|
lua_pushinteger(L, INPUT_TEXT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "INT");
|
|
lua_pushinteger(L, INPUT_INT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "HEX");
|
|
lua_pushinteger(L, INPUT_HEX);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "FLOAT");
|
|
lua_pushinteger(L, INPUT_FLOAT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "EMAIL");
|
|
lua_pushinteger(L, INPUT_EMAIL);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "PASSWORD");
|
|
lua_pushinteger(L, INPUT_PASSWORD);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "PHONE");
|
|
lua_pushinteger(L, INPUT_PHONE);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static int wrap_edit_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)edit_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/edit_t/widget_t", "awtk.edit_t");
|
|
}
|
|
|
|
static int wrap_edit_set_text_limit(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint32_t min = (uint32_t)luaL_checkinteger(L, 2);
|
|
uint32_t max = (uint32_t)luaL_checkinteger(L, 3);
|
|
ret = (ret_t)edit_set_text_limit(widget, min, max);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_edit_set_int_limit(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
int32_t min = (int32_t)luaL_checkinteger(L, 2);
|
|
int32_t max = (int32_t)luaL_checkinteger(L, 3);
|
|
ret = (ret_t)edit_set_int_limit(widget, min, max);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_edit_set_float_limit(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
float min = (float)luaL_checknumber(L, 2);
|
|
float max = (float)luaL_checknumber(L, 3);
|
|
float step = (float)luaL_checknumber(L, 4);
|
|
ret = (ret_t)edit_set_float_limit(widget, min, max, step);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_edit_set_readonly(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t readonly = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)edit_set_readonly(widget, readonly);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_edit_set_input_type(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
input_type_t type = (input_type_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)edit_set_input_type(widget, type);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_edit_set_input_tips(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
wchar_t* tips = (wchar_t*)lua_touserdata(L, 2);
|
|
ret = (ret_t)edit_set_input_tips(widget, tips);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg edit_t_member_funcs[] = {
|
|
{"set_text_limit", wrap_edit_set_text_limit},
|
|
{"set_int_limit", wrap_edit_set_int_limit},
|
|
{"set_float_limit", wrap_edit_set_float_limit},
|
|
{"set_readonly", wrap_edit_set_readonly},
|
|
{"set_input_type", wrap_edit_set_input_type},
|
|
{"set_input_tips", wrap_edit_set_input_tips},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_edit_t_set_prop(lua_State* L) {
|
|
edit_t* obj = (edit_t*)tk_checkudata(L, 1, "edit_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_edit_t_get_prop(lua_State* L) {
|
|
edit_t* obj = (edit_t*)tk_checkudata(L, 1, "edit_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(edit_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void edit_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_edit_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_edit_t_get_prop}, {"__newindex", wrap_edit_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.edit_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Edit", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static void event_type_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "EventType");
|
|
lua_getglobal(L, "EventType");
|
|
|
|
lua_pushstring(L, "NONE");
|
|
lua_pushinteger(L, EVT_NONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER_DOWN");
|
|
lua_pushinteger(L, EVT_POINTER_DOWN);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER_MOVE");
|
|
lua_pushinteger(L, EVT_POINTER_MOVE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER_UP");
|
|
lua_pushinteger(L, EVT_POINTER_UP);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER_ENTER");
|
|
lua_pushinteger(L, EVT_POINTER_ENTER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER_LEAVE");
|
|
lua_pushinteger(L, EVT_POINTER_LEAVE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "CLICK");
|
|
lua_pushinteger(L, EVT_CLICK);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "FOCUS");
|
|
lua_pushinteger(L, EVT_FOCUS);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "BLUR");
|
|
lua_pushinteger(L, EVT_BLUR);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "KEY_DOWN");
|
|
lua_pushinteger(L, EVT_KEY_DOWN);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "KEY_UP");
|
|
lua_pushinteger(L, EVT_KEY_UP);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "MOVE");
|
|
lua_pushinteger(L, EVT_MOVE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "RESIZE");
|
|
lua_pushinteger(L, EVT_RESIZE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "DESTROY");
|
|
lua_pushinteger(L, EVT_DESTROY);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "MOVE_RESIZE");
|
|
lua_pushinteger(L, EVT_MOVE_RESIZE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "PROP_CHANGED");
|
|
lua_pushinteger(L, EVT_PROP_CHANGED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "VALUE_CHANGED");
|
|
lua_pushinteger(L, EVT_VALUE_CHANGED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "VALUE_CHANGING");
|
|
lua_pushinteger(L, EVT_VALUE_CHANGING);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "PAINT");
|
|
lua_pushinteger(L, EVT_PAINT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "BEFORE_PAINT");
|
|
lua_pushinteger(L, EVT_BEFORE_PAINT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "AFTER_PAINT");
|
|
lua_pushinteger(L, EVT_AFTER_PAINT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "LOCALE_CHANGED");
|
|
lua_pushinteger(L, EVT_LOCALE_CHANGED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "ANIM_START");
|
|
lua_pushinteger(L, EVT_ANIM_START);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "ANIM_STOP");
|
|
lua_pushinteger(L, EVT_ANIM_STOP);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "ANIM_ONCE");
|
|
lua_pushinteger(L, EVT_ANIM_ONCE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "ANIM_END");
|
|
lua_pushinteger(L, EVT_ANIM_END);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static const struct luaL_Reg event_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_event_t_set_prop(lua_State* L) {
|
|
event_t* obj = (event_t*)tk_checkudata(L, 1, "event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "type") == 0) {
|
|
printf("type is readonly\n");
|
|
return 0;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int wrap_event_t_get_prop(lua_State* L) {
|
|
event_t* obj = (event_t*)tk_checkudata(L, 1, "event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(event_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "type") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->type));
|
|
|
|
return 1;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void event_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_event_t_get_prop}, {"__newindex", wrap_event_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.event_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Event", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_pointer_event_cast(lua_State* L) {
|
|
pointer_event_t* ret = NULL;
|
|
event_t* event = (event_t*)tk_checkudata(L, 1, "event_t");
|
|
ret = (pointer_event_t*)pointer_event_cast(event);
|
|
|
|
return tk_newuserdata(L, ret, "/pointer_event_t/event_t", "awtk.pointer_event_t");
|
|
}
|
|
|
|
static const struct luaL_Reg pointer_event_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_pointer_event_t_set_prop(lua_State* L) {
|
|
pointer_event_t* obj = (pointer_event_t*)tk_checkudata(L, 1, "pointer_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "x") == 0) {
|
|
printf("x is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
printf("y is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "button") == 0) {
|
|
printf("button is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "pressed") == 0) {
|
|
printf("pressed is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "alt") == 0) {
|
|
printf("alt is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "ctrl") == 0) {
|
|
printf("ctrl is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "shift") == 0) {
|
|
printf("shift is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_event_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_pointer_event_t_get_prop(lua_State* L) {
|
|
pointer_event_t* obj = (pointer_event_t*)tk_checkudata(L, 1, "pointer_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(pointer_event_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "x") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->x));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->y));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "button") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->button));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "pressed") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->pressed));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "alt") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->alt));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "ctrl") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->ctrl));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "shift") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->shift));
|
|
|
|
return 1;
|
|
} else {
|
|
return wrap_event_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void pointer_event_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"cast", wrap_pointer_event_cast}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_pointer_event_t_get_prop},
|
|
{"__newindex", wrap_pointer_event_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.pointer_event_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "PointerEvent", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_key_event_cast(lua_State* L) {
|
|
key_event_t* ret = NULL;
|
|
event_t* event = (event_t*)tk_checkudata(L, 1, "event_t");
|
|
ret = (key_event_t*)key_event_cast(event);
|
|
|
|
return tk_newuserdata(L, ret, "/key_event_t/event_t", "awtk.key_event_t");
|
|
}
|
|
|
|
static const struct luaL_Reg key_event_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_key_event_t_set_prop(lua_State* L) {
|
|
key_event_t* obj = (key_event_t*)tk_checkudata(L, 1, "key_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "key") == 0) {
|
|
printf("key is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "alt") == 0) {
|
|
printf("alt is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "ctrl") == 0) {
|
|
printf("ctrl is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "shift") == 0) {
|
|
printf("shift is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "caplock") == 0) {
|
|
printf("caplock is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_event_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_key_event_t_get_prop(lua_State* L) {
|
|
key_event_t* obj = (key_event_t*)tk_checkudata(L, 1, "key_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(key_event_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "key") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->key));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "alt") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->alt));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "ctrl") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->ctrl));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "shift") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->shift));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "caplock") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->caplock));
|
|
|
|
return 1;
|
|
} else {
|
|
return wrap_event_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void key_event_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"cast", wrap_key_event_cast}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_key_event_t_get_prop},
|
|
{"__newindex", wrap_key_event_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.key_event_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "KeyEvent", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_paint_event_cast(lua_State* L) {
|
|
paint_event_t* ret = NULL;
|
|
event_t* event = (event_t*)tk_checkudata(L, 1, "event_t");
|
|
ret = (paint_event_t*)paint_event_cast(event);
|
|
|
|
return tk_newuserdata(L, ret, "/paint_event_t/event_t", "awtk.paint_event_t");
|
|
}
|
|
|
|
static const struct luaL_Reg paint_event_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_paint_event_t_set_prop(lua_State* L) {
|
|
paint_event_t* obj = (paint_event_t*)tk_checkudata(L, 1, "paint_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "c") == 0) {
|
|
printf("c is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_event_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_paint_event_t_get_prop(lua_State* L) {
|
|
paint_event_t* obj = (paint_event_t*)tk_checkudata(L, 1, "paint_event_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(paint_event_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "c") == 0) {
|
|
return tk_newuserdata(L, obj->c, "/canvas_t", "awtk.canvas_t");
|
|
} else {
|
|
return wrap_event_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void paint_event_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"cast", wrap_paint_event_cast}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_paint_event_t_get_prop},
|
|
{"__newindex", wrap_paint_event_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.paint_event_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "PaintEvent", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_group_box_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)group_box_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/group_box_t/widget_t", "awtk.group_box_t");
|
|
}
|
|
|
|
static const struct luaL_Reg group_box_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_group_box_t_set_prop(lua_State* L) {
|
|
group_box_t* obj = (group_box_t*)tk_checkudata(L, 1, "group_box_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_group_box_t_get_prop(lua_State* L) {
|
|
group_box_t* obj = (group_box_t*)tk_checkudata(L, 1, "group_box_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(group_box_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void group_box_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_group_box_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_group_box_t_get_prop},
|
|
{"__newindex", wrap_group_box_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.group_box_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "GroupBox", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_idle_count(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
ret = (uint32_t)idle_count();
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static void idle_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"add", wrap_idle_add},
|
|
{"remove", wrap_idle_remove},
|
|
{"count", wrap_idle_count},
|
|
{NULL, NULL}};
|
|
|
|
luaL_openlib(L, "Idle", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_image_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)image_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/image_t/widget_t", "awtk.image_t");
|
|
}
|
|
|
|
static int wrap_image_set_image_name(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* name = (char*)luaL_checkstring(L, 2);
|
|
ret = (ret_t)image_set_image_name(widget, name);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_image_set_draw_type(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
image_draw_type_t draw_type = (image_draw_type_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)image_set_draw_type(widget, draw_type);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg image_t_member_funcs[] = {
|
|
{"set_image_name", wrap_image_set_image_name},
|
|
{"set_draw_type", wrap_image_set_draw_type},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_image_t_set_prop(lua_State* L) {
|
|
image_t* obj = (image_t*)tk_checkudata(L, 1, "image_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_image_t_get_prop(lua_State* L) {
|
|
image_t* obj = (image_t*)tk_checkudata(L, 1, "image_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(image_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void image_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_image_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_image_t_get_prop}, {"__newindex", wrap_image_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.image_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Image", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_label_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)label_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/label_t/widget_t", "awtk.label_t");
|
|
}
|
|
|
|
static const struct luaL_Reg label_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_label_t_set_prop(lua_State* L) {
|
|
label_t* obj = (label_t*)tk_checkudata(L, 1, "label_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_label_t_get_prop(lua_State* L) {
|
|
label_t* obj = (label_t*)tk_checkudata(L, 1, "label_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(label_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void label_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_label_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_label_t_get_prop}, {"__newindex", wrap_label_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.label_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Label", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_progress_bar_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)progress_bar_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/progress_bar_t/widget_t", "awtk.progress_bar_t");
|
|
}
|
|
|
|
static int wrap_progress_bar_set_value(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint8_t value = (uint8_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)progress_bar_set_value(widget, value);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_progress_bar_set_vertical(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t vertical = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)progress_bar_set_vertical(widget, vertical);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_progress_bar_set_show_text(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t show_text = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)progress_bar_set_show_text(widget, show_text);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg progress_bar_t_member_funcs[] = {
|
|
{"set_value", wrap_progress_bar_set_value},
|
|
{"set_vertical", wrap_progress_bar_set_vertical},
|
|
{"set_show_text", wrap_progress_bar_set_show_text},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_progress_bar_t_set_prop(lua_State* L) {
|
|
progress_bar_t* obj = (progress_bar_t*)tk_checkudata(L, 1, "progress_bar_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "value") == 0) {
|
|
printf("value is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "vertical") == 0) {
|
|
printf("vertical is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "show_text") == 0) {
|
|
printf("show_text is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_widget_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_progress_bar_t_get_prop(lua_State* L) {
|
|
progress_bar_t* obj = (progress_bar_t*)tk_checkudata(L, 1, "progress_bar_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(progress_bar_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "value") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->value));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "vertical") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->vertical));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "show_text") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->show_text));
|
|
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void progress_bar_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_progress_bar_create},
|
|
{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {{"__index", wrap_progress_bar_t_get_prop},
|
|
{"__newindex", wrap_progress_bar_t_set_prop},
|
|
{NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.progress_bar_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "ProgressBar", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
|
|
static const struct luaL_Reg point_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_point_t_set_prop(lua_State* L) {
|
|
point_t* obj = (point_t*)tk_checkudata(L, 1, "point_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "x") == 0) {
|
|
printf("x is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
printf("y is readonly\n");
|
|
return 0;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int wrap_point_t_get_prop(lua_State* L) {
|
|
point_t* obj = (point_t*)tk_checkudata(L, 1, "point_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(point_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "x") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->x));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->y));
|
|
|
|
return 1;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void point_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_point_t_get_prop}, {"__newindex", wrap_point_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.point_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Point", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
|
|
static const struct luaL_Reg rect_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_rect_t_set_prop(lua_State* L) {
|
|
rect_t* obj = (rect_t*)tk_checkudata(L, 1, "rect_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "x") == 0) {
|
|
printf("x is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
printf("y is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "w") == 0) {
|
|
printf("w is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "h") == 0) {
|
|
printf("h is readonly\n");
|
|
return 0;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int wrap_rect_t_get_prop(lua_State* L) {
|
|
rect_t* obj = (rect_t*)tk_checkudata(L, 1, "rect_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(rect_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "x") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->x));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->y));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "w") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->w));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "h") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->h));
|
|
|
|
return 1;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void rect_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_rect_t_get_prop}, {"__newindex", wrap_rect_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.rect_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Rect", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_slider_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)slider_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/slider_t/widget_t", "awtk.slider_t");
|
|
}
|
|
|
|
static int wrap_slider_set_value(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint16_t value = (uint16_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)slider_set_value(widget, value);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_slider_set_min(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint16_t min = (uint16_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)slider_set_min(widget, min);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_slider_set_max(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint16_t max = (uint16_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)slider_set_max(widget, max);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_slider_set_step(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint16_t step = (uint16_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)slider_set_step(widget, step);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_slider_set_vertical(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t vertical = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)slider_set_vertical(widget, vertical);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg slider_t_member_funcs[] = {
|
|
{"set_value", wrap_slider_set_value}, {"set_min", wrap_slider_set_min},
|
|
{"set_max", wrap_slider_set_max}, {"set_step", wrap_slider_set_step},
|
|
{"set_vertical", wrap_slider_set_vertical}, {NULL, NULL}};
|
|
|
|
static int wrap_slider_t_set_prop(lua_State* L) {
|
|
slider_t* obj = (slider_t*)tk_checkudata(L, 1, "slider_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "value") == 0) {
|
|
printf("value is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "min") == 0) {
|
|
printf("min is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "max") == 0) {
|
|
printf("max is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "step") == 0) {
|
|
printf("step is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "vertical") == 0) {
|
|
printf("vertical is readonly\n");
|
|
return 0;
|
|
} else {
|
|
return wrap_widget_t_set_prop(L);
|
|
}
|
|
}
|
|
|
|
static int wrap_slider_t_get_prop(lua_State* L) {
|
|
slider_t* obj = (slider_t*)tk_checkudata(L, 1, "slider_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(slider_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "value") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->value));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "min") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->min));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "max") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->max));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "step") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->step));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "vertical") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->vertical));
|
|
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void slider_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_slider_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_slider_t_get_prop}, {"__newindex", wrap_slider_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.slider_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Slider", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static void align_v_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "AlignV");
|
|
lua_getglobal(L, "AlignV");
|
|
|
|
lua_pushstring(L, "NONE");
|
|
lua_pushinteger(L, ALIGN_V_NONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "MIDDLE");
|
|
lua_pushinteger(L, ALIGN_V_MIDDLE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "TOP");
|
|
lua_pushinteger(L, ALIGN_V_TOP);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "BOTTOM");
|
|
lua_pushinteger(L, ALIGN_V_BOTTOM);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static void align_h_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "AlignH");
|
|
lua_getglobal(L, "AlignH");
|
|
|
|
lua_pushstring(L, "NONE");
|
|
lua_pushinteger(L, ALIGN_H_NONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "CENTER");
|
|
lua_pushinteger(L, ALIGN_H_CENTER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "LEFT");
|
|
lua_pushinteger(L, ALIGN_H_LEFT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "RIGHT");
|
|
lua_pushinteger(L, ALIGN_H_RIGHT);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static int wrap_timer_count(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
ret = (uint32_t)timer_count();
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_timer_next_time(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
ret = (uint32_t)timer_next_time();
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_timer_now(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
ret = (uint32_t)timer_now();
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static void timer_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {
|
|
{"add", wrap_timer_add}, {"remove", wrap_timer_remove},
|
|
{"count", wrap_timer_count}, {"next_time", wrap_timer_next_time},
|
|
{"now", wrap_timer_now}, {NULL, NULL}};
|
|
|
|
luaL_openlib(L, "Timer", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static void ret_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "Ret");
|
|
lua_getglobal(L, "Ret");
|
|
|
|
lua_pushstring(L, "OK");
|
|
lua_pushinteger(L, RET_OK);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "OOM");
|
|
lua_pushinteger(L, RET_OOM);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "FAIL");
|
|
lua_pushinteger(L, RET_FAIL);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "QUIT");
|
|
lua_pushinteger(L, RET_QUIT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "FOUND");
|
|
lua_pushinteger(L, RET_FOUND);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "REMOVE");
|
|
lua_pushinteger(L, RET_REMOVE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "REPEAT");
|
|
lua_pushinteger(L, RET_REPEAT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "NOT_FOUND");
|
|
lua_pushinteger(L, RET_NOT_FOUND);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "DONE");
|
|
lua_pushinteger(L, RET_DONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "BAD_PARAMS");
|
|
lua_pushinteger(L, RET_BAD_PARAMS);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static void value_type_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "ValueType");
|
|
lua_getglobal(L, "ValueType");
|
|
|
|
lua_pushstring(L, "INVALID");
|
|
lua_pushinteger(L, VALUE_TYPE_INVALID);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "BOOL");
|
|
lua_pushinteger(L, VALUE_TYPE_BOOL);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "INT8");
|
|
lua_pushinteger(L, VALUE_TYPE_INT8);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "UINT8");
|
|
lua_pushinteger(L, VALUE_TYPE_UINT8);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "INT16");
|
|
lua_pushinteger(L, VALUE_TYPE_INT16);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "UINT16");
|
|
lua_pushinteger(L, VALUE_TYPE_UINT16);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "INT32");
|
|
lua_pushinteger(L, VALUE_TYPE_INT32);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "UINT32");
|
|
lua_pushinteger(L, VALUE_TYPE_UINT32);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "INT64");
|
|
lua_pushinteger(L, VALUE_TYPE_INT64);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "UINT64");
|
|
lua_pushinteger(L, VALUE_TYPE_UINT64);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "POINTER");
|
|
lua_pushinteger(L, VALUE_TYPE_POINTER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "FLOAT");
|
|
lua_pushinteger(L, VALUE_TYPE_FLOAT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "DOUBLE");
|
|
lua_pushinteger(L, VALUE_TYPE_DOUBLE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STRING");
|
|
lua_pushinteger(L, VALUE_TYPE_STRING);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WSTRING");
|
|
lua_pushinteger(L, VALUE_TYPE_WSTRING);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static int wrap_value_set_bool(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
bool_t value = (bool_t)lua_toboolean(L, 2);
|
|
ret = (value_t*)value_set_bool(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_bool(lua_State* L) {
|
|
bool_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (bool_t)value_bool(v);
|
|
|
|
lua_pushboolean(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_int8(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
int8_t value = (int8_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_int8(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_int8(lua_State* L) {
|
|
int8_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int8_t)value_int8(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_uint8(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
uint8_t value = (uint8_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_uint8(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_uint8(lua_State* L) {
|
|
int8_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int8_t)value_uint8(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_int16(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
int16_t value = (int16_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_int16(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_int16(lua_State* L) {
|
|
int16_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int16_t)value_int16(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_uint16(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
uint16_t value = (uint16_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_uint16(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_uint16(lua_State* L) {
|
|
uint16_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (uint16_t)value_uint16(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_int32(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
int32_t value = (int32_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_int32(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_int32(lua_State* L) {
|
|
int32_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int32_t)value_int32(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_uint32(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
uint32_t value = (uint32_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_uint32(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_uint32(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (uint32_t)value_uint32(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_int64(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
int64_t value = (int64_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_int64(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_int64(lua_State* L) {
|
|
int64_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int64_t)value_int64(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_uint64(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
uint64_t value = (uint64_t)luaL_checkinteger(L, 2);
|
|
ret = (value_t*)value_set_uint64(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_uint64(lua_State* L) {
|
|
uint64_t ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (uint64_t)value_uint64(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_float(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
float value = (float)luaL_checknumber(L, 2);
|
|
ret = (value_t*)value_set_float(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_float(lua_State* L) {
|
|
float ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (float)value_float(v);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_double(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
double value = (double)luaL_checknumber(L, 2);
|
|
ret = (value_t*)value_set_double(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_double(lua_State* L) {
|
|
double ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (double)value_double(v);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_set_str(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
char* value = (char*)luaL_checkstring(L, 2);
|
|
ret = (value_t*)value_set_str(v, value);
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_str(lua_State* L) {
|
|
const char* ret = NULL;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (const char*)value_str(v);
|
|
|
|
lua_pushstring(L, (char*)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_is_null(lua_State* L) {
|
|
bool_t ret = 0;
|
|
value_t* value = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (bool_t)value_is_null(value);
|
|
|
|
lua_pushboolean(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_int(lua_State* L) {
|
|
int ret = 0;
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
ret = (int)value_int(v);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_value_copy(lua_State* L) {
|
|
value_t* dst = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
value_t* src = (value_t*)tk_checkudata(L, 2, "value_t");
|
|
(void)value_copy(dst, src);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_value_create(lua_State* L) {
|
|
value_t* ret = NULL;
|
|
ret = (value_t*)value_create();
|
|
|
|
return tk_newuserdata(L, ret, "/value_t", "awtk.value_t");
|
|
}
|
|
|
|
static int wrap_value_destroy(lua_State* L) {
|
|
value_t* v = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
(void)value_destroy(v);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static const struct luaL_Reg value_t_member_funcs[] = {{"set_bool", wrap_value_set_bool},
|
|
{"bool", wrap_value_bool},
|
|
{"set_int8", wrap_value_set_int8},
|
|
{"int8", wrap_value_int8},
|
|
{"set_uint8", wrap_value_set_uint8},
|
|
{"uint8", wrap_value_uint8},
|
|
{"set_int16", wrap_value_set_int16},
|
|
{"int16", wrap_value_int16},
|
|
{"set_uint16", wrap_value_set_uint16},
|
|
{"uint16", wrap_value_uint16},
|
|
{"set_int32", wrap_value_set_int32},
|
|
{"int32", wrap_value_int32},
|
|
{"set_uint32", wrap_value_set_uint32},
|
|
{"uint32", wrap_value_uint32},
|
|
{"set_int64", wrap_value_set_int64},
|
|
{"int64", wrap_value_int64},
|
|
{"set_uint64", wrap_value_set_uint64},
|
|
{"uint64", wrap_value_uint64},
|
|
{"set_float", wrap_value_set_float},
|
|
{"float", wrap_value_float},
|
|
{"set_double", wrap_value_set_double},
|
|
{"double", wrap_value_double},
|
|
{"set_str", wrap_value_set_str},
|
|
{"str", wrap_value_str},
|
|
{"is_null", wrap_value_is_null},
|
|
{"int", wrap_value_int},
|
|
{"copy", wrap_value_copy},
|
|
{"destroy", wrap_value_destroy},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_value_t_set_prop(lua_State* L) {
|
|
value_t* obj = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "type") == 0) {
|
|
printf("type is readonly\n");
|
|
return 0;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int wrap_value_t_get_prop(lua_State* L) {
|
|
value_t* obj = (value_t*)tk_checkudata(L, 1, "value_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(value_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "type") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->type));
|
|
|
|
return 1;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void value_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_value_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_value_t_get_prop}, {"__newindex", wrap_value_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.value_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Value", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_view_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)view_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/view_t/widget_t", "awtk.view_t");
|
|
}
|
|
|
|
static const struct luaL_Reg view_t_member_funcs[] = {{NULL, NULL}};
|
|
|
|
static int wrap_view_t_set_prop(lua_State* L) {
|
|
view_t* obj = (view_t*)tk_checkudata(L, 1, "view_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_view_t_get_prop(lua_State* L) {
|
|
view_t* obj = (view_t*)tk_checkudata(L, 1, "view_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(view_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void view_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{"create", wrap_view_create}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_view_t_get_prop}, {"__newindex", wrap_view_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.view_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "View", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static void widget_state_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "WidgetState");
|
|
lua_getglobal(L, "WidgetState");
|
|
|
|
lua_pushstring(L, "STATE_NONE");
|
|
lua_pushinteger(L, WIDGET_STATE_NONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_NORMAL");
|
|
lua_pushinteger(L, WIDGET_STATE_NORMAL);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_PRESSED");
|
|
lua_pushinteger(L, WIDGET_STATE_PRESSED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_OVER");
|
|
lua_pushinteger(L, WIDGET_STATE_OVER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_DISABLE");
|
|
lua_pushinteger(L, WIDGET_STATE_DISABLE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_FOCUSED");
|
|
lua_pushinteger(L, WIDGET_STATE_FOCUSED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_CHECKED");
|
|
lua_pushinteger(L, WIDGET_STATE_CHECKED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_UNCHECKED");
|
|
lua_pushinteger(L, WIDGET_STATE_UNCHECKED);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_EMPTY");
|
|
lua_pushinteger(L, WIDGET_STATE_EMPTY);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "STATE_ERROR");
|
|
lua_pushinteger(L, WIDGET_STATE_ERROR);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static void widget_type_t_init(lua_State* L) {
|
|
lua_newtable(L);
|
|
lua_setglobal(L, "WidgetType");
|
|
lua_getglobal(L, "WidgetType");
|
|
|
|
lua_pushstring(L, "WIDGET_NONE");
|
|
lua_pushinteger(L, WIDGET_NONE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_WINDOW_MANAGER");
|
|
lua_pushinteger(L, WIDGET_WINDOW_MANAGER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_NORMAL_WINDOW");
|
|
lua_pushinteger(L, WIDGET_NORMAL_WINDOW);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_TOOL_BAR");
|
|
lua_pushinteger(L, WIDGET_TOOL_BAR);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_DIALOG");
|
|
lua_pushinteger(L, WIDGET_DIALOG);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_POPUP");
|
|
lua_pushinteger(L, WIDGET_POPUP);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_SPRITE");
|
|
lua_pushinteger(L, WIDGET_SPRITE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_KEYBOARD");
|
|
lua_pushinteger(L, WIDGET_KEYBOARD);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_DRAGGER");
|
|
lua_pushinteger(L, WIDGET_DRAGGER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_LABEL");
|
|
lua_pushinteger(L, WIDGET_LABEL);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_BUTTON");
|
|
lua_pushinteger(L, WIDGET_BUTTON);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_IMAGE");
|
|
lua_pushinteger(L, WIDGET_IMAGE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_EDIT");
|
|
lua_pushinteger(L, WIDGET_EDIT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_PROGRESS_BAR");
|
|
lua_pushinteger(L, WIDGET_PROGRESS_BAR);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_GROUP_BOX");
|
|
lua_pushinteger(L, WIDGET_GROUP_BOX);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_CHECK_BUTTON");
|
|
lua_pushinteger(L, WIDGET_CHECK_BUTTON);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_RADIO_BUTTON");
|
|
lua_pushinteger(L, WIDGET_RADIO_BUTTON);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_DIALOG_TITLE");
|
|
lua_pushinteger(L, WIDGET_DIALOG_TITLE);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_DIALOG_CLIENT");
|
|
lua_pushinteger(L, WIDGET_DIALOG_CLIENT);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_SLIDER");
|
|
lua_pushinteger(L, WIDGET_SLIDER);
|
|
lua_settable(L, -3);
|
|
|
|
lua_pushstring(L, "WIDGET_VIEW");
|
|
lua_pushinteger(L, WIDGET_VIEW);
|
|
lua_settable(L, -3);
|
|
}
|
|
|
|
static int wrap_widget_count_children(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (uint32_t)widget_count_children(widget);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_get_child(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint32_t index = (uint32_t)luaL_checkinteger(L, 2);
|
|
ret = (widget_t*)widget_get_child(widget, index);
|
|
|
|
return tk_newuserdata(L, ret, "/widget_t", "awtk.widget_t");
|
|
}
|
|
|
|
static int wrap_widget_move(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
ret = (ret_t)widget_move(widget, x, y);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_resize(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 2);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 3);
|
|
ret = (ret_t)widget_resize(widget, w, h);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_move_resize(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (ret_t)widget_move_resize(widget, x, y, w, h);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_value(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
uint32_t value = (uint32_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)widget_set_value(widget, value);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_use_style(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* value = (char*)luaL_checkstring(L, 2);
|
|
ret = (ret_t)widget_use_style(widget, value);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_text(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
wchar_t* text = (wchar_t*)lua_touserdata(L, 2);
|
|
ret = (ret_t)widget_set_text(widget, text);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_tr_text(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* text = (char*)luaL_checkstring(L, 2);
|
|
ret = (ret_t)widget_set_tr_text(widget, text);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_re_translate_text(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (ret_t)widget_re_translate_text(widget);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_get_value(lua_State* L) {
|
|
uint32_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (uint32_t)widget_get_value(widget);
|
|
|
|
lua_pushinteger(L, (lua_Integer)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_get_text(lua_State* L) {
|
|
wchar_t* ret = NULL;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (wchar_t*)widget_get_text(widget);
|
|
|
|
lua_pushlightuserdata(L, (void*)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_to_local(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
point_t* p = (point_t*)tk_checkudata(L, 2, "point_t");
|
|
ret = (ret_t)widget_to_local(widget, p);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_to_global(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
point_t* p = (point_t*)tk_checkudata(L, 2, "point_t");
|
|
ret = (ret_t)widget_to_global(widget, p);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_name(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* name = (char*)luaL_checkstring(L, 2);
|
|
ret = (ret_t)widget_set_name(widget, name);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_enable(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t enable = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)widget_set_enable(widget, enable);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_focused(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t focused = (bool_t)lua_toboolean(L, 2);
|
|
ret = (ret_t)widget_set_focused(widget, focused);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_state(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
widget_state_t state = (widget_state_t)luaL_checkinteger(L, 2);
|
|
ret = (ret_t)widget_set_state(widget, state);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_destroy_children(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (ret_t)widget_destroy_children(widget);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_add_child(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
widget_t* child = (widget_t*)tk_checkudata(L, 2, "widget_t");
|
|
ret = (ret_t)widget_add_child(widget, child);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_remove_child(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
widget_t* child = (widget_t*)tk_checkudata(L, 2, "widget_t");
|
|
ret = (ret_t)widget_remove_child(widget, child);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_lookup(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* name = (char*)luaL_checkstring(L, 2);
|
|
bool_t recursive = (bool_t)lua_toboolean(L, 3);
|
|
ret = (widget_t*)widget_lookup(widget, name, recursive);
|
|
|
|
return tk_newuserdata(L, ret, "/widget_t", "awtk.widget_t");
|
|
}
|
|
|
|
static int wrap_widget_set_visible(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
bool_t visible = (bool_t)lua_toboolean(L, 2);
|
|
bool_t recursive = (bool_t)lua_toboolean(L, 3);
|
|
ret = (ret_t)widget_set_visible(widget, visible, recursive);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_invalidate(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
rect_t* r = (rect_t*)tk_checkudata(L, 2, "rect_t");
|
|
ret = (ret_t)widget_invalidate(widget, r);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_get_prop(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* name = (char*)luaL_checkstring(L, 2);
|
|
value_t* v = (value_t*)tk_checkudata(L, 3, "value_t");
|
|
ret = (ret_t)widget_get_prop(widget, name, v);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_set_prop(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
char* name = (char*)luaL_checkstring(L, 2);
|
|
value_t* v = (value_t*)tk_checkudata(L, 3, "value_t");
|
|
ret = (ret_t)widget_set_prop(widget, name, v);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_grab(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
widget_t* child = (widget_t*)tk_checkudata(L, 2, "widget_t");
|
|
ret = (ret_t)widget_grab(widget, child);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_ungrab(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
widget_t* child = (widget_t*)tk_checkudata(L, 2, "widget_t");
|
|
ret = (ret_t)widget_ungrab(widget, child);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int wrap_widget_destroy(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* widget = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (ret_t)widget_destroy(widget);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg widget_t_member_funcs[] = {
|
|
{"count_children", wrap_widget_count_children},
|
|
{"get_child", wrap_widget_get_child},
|
|
{"move", wrap_widget_move},
|
|
{"resize", wrap_widget_resize},
|
|
{"move_resize", wrap_widget_move_resize},
|
|
{"set_value", wrap_widget_set_value},
|
|
{"use_style", wrap_widget_use_style},
|
|
{"set_text", wrap_widget_set_text},
|
|
{"set_tr_text", wrap_widget_set_tr_text},
|
|
{"re_translate_text", wrap_widget_re_translate_text},
|
|
{"get_value", wrap_widget_get_value},
|
|
{"get_text", wrap_widget_get_text},
|
|
{"to_local", wrap_widget_to_local},
|
|
{"to_global", wrap_widget_to_global},
|
|
{"set_name", wrap_widget_set_name},
|
|
{"set_enable", wrap_widget_set_enable},
|
|
{"set_focused", wrap_widget_set_focused},
|
|
{"set_state", wrap_widget_set_state},
|
|
{"destroy_children", wrap_widget_destroy_children},
|
|
{"add_child", wrap_widget_add_child},
|
|
{"remove_child", wrap_widget_remove_child},
|
|
{"lookup", wrap_widget_lookup},
|
|
{"set_visible", wrap_widget_set_visible},
|
|
{"on", wrap_widget_on},
|
|
{"off", wrap_widget_off},
|
|
{"on", wrap_widget_on},
|
|
{"invalidate", wrap_widget_invalidate},
|
|
{"get_prop", wrap_widget_get_prop},
|
|
{"set_prop", wrap_widget_set_prop},
|
|
{"grab", wrap_widget_grab},
|
|
{"ungrab", wrap_widget_ungrab},
|
|
{"destroy", wrap_widget_destroy},
|
|
{NULL, NULL}};
|
|
|
|
static int wrap_widget_t_set_prop(lua_State* L) {
|
|
widget_t* obj = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
if (strcmp(name, "x") == 0) {
|
|
printf("x is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
printf("y is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "w") == 0) {
|
|
printf("w is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "h") == 0) {
|
|
printf("h is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "type") == 0) {
|
|
printf("type is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "style_type") == 0) {
|
|
printf("style_type is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "state") == 0) {
|
|
printf("state is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "enable") == 0) {
|
|
printf("enable is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "visible") == 0) {
|
|
printf("visible is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "focused") == 0) {
|
|
printf("focused is readonly\n");
|
|
return 0;
|
|
} else if (strcmp(name, "parent") == 0) {
|
|
printf("parent is readonly\n");
|
|
return 0;
|
|
} else {
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int wrap_widget_t_get_prop(lua_State* L) {
|
|
widget_t* obj = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(widget_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
}
|
|
if (strcmp(name, "x") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->x));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "y") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->y));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "w") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->w));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "h") == 0) {
|
|
lua_pushnumber(L, (lua_Number)(obj->h));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "type") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->type));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "style_type") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->style_type));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "state") == 0) {
|
|
lua_pushinteger(L, (lua_Integer)(obj->state));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "enable") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->enable));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "visible") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->visible));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "focused") == 0) {
|
|
lua_pushboolean(L, (lua_Integer)(obj->focused));
|
|
|
|
return 1;
|
|
} else if (strcmp(name, "parent") == 0) {
|
|
return tk_newuserdata(L, obj->parent, "/widget_t", "awtk.widget_t");
|
|
} else {
|
|
widget_t* child = widget_lookup(obj, name, FALSE);
|
|
if (child != NULL) {
|
|
return tk_newuserdata(L, child, "/widget_t", "awtk.widget_t");
|
|
}
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static void widget_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {{NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_widget_t_get_prop}, {"__newindex", wrap_widget_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.widget_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Widget", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
static int wrap_window_create(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
xy_t x = (xy_t)luaL_checkinteger(L, 2);
|
|
xy_t y = (xy_t)luaL_checkinteger(L, 3);
|
|
wh_t w = (wh_t)luaL_checkinteger(L, 4);
|
|
wh_t h = (wh_t)luaL_checkinteger(L, 5);
|
|
ret = (widget_t*)window_create(parent, x, y, w, h);
|
|
|
|
return tk_newuserdata(L, ret, "/window_t/widget_t", "awtk.window_t");
|
|
}
|
|
|
|
static int wrap_window_open(lua_State* L) {
|
|
widget_t* ret = NULL;
|
|
char* name = (char*)luaL_checkstring(L, 1);
|
|
ret = (widget_t*)window_open(name);
|
|
|
|
return tk_newuserdata(L, ret, "/window_t/widget_t", "awtk.window_t");
|
|
}
|
|
|
|
static int wrap_window_close(lua_State* L) {
|
|
ret_t ret = 0;
|
|
widget_t* parent = (widget_t*)tk_checkudata(L, 1, "widget_t");
|
|
ret = (ret_t)window_close(parent);
|
|
|
|
lua_pushnumber(L, (lua_Number)(ret));
|
|
|
|
return 1;
|
|
}
|
|
|
|
static const struct luaL_Reg window_t_member_funcs[] = {{"close", wrap_window_close}, {NULL, NULL}};
|
|
|
|
static int wrap_window_t_set_prop(lua_State* L) {
|
|
window_t* obj = (window_t*)tk_checkudata(L, 1, "window_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
(void)obj;
|
|
(void)name;
|
|
return wrap_widget_t_set_prop(L);
|
|
printf("%s: not supported %s\n", __func__, name);
|
|
return 0;
|
|
}
|
|
|
|
static int wrap_window_t_get_prop(lua_State* L) {
|
|
window_t* obj = (window_t*)tk_checkudata(L, 1, "window_t");
|
|
const char* name = (const char*)luaL_checkstring(L, 2);
|
|
const luaL_Reg* ret = find_member(window_t_member_funcs, name);
|
|
|
|
(void)obj;
|
|
(void)name;
|
|
if (ret) {
|
|
lua_pushcfunction(L, ret->func);
|
|
return 1;
|
|
} else {
|
|
return wrap_widget_t_get_prop(L);
|
|
}
|
|
}
|
|
|
|
static void window_t_init(lua_State* L) {
|
|
static const struct luaL_Reg static_funcs[] = {
|
|
{"create", wrap_window_create}, {"open", wrap_window_open}, {NULL, NULL}};
|
|
|
|
static const struct luaL_Reg index_funcs[] = {
|
|
{"__index", wrap_window_t_get_prop}, {"__newindex", wrap_window_t_set_prop}, {NULL, NULL}};
|
|
|
|
luaL_newmetatable(L, "awtk.window_t");
|
|
lua_pushstring(L, "__index");
|
|
lua_pushvalue(L, -2);
|
|
lua_settable(L, -3);
|
|
luaL_openlib(L, NULL, index_funcs, 0);
|
|
luaL_openlib(L, "Window", static_funcs, 0);
|
|
lua_settop(L, 0);
|
|
}
|
|
|
|
void luaL_openawtk(lua_State* L) {
|
|
globals_init(L);
|
|
button_t_init(L);
|
|
canvas_t_init(L);
|
|
check_button_t_init(L);
|
|
dialog_t_init(L);
|
|
input_type_t_init(L);
|
|
edit_t_init(L);
|
|
event_type_t_init(L);
|
|
event_t_init(L);
|
|
pointer_event_t_init(L);
|
|
key_event_t_init(L);
|
|
paint_event_t_init(L);
|
|
group_box_t_init(L);
|
|
idle_t_init(L);
|
|
image_t_init(L);
|
|
label_t_init(L);
|
|
progress_bar_t_init(L);
|
|
point_t_init(L);
|
|
rect_t_init(L);
|
|
slider_t_init(L);
|
|
align_v_t_init(L);
|
|
align_h_t_init(L);
|
|
timer_t_init(L);
|
|
ret_t_init(L);
|
|
value_type_t_init(L);
|
|
value_t_init(L);
|
|
view_t_init(L);
|
|
widget_state_t_init(L);
|
|
widget_type_t_init(L);
|
|
widget_t_init(L);
|
|
window_t_init(L);
|
|
s_current_L = L;
|
|
}
|