diff --git a/lib/luavgl/src/luavgl.h b/lib/luavgl/src/luavgl.h index b26bb5c7..c76a6493 100644 --- a/lib/luavgl/src/luavgl.h +++ b/lib/luavgl/src/luavgl.h @@ -157,6 +157,11 @@ LUALIB_API int luavgl_obj_getuserdatauv(lua_State *L, int idx); */ LUALIB_API lv_obj_t *luavgl_to_obj(lua_State *L, int idx); +/** + * @brief Get lvgl style from stack + */ +LUALIB_API lv_style_t *luavgl_to_style(lua_State *L, int idx); + /** * @brief Convert value to integer * diff --git a/lib/luavgl/src/util.c b/lib/luavgl/src/util.c index 2042a6d9..7fb86906 100644 --- a/lib/luavgl/src/util.c +++ b/lib/luavgl/src/util.c @@ -272,6 +272,17 @@ LUALIB_API lv_obj_t *luavgl_to_obj(lua_State *L, int idx) return lobj->obj; } +LUALIB_API lv_style_t *luavgl_to_style(lua_State *L, int idx) +{ + luavgl_style_t *lsty = luavgl_check_style(L, idx); + if (lsty == NULL) { + luaL_argerror(L, idx, "expect lua lvgl style, got null"); + return NULL; + } + + return &lsty->style; +} + LUALIB_API int luavgl_tointeger(lua_State *L, int idx) { int v = 0;