Skip to content

Commit

Permalink
improve lvgl, tested on ac5 ,fix mutex port on FreeRTOS
Browse files Browse the repository at this point in the history
  • Loading branch information
pikasTech committed Jan 3, 2024
1 parent 89f46e6 commit bef27d8
Show file tree
Hide file tree
Showing 6 changed files with 295 additions and 73 deletions.
2 changes: 2 additions & 0 deletions package/pika_lvgl/pika_lvgl.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,9 @@ PikaObj* pika_lvgl_scr_act(PikaObj* self) {
return new_obj;
}

void user_lvgl_init(void);
void pika_lvgl___init__(PikaObj* self) {
user_lvgl_init();
if (!lv_is_initialized()) {
pika_debug("Error: lvgl is not initialized");
return;
Expand Down
88 changes: 79 additions & 9 deletions package/pika_lvgl/pika_lvgl.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from tkinter import HIDDEN
from tkinter import HIDDEN
from PikaObj import *


Expand Down Expand Up @@ -553,7 +553,7 @@ class lv_obj:
def set_style_bg_grad_stop(self, value: int, selector: int): ...
# def set_style_bg_grad(self, value: lv_grad_dsc_t, selector: int): ...
def set_style_bg_dither_mode(self, value: int, selector: int): ...
def set_style_bg_img_src(self, value: bytes, selector: int): ...
# def set_style_bg_img_src(self, value: bytes, selector: int): ...
def set_style_bg_img_opa(self, value: int, selector: int): ...
def set_style_bg_img_recolor(self, value: lv_color_t, selector: int): ...
def set_style_bg_img_recolor_opa(self, value: int, selector: int): ...
Expand Down Expand Up @@ -586,7 +586,7 @@ class lv_obj:
def set_style_arc_rounded(self, value: int, selector: int): ...
def set_style_arc_color(self, value: lv_color_t, selector: int): ...
def set_style_arc_opa(self, value: int, selector: int): ...
def set_style_arc_img_src(self, value: bytes, selector: int): ...
# def set_style_arc_img_src(self, value: bytes, selector: int): ...
def set_style_text_color(self, value: lv_color_t, selector: int): ...
def set_style_text_opa(self, value: int, selector: int): ...
# def set_style_text_font(self, value: lv_font_t, selector: int): ...
Expand All @@ -599,7 +599,7 @@ class lv_obj:
def set_style_opa(self, value: int, selector: int): ...
# def set_style_color_filter_dsc(self, value: lv_color_filter_dsc_t, selector: int): ...
def set_style_color_filter_opa(self, value: int, selector: int): ...
def set_style_anim(self, value: int, selector: int): ...
# def set_style_anim(self, value: int, selector: int): ...
def set_style_anim_time(self, value: int, selector: int): ...
def set_style_anim_speed(self, value: int, selector: int): ...
# def set_style_transition(self, value: lv_style_transition_dsc_t, selector: int): ...
Expand Down Expand Up @@ -685,9 +685,9 @@ class indev_t:
def get_scroll_obj(self) -> lv_obj: ...
def get_vect(self, point: point_t): ...
def wait_release(self): ...
def get_obj_act(self) -> lv_obj: ...
# def get_obj_act(self) -> lv_obj: ...
# def get_read_timer(self) -> lv_timer: ...
def search_obj(self, obj: lv_obj, point: point_t) -> lv_obj: ...
# def search_obj(self, obj: lv_obj, point: point_t) -> lv_obj: ...


class FLEX_ALIGN:
Expand Down Expand Up @@ -879,9 +879,79 @@ class img(lv_obj):
def get_size_mode(self) -> int: ...


"""
lv_obj_t * lv_textarea_create(lv_obj_t * parent);
void lv_textarea_add_char(lv_obj_t * obj, uint32_t c);
void lv_textarea_add_text(lv_obj_t * obj, const char * txt);
void lv_textarea_del_char(lv_obj_t * obj);
void lv_textarea_del_char_forward(lv_obj_t * obj);
void lv_textarea_set_text(lv_obj_t * obj, const char * txt);
void lv_textarea_set_placeholder_text(lv_obj_t * obj, const char * txt);
void lv_textarea_set_cursor_pos(lv_obj_t * obj, int32_t pos);
void lv_textarea_set_cursor_click_pos(lv_obj_t * obj, bool en);
void lv_textarea_set_password_mode(lv_obj_t * obj, bool en);
void lv_textarea_set_one_line(lv_obj_t * obj, bool en);
void lv_textarea_set_accepted_chars(lv_obj_t * obj, const char * list);
void lv_textarea_set_max_length(lv_obj_t * obj, uint32_t num);
void lv_textarea_set_insert_replace(lv_obj_t * obj, const char * txt);
void lv_textarea_set_text_selection(lv_obj_t * obj, bool en);
void lv_textarea_set_password_show_time(lv_obj_t * obj, uint16_t time);
void lv_textarea_set_align(lv_obj_t * obj, lv_text_align_t align);
const char * lv_textarea_get_text(const lv_obj_t * obj);
const char * lv_textarea_get_placeholder_text(const lv_obj_t * obj);
lv_obj_t * lv_textarea_get_label(const lv_obj_t * obj);
uint32_t lv_textarea_get_cursor_pos(const lv_obj_t * obj);
bool lv_textarea_get_cursor_click_pos(lv_obj_t * obj);
bool lv_textarea_get_password_mode(const lv_obj_t * obj);
bool lv_textarea_get_one_line(const lv_obj_t * obj);
const char * lv_textarea_get_accepted_chars(const lv_obj_t * obj);
uint32_t lv_textarea_get_max_length(const lv_obj_t * obj);
bool lv_textarea_text_is_selected(const lv_obj_t * obj);
bool lv_textarea_get_text_selection(const lv_obj_t * obj);
uint16_t lv_textarea_get_password_show_time(const lv_obj_t * obj);
void lv_textarea_clear_selection(const lv_obj_t * obj);
void lv_textarea_cursor_right(const lv_obj_t * obj);
void lv_textarea_cursor_left(const lv_obj_t * obj);
void lv_textarea_cursor_down(const lv_obj_t * obj);
void lv_textarea_cursor_up(const lv_obj_t * obj);
"""


class textarea(lv_obj):
def __init__(self, parent: lv_obj): ...
def set_one_line(en: int): ...
def add_char(self, c: int): ...
def add_text(self, txt: str): ...
def del_char(self): ...
def del_char_forward(self): ...
def set_text(self, txt: str): ...
def set_placeholder_text(self, txt: str): ...
def set_cursor_pos(self, pos: int): ...
def set_cursor_click_pos(self, en: int): ...
def set_password_mode(self, en: int): ...
def set_one_line(self, en: int): ...
def set_accepted_chars(self, list: str): ...
def set_max_length(self, num: int): ...
def set_insert_replace(self, txt: str): ...
def set_text_selection(self, en: int): ...
def set_password_show_time(self, time: int): ...
def set_align(self, align: int): ...
def get_text(self) -> str: ...
def get_placeholder_text(self) -> str: ...
def get_label(self) -> lv_obj: ...
def get_cursor_pos(self) -> int: ...
def get_cursor_click_pos(self) -> int: ...
def get_password_mode(self) -> int: ...
def get_one_line(self) -> int: ...
def get_accepted_chars(self) -> str: ...
def get_max_length(self) -> int: ...
def text_is_selected(self) -> int: ...
def get_text_selection(self) -> int: ...
def get_password_show_time(self) -> int: ...
def clear_selection(self): ...
def cursor_right(self): ...
def cursor_left(self): ...
def cursor_down(self): ...
def cursor_up(self): ...


class canvas(lv_obj):
Expand Down Expand Up @@ -1188,7 +1258,7 @@ class meter(lv_obj):
def add_needle_line(self, scale: meter_scale_t, width: int,
color: lv_color_t, r_mod: int) -> meter_indicator_t: ...

def add_needle_img(self, scale: meter_scale_t, src: any,
# def add_needle_img(self, scale: meter_scale_t, src: any,
pivot_x: int, pivot_y: int) -> meter_indicator_t: ...

def add_arc(self, scale: meter_scale_t, width: int, color: lv_color_t,
Expand Down Expand Up @@ -1268,7 +1338,7 @@ class keyboard(lv_obj):
# def get_popovers(self) -> int: ...
# def get_map_array(self) -> any: ...
def get_selected_btn(self) -> int: ...
def get_btn_text(self, btn_id: int) -> str: ...
# def get_btn_text(self, btn_id: int) -> str: ...


def scr_act() -> lv_obj: ...
Expand Down
18 changes: 1 addition & 17 deletions package/pika_lvgl/pika_lvgl_indev_t.c
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -116,21 +116,5 @@ void pika_lvgl_indev_t_wait_release(PikaObj* self) {
lv_indev_wait_release(lv_indev);
}

PikaObj* pika_lvgl_indev_t_get_obj_act(PikaObj* self, PikaObj* obj) {
lv_indev_t* lv_indev = obj_getPtr(self, "lv_indev");
lv_obj_t* lv_obj = lv_indev_get_obj_act(lv_indev);
PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_obj);
obj_setPtr(new_obj, "lv_obj", lv_obj);
return new_obj;
}

PikaObj* pika_lvgl_indev_t_search_obj(PikaObj* self, PikaObj* point) {
lv_indev_t* lv_indev = obj_getPtr(self, "lv_indev");
lv_point_t* lv_point = obj_getPtr(point, "lv_point");
lv_obj_t* lv_obj = lv_indev_search_obj(lv_indev, lv_point);
PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_obj);
obj_setPtr(new_obj, "lv_obj", lv_obj);
return new_obj;
}

#endif
26 changes: 2 additions & 24 deletions package/pika_lvgl/pika_lvgl_lv_obj.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ static void __pika_event_cb(lv_event_t* e) {
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)");
// obj_run(event_handler, "_event_cb(_event_evt)");
obj_runMethod1(event_handler, "_event_cb", arg_copy(obj_getArg(event_handler, "_event_evt")));
}

void eventListener_registEvent(PikaObj* self,
Expand Down Expand Up @@ -842,14 +843,6 @@ void pika_lvgl_lv_obj_set_style_bg_dither_mode(PikaObj* self,
lv_obj_set_style_bg_dither_mode(lv_obj, value, selector);
}

void pika_lvgl_lv_obj_set_style_bg_img_src(PikaObj* self,
PikaObj* value,
int selector) {
lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
lv_img_dsc_t* lv_img_dsc = obj_getPtr(value, "lv_img_dsc");
lv_obj_set_style_bg_img_src(lv_obj, lv_img_dsc, selector);
}

void pika_lvgl_lv_obj_set_style_bg_img_opa(PikaObj* self,
int value,
int selector) {
Expand Down Expand Up @@ -1081,13 +1074,6 @@ void pika_lvgl_lv_obj_set_style_arc_opa(PikaObj* self,
lv_obj_set_style_arc_opa(lv_obj, value, selector);
}

void pika_lvgl_lv_obj_set_style_arc_img_src(PikaObj* self,
PikaObj* value,
int selector) {
lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
lv_img_dsc_t* lv_img_dsc = obj_getPtr(value, "lv_img_dsc");
lv_obj_set_style_arc_img_src(lv_obj, lv_img_dsc, selector);
}

void pika_lvgl_lv_obj_set_style_text_color(PikaObj* self,
PikaObj* value,
Expand Down Expand Up @@ -1173,14 +1159,6 @@ void pika_lvgl_lv_obj_set_style_color_filter_opa(PikaObj* self,
lv_obj_set_style_color_filter_opa(lv_obj, value, selector);
}

void pika_lvgl_lv_obj_set_style_anim(PikaObj* self,
PikaObj* value,
int selector) {
lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
lv_anim_t* lv_anim = obj_getPtr(value, "lv_anim");
lv_obj_set_style_anim(lv_obj, lv_anim, selector);
}

void pika_lvgl_lv_obj_set_style_anim_time(PikaObj* self,
int value,
int selector) {
Expand Down
Loading

0 comments on commit bef27d8

Please sign in to comment.