summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-02-06 08:35:14 +1100
committerjacqueline <me@jacqueline.id.au>2024-02-06 08:36:11 +1100
commit5f6af82e8a535864aabdf92d1061cbb04999ecce (patch)
treefeb6dbc404d7fa5880a2d1bab3df2875a13cd6f0 /lib
parentf2df12836f10719f65e9eefa1e17aa600edf49c2 (diff)
downloadtangara-fw-5f6af82e8a535864aabdf92d1061cbb04999ecce.tar.gz
luavgl: add a method to focus an object
Diffstat (limited to 'lib')
-rw-r--r--lib/luavgl/src/lvgl.lua5
-rw-r--r--lib/luavgl/src/obj.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/luavgl/src/lvgl.lua b/lib/luavgl/src/lvgl.lua
index 32061c1f..e06f673d 100644
--- a/lib/luavgl/src/lvgl.lua
+++ b/lib/luavgl/src/lvgl.lua
@@ -814,6 +814,11 @@ end
function obj:invalidate()
end
+--- Sets this object as the current selection of the object's group.
+---@return nil
+function obj:focus()
+end
+
---
--- Object event callback. `para` is not used for now.
--- @alias EventCallback fun(obj:Object, code: ObjEventCode): nil
diff --git a/lib/luavgl/src/obj.c b/lib/luavgl/src/obj.c
index eccfd753..4b108891 100644
--- a/lib/luavgl/src/obj.c
+++ b/lib/luavgl/src/obj.c
@@ -1,3 +1,5 @@
+#include "core/lv_group.h"
+#include "core/lv_obj.h"
#include "luavgl.h"
#include "private.h"
@@ -579,6 +581,21 @@ static int luavgl_obj_get_pos(lua_State *L) {
}
/**
+ * set this object as the current selection
+ */
+static int luavgl_obj_focus(lua_State *L) {
+ lv_obj_t *obj = luavgl_to_obj(L, 1);
+
+ lv_group_t *group = lv_obj_get_group(obj);
+ if (group == NULL) {
+ return 0;
+ }
+ lv_group_focus_obj(obj);
+
+ return 0;
+}
+
+/**
* Remove all animations associates to this object
*/
static int luavgl_obj_remove_anim_all(lua_State *L) {
@@ -654,6 +671,7 @@ static const luaL_Reg luavgl_obj_methods[] = {
{"indev_search", luavgl_obj_indev_search},
{"get_coords", luavgl_obj_get_coords},
{"get_pos", luavgl_obj_get_pos},
+ {"focus", luavgl_obj_focus},
{"onevent", luavgl_obj_on_event},
{"onPressed", luavgl_obj_on_pressed},