From b8bb4b9e936353780268a5a5e520e92092699a96 Mon Sep 17 00:00:00 2001 From: Xu Xingliang Date: Sun, 21 Jul 2024 23:24:07 +0800 Subject: [PATCH] chore(widget): replace normal widget methods with rotable Signed-off-by: Xu Xingliang --- src/anim.c | 17 ++++++++------- src/disp.c | 42 ++++++++++++++++++------------------ src/fs.c | 35 +++++++++++++++--------------- src/group.c | 61 +++++++++++++++++++++++++++-------------------------- src/indev.c | 45 ++++++++++++++++++++------------------- src/style.c | 13 ++++++------ src/timer.c | 17 ++++++++------- 7 files changed, 118 insertions(+), 112 deletions(-) diff --git a/src/anim.c b/src/anim.c index 72cca85..a033b08 100644 --- a/src/anim.c +++ b/src/anim.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" /** * Different to lvgl anim, anim in lua can be restarted after it's done. @@ -319,15 +320,15 @@ static const luaL_Reg luavgl_anim_meta[] = { {NULL, NULL }, }; -static const luaL_Reg luavgl_anim_methods[] = { - {"set", luavgl_anim_set }, - {"start", luavgl_anim_start }, +static const rotable_Reg luavgl_anim_methods[] = { + {"set", LUA_TFUNCTION, {luavgl_anim_set} }, + {"start", LUA_TFUNCTION, {luavgl_anim_start} }, - /* in lua anim, stopped anim can be restarted. */ - {"stop", luavgl_anim_stop }, - {"delete", luavgl_anim_delete}, + /* in lua anim, stopped anim can be restarted. */ + {"stop", LUA_TFUNCTION, {luavgl_anim_stop} }, + {"delete", LUA_TFUNCTION, {luavgl_anim_delete}}, - {NULL, NULL } + {0, 0, {0} } }; static void luavgl_anim_init(lua_State *L) @@ -336,7 +337,7 @@ static void luavgl_anim_init(lua_State *L) luaL_newmetatable(L, "lv_anim"); luaL_setfuncs(L, luavgl_anim_meta, 0); - luaL_newlib(L, luavgl_anim_methods); + rotable_newlib(L, luavgl_anim_methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ diff --git a/src/disp.c b/src/disp.c index ba68491..12624ce 100644 --- a/src/disp.c +++ b/src/disp.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct luavgl_disp_s { lv_disp_t *disp; @@ -255,30 +256,29 @@ static int luavgl_disp_set_rotation(lua_State *L) /** * luavgl.disp lib */ -static const luaL_Reg disp_lib[] = { - {"get_default", luavgl_disp_get_default }, - {"get_scr_act", luavgl_disp_get_scr_act }, - {"get_scr_prev", luavgl_disp_get_scr_prev}, - {"get_next", luavgl_disp_get_next }, - {"load_scr", luavgl_disp_load_scr }, - - {NULL, NULL }, +static const rotable_Reg disp_lib[] = { + {"get_default", LUA_TFUNCTION, {luavgl_disp_get_default} }, + {"get_scr_act", LUA_TFUNCTION, {luavgl_disp_get_scr_act} }, + {"get_scr_prev", LUA_TFUNCTION, {luavgl_disp_get_scr_prev}}, + {"get_next", LUA_TFUNCTION, {luavgl_disp_get_next} }, + {"load_scr", LUA_TFUNCTION, {luavgl_disp_load_scr} }, + + {0, 0, {0} }, }; /* ** methods for disp handles */ -static const luaL_Reg disp_methods[] = { - {"get_layer_top", luavgl_disp_get_layer_top}, - {"get_layer_sys", luavgl_disp_get_layer_sys}, - {"get_next", luavgl_disp_get_next }, - {"set_rotation", luavgl_disp_set_rotation }, - {"get_res", luavgl_disp_get_res }, - - {"get_scr_act", luavgl_disp_get_scr_act }, - {"get_scr_prev", luavgl_disp_get_scr_prev }, - - {NULL, NULL }, +static const rotable_Reg disp_methods[] = { + {"get_layer_top", LUA_TFUNCTION, {luavgl_disp_get_layer_top}}, + {"get_layer_sys", LUA_TFUNCTION, {luavgl_disp_get_layer_sys}}, + {"get_next", LUA_TFUNCTION, {luavgl_disp_get_next} }, + {"set_rotation", LUA_TFUNCTION, {luavgl_disp_set_rotation} }, + {"get_res", LUA_TFUNCTION, {luavgl_disp_get_res} }, + {"get_scr_act", LUA_TFUNCTION, {luavgl_disp_get_scr_act} }, + {"get_scr_prev", LUA_TFUNCTION, {luavgl_disp_get_scr_prev} }, + + {0, 0, {0} }, }; static const luaL_Reg disp_meta[] = { @@ -293,12 +293,12 @@ static void luavgl_disp_init(lua_State *L) luaL_newmetatable(L, "lv_disp"); luaL_setfuncs(L, disp_meta, 0); - luaL_newlib(L, disp_methods); + rotable_newlib(L, disp_methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ /* luavgl.disp lib */ - luaL_newlib(L, disp_lib); + rotable_newlib(L, disp_lib); lua_setfield(L, -2, "disp"); } diff --git a/src/fs.c b/src/fs.c index 4deec5e..5ca3427 100644 --- a/src/fs.c +++ b/src/fs.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct luavgl_fs_s { lv_fs_file_t file; @@ -310,23 +311,23 @@ static int luavgl_dir_gc(lua_State *L) * luavgl.fs lib * */ -static const luaL_Reg fs_lib[] = { - {"open_file", luavgl_fs_open }, - {"open_dir", luavgl_dir_open}, +static const rotable_Reg fs_lib[] = { + {"open_file", LUA_TFUNCTION, {luavgl_fs_open} }, + {"open_dir", LUA_TFUNCTION, {luavgl_dir_open}}, - {NULL, NULL }, + {0, 0, {0} }, }; /* ** methods for file handles */ -static const luaL_Reg fs_methods[] = { - {"read", luavgl_fs_read }, - {"write", luavgl_fs_write}, - {"close", luavgl_fs_close}, - {"seek", luavgl_fs_seek }, +static const rotable_Reg fs_methods[] = { + {"read", LUA_TFUNCTION, {luavgl_fs_read} }, + {"write", LUA_TFUNCTION, {luavgl_fs_write}}, + {"close", LUA_TFUNCTION, {luavgl_fs_close}}, + {"seek", LUA_TFUNCTION, {luavgl_fs_seek} }, - {NULL, NULL }, + {0, 0, {0} }, }; static const luaL_Reg fs_meta[] = { @@ -341,11 +342,11 @@ static const luaL_Reg fs_meta[] = { /* ** methods for dir handles */ -static const luaL_Reg dir_methods[] = { - {"read", luavgl_dir_read }, - {"close", luavgl_dir_close}, +static const rotable_Reg dir_methods[] = { + {"read", LUA_TFUNCTION, {luavgl_dir_read} }, + {"close", LUA_TFUNCTION, {luavgl_dir_close}}, - {NULL, NULL }, + {0, 0, {0} }, }; static const luaL_Reg dir_meta[] = { @@ -363,7 +364,7 @@ static void luavgl_fs_init(lua_State *L) luaL_newmetatable(L, "lv_fs"); luaL_setfuncs(L, fs_meta, 0); - luaL_newlib(L, fs_methods); + rotable_newlib(L, fs_methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ @@ -372,12 +373,12 @@ static void luavgl_fs_init(lua_State *L) luaL_newmetatable(L, "lv_dir"); luaL_setfuncs(L, dir_meta, 0); - luaL_newlib(L, dir_methods); + rotable_newlib(L, dir_methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ /* luavgl.fs lib */ - luaL_newlib(L, fs_lib); + rotable_newlib(L, fs_lib); lua_setfield(L, -2, "fs"); } diff --git a/src/group.c b/src/group.c index 117ab19..7c12a75 100644 --- a/src/group.c +++ b/src/group.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct luavgl_group_s { lv_group_t *group; @@ -288,39 +289,39 @@ static int luavgl_group_gc(lua_State *L) /** * luavgl.group lib */ -static const luaL_Reg group_lib[] = { - {"create", luavgl_group_create }, - {"get_default", luavgl_group_get_default}, - {"remove_obj", luavgl_group_remove_obj }, - {"remove_objs", luavgl_group_remove_objs}, - - {"focus_obj", luavgl_group_focus_obj }, - {NULL, NULL }, +static const rotable_Reg group_lib[] = { + {"create", LUA_TFUNCTION, {luavgl_group_create} }, + {"get_default", LUA_TFUNCTION, {luavgl_group_get_default}}, + {"remove_obj", LUA_TFUNCTION, {luavgl_group_remove_obj} }, + {"remove_objs", LUA_TFUNCTION, {luavgl_group_remove_objs}}, + + {"focus_obj", LUA_TFUNCTION, {luavgl_group_focus_obj} }, + {0, 0, {0} }, }; /* ** methods for file handles */ -static const luaL_Reg group_methods[] = { - {"delete", luavgl_group_delete }, - {"set_default", luavgl_group_set_default }, - {"add_obj", luavgl_group_add_obj }, - {"remove_obj", luavgl_group_remove_obj }, - {"focus_next", luavgl_group_focus_next }, - {"focus_prev", luavgl_group_focus_prev }, - {"focus_freeze", luavgl_group_focus_freeze }, - {"send_data", luavgl_group_send_data }, - {"set_focus_cb", luavgl_group_set_focus_cb }, - {"set_edge_cb", luavgl_group_set_edge_cb }, - {"get_focus_cb", luavgl_group_get_focus_cb }, - {"get_edge_cb", luavgl_group_get_edge_cb }, - {"set_editing", luavgl_group_set_editing }, - {"set_wrap", luavgl_group_set_wrap }, - {"get_wrap", luavgl_group_get_wrap }, - {"get_obj_count", luavgl_group_get_obj_count}, - {"get_focused", luavgl_group_get_focused }, - - {NULL, NULL }, +static const rotable_Reg group_methods[] = { + {"delete", LUA_TFUNCTION, {luavgl_group_delete} }, + {"set_default", LUA_TFUNCTION, {luavgl_group_set_default} }, + {"add_obj", LUA_TFUNCTION, {luavgl_group_add_obj} }, + {"remove_obj", LUA_TFUNCTION, {luavgl_group_remove_obj} }, + {"focus_next", LUA_TFUNCTION, {luavgl_group_focus_next} }, + {"focus_prev", LUA_TFUNCTION, {luavgl_group_focus_prev} }, + {"focus_freeze", LUA_TFUNCTION, {luavgl_group_focus_freeze} }, + {"send_data", LUA_TFUNCTION, {luavgl_group_send_data} }, + {"set_focus_cb", LUA_TFUNCTION, {luavgl_group_set_focus_cb} }, + {"set_edge_cb", LUA_TFUNCTION, {luavgl_group_set_edge_cb} }, + {"get_focus_cb", LUA_TFUNCTION, {luavgl_group_get_focus_cb} }, + {"get_edge_cb", LUA_TFUNCTION, {luavgl_group_get_edge_cb} }, + {"set_editing", LUA_TFUNCTION, {luavgl_group_set_editing} }, + {"set_wrap", LUA_TFUNCTION, {luavgl_group_set_wrap} }, + {"get_wrap", LUA_TFUNCTION, {luavgl_group_get_wrap} }, + {"get_obj_count", LUA_TFUNCTION, {luavgl_group_get_obj_count}}, + {"get_focused", LUA_TFUNCTION, {luavgl_group_get_focused} }, + + {0, 0, {0} }, }; static const luaL_Reg group_meta[] = { @@ -336,12 +337,12 @@ static void luavgl_group_init(lua_State *L) luaL_newmetatable(L, "lv_group"); luaL_setfuncs(L, group_meta, 0); - luaL_newlib(L, group_methods); + rotable_newlib(L, group_methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ /* luavgl.indev lib */ - luaL_newlib(L, group_lib); + rotable_newlib(L, group_lib); lua_setfield(L, -2, "group"); } diff --git a/src/indev.c b/src/indev.c index 0479e20..72d3fdb 100644 --- a/src/indev.c +++ b/src/indev.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct luavgl_indev_s { lv_indev_t *indev; @@ -294,36 +295,36 @@ static int luavgl_indev_gc(lua_State *L) /** * luavgl.indev lib */ -static const luaL_Reg indev_lib[] = { - {"get_act", luavgl_indev_get_act }, +static const rotable_Reg indev_lib[] = { + {"get_act", LUA_TFUNCTION, {luavgl_indev_get_act} }, #if 0 - {"get_obj_act", luavgl_indev_get_obj_act}, + {"get_obj_act", LUA_TFUNCTION, {luavgl_indev_get_obj_act}}, #endif - {"get_next", luavgl_indev_get_next }, + {"get_next", LUA_TFUNCTION, {luavgl_indev_get_next}}, - {NULL, NULL }, + {0, 0, {0} }, }; /* ** methods for file handles */ -static const luaL_Reg methods[] = { - {"get_type", luavgl_indev_get_type }, - {"reset", luavgl_indev_reset }, - {"reset_long_press", luavgl_indev_reset_long_press}, - {"set_cursor", luavgl_indev_set_cursor }, - {"set_group", luavgl_indev_set_group }, - {"get_point", luavgl_indev_get_point }, - {"get_gesture_dir", luavgl_indev_get_gesture_dir }, - {"get_key", luavgl_indev_get_key }, - {"get_scroll_dir", luavgl_indev_get_scroll_dir }, - {"get_scroll_obj", luavgl_indev_get_scroll_obj }, - {"get_vect", luavgl_indev_get_vect }, - {"wait_release", luavgl_indev_wait_release }, +static const rotable_Reg methods[] = { + {"get_type", LUA_TFUNCTION, {luavgl_indev_get_type} }, + {"reset", LUA_TFUNCTION, {luavgl_indev_reset} }, + {"reset_long_press", LUA_TFUNCTION, {luavgl_indev_reset_long_press}}, + {"set_cursor", LUA_TFUNCTION, {luavgl_indev_set_cursor} }, + {"set_group", LUA_TFUNCTION, {luavgl_indev_set_group} }, + {"get_point", LUA_TFUNCTION, {luavgl_indev_get_point} }, + {"get_gesture_dir", LUA_TFUNCTION, {luavgl_indev_get_gesture_dir} }, + {"get_key", LUA_TFUNCTION, {luavgl_indev_get_key} }, + {"get_scroll_dir", LUA_TFUNCTION, {luavgl_indev_get_scroll_dir} }, + {"get_scroll_obj", LUA_TFUNCTION, {luavgl_indev_get_scroll_obj} }, + {"get_vect", LUA_TFUNCTION, {luavgl_indev_get_vect} }, + {"wait_release", LUA_TFUNCTION, {luavgl_indev_wait_release} }, #if 0 - {"on_event", luavgl_indev_on_event }, + {"on_event", LUA_TFUNCTION, {luavgl_indev_on_event} }, #endif - {NULL, NULL }, + {0, 0, {0} }, }; static const luaL_Reg meta[] = { @@ -340,12 +341,12 @@ static void luavgl_indev_init(lua_State *L) luaL_newmetatable(L, "lv_indev"); luaL_setfuncs(L, meta, 0); - luaL_newlib(L, methods); + rotable_newlib(L, methods); lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop metatable */ /* luavgl.indev lib */ - luaL_newlib(L, indev_lib); + rotable_newlib(L, indev_lib); lua_setfield(L, -2, "indev"); } diff --git a/src/style.c b/src/style.c index e08d0e9..1362c45 100644 --- a/src/style.c +++ b/src/style.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct { lv_style_t style; @@ -727,12 +728,12 @@ static int luavgl_obj_remove_style_all(lua_State *L) return 0; } -static const luaL_Reg luavgl_style_methods[] = { - {"set", luavgl_style_set }, - {"delete", luavgl_style_delete }, - {"remove_prop", luavgl_style_remove_prop}, +static const rotable_Reg luavgl_style_methods[] = { + {"set", LUA_TFUNCTION, {luavgl_style_set} }, + {"delete", LUA_TFUNCTION, {luavgl_style_delete} }, + {"remove_prop", LUA_TFUNCTION, {luavgl_style_remove_prop}}, - {NULL, NULL } + {0, 0, {0} } }; static void luavgl_style_init(lua_State *L) @@ -742,7 +743,7 @@ static void luavgl_style_init(lua_State *L) lua_pushcfunction(L, luavgl_style_gc); lua_setfield(L, -2, "__gc"); - luaL_newlib(L, luavgl_style_methods); /* methods belong to this type */ + rotable_newlib(L, luavgl_style_methods); /* methods belong to this type */ lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop __index table */ diff --git a/src/timer.c b/src/timer.c index 47b4a00..861ebe0 100644 --- a/src/timer.c +++ b/src/timer.c @@ -1,5 +1,6 @@ #include "luavgl.h" #include "private.h" +#include "rotable.h" typedef struct luavgl_timer_s { lua_State *L; @@ -198,14 +199,14 @@ static int luavgl_timer_gc(lua_State *L) return 0; } -static const luaL_Reg luavgl_timer_methods[] = { - {"set", luavgl_timer_set }, - {"pause", luavgl_timer_pause }, - {"resume", luavgl_timer_resume}, - {"delete", luavgl_timer_delete}, - {"ready", luavgl_timer_ready }, +static const rotable_Reg luavgl_timer_methods[] = { + {"set", LUA_TFUNCTION, {luavgl_timer_set} }, + {"pause", LUA_TFUNCTION, {luavgl_timer_pause} }, + {"resume", LUA_TFUNCTION, {luavgl_timer_resume}}, + {"delete", LUA_TFUNCTION, {luavgl_timer_delete}}, + {"ready", LUA_TFUNCTION, {luavgl_timer_ready} }, - {NULL, NULL } + {0, 0, {0} } }; static void luavgl_timer_init(lua_State *L) @@ -215,7 +216,7 @@ static void luavgl_timer_init(lua_State *L) lua_pushcfunction(L, luavgl_timer_gc); lua_setfield(L, -2, "__gc"); - luaL_newlib(L, luavgl_timer_methods); /* methods belong to this type */ + rotable_newlib(L, luavgl_timer_methods); /* methods belong to this type */ lua_setfield(L, -2, "__index"); lua_pop(L, 1); /* pop __index table */