|
|
@@ -1,4 +1,4 @@
|
|
|
-#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
|
|
+#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
|
|
#include "lvgl.h"
|
|
|
#else
|
|
|
#include "../../lvgl.h"
|
|
|
@@ -56,7 +56,7 @@ void pika_lvgl_lv_obj_add_state(PikaObj* self, int state) {
|
|
|
lv_obj_add_state(lv_obj, state);
|
|
|
}
|
|
|
|
|
|
-PikaObj* eventLisener_getHandler(PikaObj* self, uintptr_t event_id) {
|
|
|
+PikaObj* eventListener_getHandler(PikaObj* self, uintptr_t event_id) {
|
|
|
Args buffs = {0};
|
|
|
char* event_name =
|
|
|
strsFormat(&buffs, PIKA_SPRINTF_BUFF_SIZE, "%d", event_id);
|
|
|
@@ -69,13 +69,13 @@ PikaObj* eventLisener_getHandler(PikaObj* self, uintptr_t event_id) {
|
|
|
static void __pika_event_cb(lv_event_t* e) {
|
|
|
lv_obj_t* target = lv_event_get_target(e);
|
|
|
PikaObj* event_handler =
|
|
|
- eventLisener_getHandler(pika_lv_event_listener_g, (uintptr_t)target);
|
|
|
+ eventListener_getHandler(pika_lv_event_listener_g, (uintptr_t)target);
|
|
|
PikaObj* evt = obj_getObj(event_handler, "_event_evt");
|
|
|
obj_setPtr(evt, "lv_event", e);
|
|
|
obj_run(event_handler, "_event_cb(_event_evt)");
|
|
|
}
|
|
|
|
|
|
-void eventLicener_registEvent(PikaObj* self,
|
|
|
+void eventListener_registEvent(PikaObj* self,
|
|
|
uintptr_t event_id,
|
|
|
PikaObj* event_handler) {
|
|
|
Args buffs = {0};
|
|
|
@@ -83,7 +83,7 @@ void eventLicener_registEvent(PikaObj* self,
|
|
|
strsFormat(&buffs, PIKA_SPRINTF_BUFF_SIZE, "%d", event_id);
|
|
|
obj_newDirectObj(self, event_name, New_TinyObj);
|
|
|
PikaObj* event_item = obj_getObj(self, event_name);
|
|
|
- obj_setRef(event_item, "handler", event_handler);
|
|
|
+ obj_setPtr(event_item, "handler", event_handler);
|
|
|
strsDeinit(&buffs);
|
|
|
}
|
|
|
|
|
|
@@ -96,7 +96,7 @@ void pika_lvgl_lv_obj_add_event_cb(PikaObj* self,
|
|
|
obj_setArg(self, "_event_cb", event_cb);
|
|
|
obj_setPtr(self, "_event_user_data", user_data);
|
|
|
obj_newDirectObj(self, "_event_evt", New_pika_lvgl_lv_event);
|
|
|
- eventLicener_registEvent(pika_lv_event_listener_g, (uintptr_t)lv_obj, self);
|
|
|
+ eventListener_registEvent(pika_lv_event_listener_g, (uintptr_t)lv_obj, self);
|
|
|
}
|
|
|
|
|
|
void pika_lvgl_lv_obj_add_style(PikaObj* self, PikaObj* style, int selector) {
|
|
|
@@ -333,4 +333,14 @@ void pika_lvgl_lv_obj_clean(PikaObj *self){
|
|
|
lv_obj_clean(lv_obj);
|
|
|
}
|
|
|
|
|
|
+void pika_lvgl_lv_obj_del_(PikaObj* self) {
|
|
|
+ lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
|
|
|
+ Args buffs = {0};
|
|
|
+ char* event_name =
|
|
|
+ strsFormat(&buffs, PIKA_SPRINTF_BUFF_SIZE, "%d", (uintptr_t)lv_obj);
|
|
|
+ obj_removeArg(pika_lv_event_listener_g, event_name);
|
|
|
+ strsDeinit(&buffs);
|
|
|
+ lv_obj_del(lv_obj);
|
|
|
+}
|
|
|
+
|
|
|
#endif
|