XuNeo / luavgl

lua + lvgl = luavgl An optimized lvgl Lua binding
MIT License
57 stars 13 forks source link

Events on top level screen #18

Closed jonsmirl closed 4 months ago

jonsmirl commented 4 months ago

Introduce the problem

How can I attach an event handler to the top level screen? I would like to capture gestures.

void scr_event_cb(lv_obj_t * obj, lv_event_t e)
{
    if(e == LV_EVENT_GESTURE) {
        lv_gesture_dir_t dir = lv_indev_get_gesture_dir(lv_indev_get_act());
        printf("Dir: %d\n", dir);
    }
}

lv_obj_set_event_cb(lv_scr_act(), scr_event_cb);

Proposal

No response

XuNeo commented 4 months ago

Hi, I have added an example gesture.lua. It outputs log of gesture direction.

created container       lv_obj: 0x106940cd8
diplay screen_act:      lv_obj: 0x1069873d8     indev:  lv_indev: 0x120327958

gesture dir:    2
clicked: 7
gesture dir:    8
clicked: 7
gesture dir:    2
clicked: 7
gesture dir:    1
clicked: 7
gesture dir:    8
clicked: 7
gesture dir:    4
clicked: 7