mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-15 17:02:53 +08:00
support style for lvgl
This commit is contained in:
parent
551e688675
commit
61ddc402ff
24
examples/lvgl/lv_style1.py
Normal file
24
examples/lvgl/lv_style1.py
Normal file
@ -0,0 +1,24 @@
|
||||
import pika_lvgl as lv
|
||||
import PikaStdLib
|
||||
mem = PikaStdLib.MemChecker()
|
||||
|
||||
style = lv.style_t()
|
||||
style.init()
|
||||
|
||||
# Set a background color and a radius
|
||||
style.set_radius(5)
|
||||
style.set_bg_opa(lv.OPA.COVER)
|
||||
style.set_bg_color(lv.palette_lighten(lv.PALETTE.GREY, 1))
|
||||
|
||||
# Add outline
|
||||
style.set_outline_width(2)
|
||||
style.set_outline_color(lv.palette_main(lv.PALETTE.BLUE))
|
||||
style.set_outline_pad(8)
|
||||
|
||||
# Create an object with the new style
|
||||
obj = lv.obj(lv.scr_act())
|
||||
obj.add_style(style, 0)
|
||||
obj.center()
|
||||
|
||||
print('mem used max: %0.2f kB' % (mem.getMax()))
|
||||
print('mem used now: %0.2f kB' % (mem.getNow()))
|
@ -2,6 +2,7 @@
|
||||
#include "BaseObj.h"
|
||||
#include "lvgl.h"
|
||||
#include "pika_lvgl_arc.h"
|
||||
#include "pika_lvgl_lv_color_t.h"
|
||||
#include "pika_lvgl_lv_obj.h"
|
||||
|
||||
PikaObj* pika_lv_event_listener_g;
|
||||
@ -129,6 +130,10 @@ void pika_lvgl___init__(PikaObj* self) {
|
||||
obj_setInt(self, "EVENT.LAYOUT_CHANGED", LV_EVENT_LAYOUT_CHANGED);
|
||||
obj_setInt(self, "EVENT.GET_SELF_SIZE", LV_EVENT_GET_SELF_SIZE);
|
||||
obj_setInt(self, "EVENT.PREPROCESS", LV_EVENT_PREPROCESS);
|
||||
|
||||
obj_newDirectObj(self, "OPA", New_TinyObj);
|
||||
obj_setInt(self, "OPA.TRANSP", LV_OPA_TRANSP);
|
||||
obj_setInt(self, "OPA.COVER", LV_OPA_COVER);
|
||||
}
|
||||
|
||||
PikaObj* pika_lvgl_obj(PikaObj* self, PikaObj* parent) {
|
||||
@ -138,3 +143,21 @@ PikaObj* pika_lvgl_obj(PikaObj* self, PikaObj* parent) {
|
||||
obj_setPtr(new_obj, "lv_obj", lv_obj);
|
||||
return new_obj;
|
||||
}
|
||||
|
||||
PikaObj* pika_lvgl_palette_lighten(PikaObj* self, int lvl, int p) {
|
||||
PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_color_t);
|
||||
lv_color_t lv_color = lv_palette_lighten(p, lvl);
|
||||
args_setStruct(new_obj->list, "lv_color_struct", lv_color);
|
||||
lv_color_t* plv_color = args_getStruct(new_obj->list, "lv_color_struct");
|
||||
obj_setPtr(new_obj, "lv_color",plv_color);
|
||||
return new_obj;
|
||||
}
|
||||
|
||||
PikaObj* pika_lvgl_palette_main(PikaObj* self, int p) {
|
||||
PikaObj* new_obj = newNormalObj(New_pika_lvgl_lv_color_t);
|
||||
lv_color_t lv_color = lv_palette_main(p);
|
||||
args_setStruct(new_obj->list, "lv_color_struct", lv_color);
|
||||
obj_setPtr(new_obj, "lv_color",
|
||||
args_getStruct(new_obj->list, "lv_color_struct"));
|
||||
return new_obj;
|
||||
}
|
||||
|
@ -101,6 +101,11 @@ class PALETTE:
|
||||
NONE: int
|
||||
|
||||
|
||||
class OPA:
|
||||
TRANSP: int
|
||||
COVER: int
|
||||
|
||||
|
||||
class ANIM:
|
||||
OFF: int
|
||||
ON: int
|
||||
@ -110,6 +115,25 @@ class lv_event(TinyObj):
|
||||
def get_code(self) -> int: ...
|
||||
|
||||
|
||||
class lv_color_t(TinyObj):
|
||||
...
|
||||
|
||||
|
||||
def palette_lighten(p: int, lvl: int) -> lv_color_t: ...
|
||||
def palette_main(p: int) -> lv_color_t: ...
|
||||
|
||||
|
||||
class style_t(TinyObj):
|
||||
def __init__(self): ...
|
||||
def init(self): ...
|
||||
def set_radius(self, radius: int): ...
|
||||
def set_bg_opa(self, opa: int): ...
|
||||
def set_bg_color(self, color: lv_color_t): ...
|
||||
def set_outline_width(self, w: int): ...
|
||||
def set_outline_color(self, color: lv_color_t): ...
|
||||
def set_outline_pad(self, pad: int): ...
|
||||
|
||||
|
||||
class lv_obj(TinyObj):
|
||||
def center(self): ...
|
||||
def set_size(self, size_x: int, size_y: int): ...
|
||||
@ -119,6 +143,7 @@ class lv_obj(TinyObj):
|
||||
def set_width(self, w: int): ...
|
||||
def add_state(self, state: int): ...
|
||||
def add_event_cb(self, event_cb: any, filter: int, user_data: pointer): ...
|
||||
def add_style(self, style: style_t, selector: int): ...
|
||||
|
||||
|
||||
def obj(parent: lv_obj) -> lv_obj: ...
|
||||
|
@ -91,3 +91,9 @@ void pika_lvgl_lv_obj_add_event_cb(PikaObj* self,
|
||||
obj_newDirectObj(self, "_event_evt", New_pika_lvgl_lv_event);
|
||||
eventLicener_registEvent(pika_lv_event_listener_g, (uintptr_t)lv_obj, self);
|
||||
}
|
||||
|
||||
void pika_lvgl_lv_obj_add_style(PikaObj* self, int selector, PikaObj* style) {
|
||||
lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj");
|
||||
lv_state_t* lv_style = obj_getPtr(style, "lv_style");
|
||||
lv_obj_add_style(lv_obj, lv_style, selector);
|
||||
}
|
||||
|
46
package/pika_lvgl/pika_lvgl_lv_style_t.c
Normal file
46
package/pika_lvgl/pika_lvgl_lv_style_t.c
Normal file
@ -0,0 +1,46 @@
|
||||
#include "lvgl.h"
|
||||
#include "pika_lvgl_style_t.h"
|
||||
|
||||
void pika_lvgl_style_t_init(PikaObj* self) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_style_init(lv_style);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_bg_color(PikaObj* self, PikaObj* color) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_color_t* lv_color = obj_getPtr(color, "lv_color");
|
||||
lv_style_set_bg_color(lv_style, *lv_color);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_bg_opa(PikaObj* self, int opa) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_style_set_bg_opa(lv_style, opa);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_outline_color(PikaObj* self, PikaObj* color) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_color_t* lv_color = obj_getPtr(color, "lv_color");
|
||||
lv_style_set_outline_color(lv_style, *lv_color);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_outline_pad(PikaObj* self, int pad) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_style_set_outline_pad(lv_style, pad);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_outline_width(PikaObj* self, int w) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_style_set_outline_width(lv_style, w);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t_set_radius(PikaObj* self, int radius) {
|
||||
lv_style_t* lv_style = obj_getPtr(self, "lv_style");
|
||||
lv_style_set_radius(lv_style, radius);
|
||||
}
|
||||
|
||||
void pika_lvgl_style_t___init__(PikaObj* self) {
|
||||
lv_style_t lv_style_stack = {0};
|
||||
args_setStruct(self->list, "lv_style_struct", lv_style_stack);
|
||||
lv_style_t* lv_style = args_getStruct(self->list, "lv_style_struct");
|
||||
obj_setPtr(self, "lv_style", lv_style);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user