Ver Fonte

add pinyin support for pika_lvgl

lyon há 2 anos atrás
pai
commit
b4a01a52bf

+ 3 - 3
package/pika_lvgl/pika_lvgl.c

@@ -224,7 +224,7 @@ void pika_lvgl_PALETTE___init__(PikaObj* self) {
 PikaObj* pika_lvgl_scr_act(PikaObj* self) {
     PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_obj);
     lv_obj_t* lv_obj = lv_scr_act();
-    obj_setPtr(new_obj, "lv_obj", lv_obj);
+    PIKA_LV_OBJ_SET(new_obj, lv_obj);
     return new_obj;
 }
 
@@ -266,9 +266,9 @@ void pika_lvgl_obj___init__(PikaObj* self, PikaTuple* parent) {
     }
     if (pikaTuple_getSize(parent) == 1) {
         parent_obj = pikaTuple_getPtr(parent, 0);
-        lv_obj_t* lv_parent = obj_getPtr(parent_obj, "lv_obj");
+        lv_obj_t* lv_parent = PIKA_LV_OBJ(parent_obj);
         lv_obj_t* lv_obj = lv_obj_create(lv_parent);
-        obj_setPtr(self, "lv_obj", lv_obj);
+        PIKA_LV_OBJ_SET(self, lv_obj);
         return;
     }
 }

+ 15 - 0
package/pika_lvgl/pika_lvgl.pyi

@@ -1373,6 +1373,21 @@ class keyboard(lv_obj):
     def get_selected_btn(self) -> int: ...
     # def get_btn_text(self, btn_id: int) -> str: ...
 
+"""
+lv_obj_t * lv_ime_pinyin_create(lv_obj_t * parent);
+void lv_ime_pinyin_set_keyboard(lv_obj_t * obj, lv_obj_t * kb);
+void lv_ime_pinyin_set_mode(lv_obj_t * obj, lv_ime_pinyin_mode_t mode);
+lv_obj_t * lv_ime_pinyin_get_kb(lv_obj_t * obj);
+lv_obj_t * lv_ime_pinyin_get_cand_panel(lv_obj_t * obj);
+"""
+
+class ime_pinyin(lv_obj):
+    def __init__(self, parent: lv_obj): ...
+    def set_keyboard(self, kb: lv_obj): ...
+    def set_mode(self, mode: int): ...
+    def get_kb(self) -> lv_obj: ...
+    def get_cand_panel(self) -> lv_obj: ...
+
 
 def scr_act() -> lv_obj: ...
 def pct(x: int) -> int: ...

+ 12 - 11
package/pika_lvgl/pika_lvgl_canvas.c

@@ -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"
@@ -7,11 +7,12 @@
 #ifdef PIKASCRIPT
 
 #include "pika_lvgl_canvas.h"
+#include "pika_lvgl_common.h"
 
 void pika_lvgl_canvas___init__(PikaObj* self, PikaObj* parent) {
-    lv_obj_t* lv_parent = obj_getPtr(parent, "lv_obj");
+    lv_obj_t* lv_parent = PIKA_LV_OBJ(parent);
     lv_obj_t* lv_obj = lv_canvas_create(lv_parent);
-    obj_setPtr(self, "lv_obj", lv_obj);
+    PIKA_LV_OBJ_SET(self, lv_obj);
     pika_debug("lv_canvas_create, lv_obj: %p", lv_obj);
 }
 
@@ -21,18 +22,18 @@ void pika_lvgl_canvas_copy_buf(PikaObj* self,
                                int y,
                                int w,
                                int h) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     lv_canvas_copy_buf(lv_obj, to_copy, x, y, w, h);
 }
 
 void pika_lvgl_canvas_fill_bg(PikaObj* self, PikaObj* color, int opa) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     lv_color_t* lv_color = obj_getPtr(color, "lv_color");
     lv_canvas_fill_bg(lv_obj, *lv_color, opa);
 }
 
 PikaObj* pika_lvgl_canvas_get_img(PikaObj* self) {
-    // lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    // lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     // lv_img_dsc_t* img = lv_canvas_get_img(lv_obj);
     // PikaObj* pika_img = new_Obj("PikaImg", NULL);
     // obj_setPtr(pika_img, "lv_img_dsc", img);
@@ -45,7 +46,7 @@ void pika_lvgl_canvas_get_px(PikaObj* self,
                              int y,
                              PikaObj* color,
                              int opa) {
-    // lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    // lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     // lv_color_t lv_color = lv_canvas_get_px(lv_obj, x, y);
     // obj_setInt(color, "full", lv_color.full);
     // obj_setInt(color, "ch", lv_color.ch.alpha);
@@ -57,7 +58,7 @@ void pika_lvgl_canvas_set_buffer(PikaObj* self,
                                  int w,
                                  int h,
                                  int cf) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     if (arg_getType(buf) == ARG_TYPE_BYTES) {
         pika_debug("lv_canvas_set_buffer, buf: %p", arg_getBytes(buf));
         lv_canvas_set_buffer(lv_obj, arg_getBytes(buf), w, h, cf);
@@ -71,7 +72,7 @@ void pika_lvgl_canvas_set_buffer(PikaObj* self,
 }
 
 void pika_lvgl_canvas_set_palette(PikaObj* self, int id, PikaObj* c) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     lv_color_t* lv_color = obj_getPtr(c, "lv_color");
     lv_canvas_set_palette(lv_obj, id, *lv_color);
 }
@@ -81,7 +82,7 @@ void pika_lvgl_canvas_set_px(PikaObj* self,
                              int y,
                              PikaObj* color,
                              int opa) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     lv_color_t* lv_color = obj_getPtr(color, "lv_color");
     lv_canvas_set_px(lv_obj, x, y, *lv_color);
 }
@@ -95,7 +96,7 @@ void pika_lvgl_canvas_transform(PikaObj* self,
                                 int pivot_x,
                                 int pivot_y,
                                 PIKA_BOOL antialias) {
-    lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(self);
     lv_img_dsc_t* lv_img = obj_getPtr(img, "lv_img_dsc");
     lv_canvas_transform(lv_obj, lv_img, angle, zoom, offset_x, offset_y,
                         pivot_x, pivot_y, antialias);

+ 3 - 0
package/pika_lvgl/pika_lvgl_common.h

@@ -6,4 +6,7 @@
 #define PIKA_LVGL_THREAD_LOCK_ENABLE 0
 #endif
 
+#define PIKA_LV_OBJ(_) obj_getPtr(_, "lv_obj")
+#define PIKA_LV_OBJ_SET(_, v) obj_setPtr(_, "lv_obj", v)
+
 #endif

+ 5 - 4
package/pika_lvgl/pika_lvgl_indev_t.c

@@ -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"
@@ -9,6 +9,7 @@
 #include "pika_lvgl_indev_t.h"
 #include "pika_lvgl_lv_obj.h"
 #include "pika_lvgl_point_t.h"
+#include "pika_lvgl_common.h"
 
 /*
 class indev_t:
@@ -49,7 +50,7 @@ int pika_lvgl_indev_t_get_type(PikaObj* self) {
 
 void pika_lvgl_indev_t_reset(PikaObj* self, PikaObj* obj) {
     lv_indev_t* lv_indev = obj_getPtr(self, "lv_indev");
-    lv_obj_t* lv_obj = obj_getPtr(obj, "lv_obj");
+    lv_obj_t* lv_obj = PIKA_LV_OBJ(obj);
     lv_indev_reset(lv_indev, lv_obj);
 }
 
@@ -60,7 +61,7 @@ void pika_lvgl_indev_t_reset_long_press(PikaObj* self) {
 
 void pika_lvgl_indev_t_set_cursor(PikaObj* self, PikaObj* cur_obj) {
     lv_indev_t* lv_indev = obj_getPtr(self, "lv_indev");
-    lv_obj_t* lv_cur_obj = obj_getPtr(cur_obj, "lv_obj");
+    lv_obj_t* lv_cur_obj = PIKA_LV_OBJ(cur_obj);
     lv_indev_set_cursor(lv_indev, lv_cur_obj);
 }
 
@@ -99,7 +100,7 @@ PikaObj* pika_lvgl_indev_t_get_scroll_obj(PikaObj* self) {
     lv_indev_t* lv_indev = obj_getPtr(self, "lv_indev");
     lv_obj_t* lv_obj = lv_indev_get_scroll_obj(lv_indev);
     PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_obj);
-    obj_setPtr(new_obj, "lv_obj", lv_obj);
+    PIKA_LV_OBJ_SET(new_obj, lv_obj);
     return new_obj;
 }
 

+ 3 - 2
package/pika_lvgl/pika_lvgl_lv_event.c

@@ -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"
@@ -7,6 +7,7 @@
 #ifdef PIKASCRIPT
 
 #include "pika_lvgl_lv_event.h"
+#include "pika_lvgl_common.h"
 
 int pika_lvgl_lv_event_get_code(PikaObj* self) {
     lv_event_t* lv_event = obj_getPtr(self, "lv_event");
@@ -18,7 +19,7 @@ PikaObj* pika_lvgl_lv_event_get_target(PikaObj* self) {
     lv_event_t* lv_event = obj_getPtr(self, "lv_event");
     lv_obj_t* lv_obj = lv_event_get_target(lv_event);
     PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_obj);
-    obj_setPtr(new_obj, "lv_obj", lv_obj);
+    PIKA_LV_OBJ_SET(new_obj, lv_obj);
     return new_obj;
 }
 #endif

Diff do ficheiro suprimidas por serem muito extensas
+ 138 - 137
package/pika_lvgl/pika_lvgl_lv_obj.c


Diff do ficheiro suprimidas por serem muito extensas
+ 173 - 172
package/pika_lvgl/pika_lvgl_lv_wegit.c


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff