arch(driver): new driver architecture with new color format support

This commit is contained in:
Gabor Kiss-Vamosi
2023-02-20 20:50:58 +01:00
parent df789ed3c7
commit 124f9b0f9f
425 changed files with 25232 additions and 24168 deletions

View File

@@ -49,19 +49,20 @@ void lv_demo_keypad_encoder(void)
g = lv_group_create();
lv_group_set_default(g);
lv_indev_t * cur_drv = NULL;
lv_indev_t * indev = NULL;
for(;;) {
cur_drv = lv_indev_get_next(cur_drv);
if(!cur_drv) {
indev = lv_indev_get_next(indev);
if(!indev) {
break;
}
if(cur_drv->driver->type == LV_INDEV_TYPE_KEYPAD) {
lv_indev_set_group(cur_drv, g);
lv_indev_type_t indev_type = lv_indev_get_type(indev);
if(indev_type == LV_INDEV_TYPE_KEYPAD) {
lv_indev_set_group(indev, g);
}
if(cur_drv->driver->type == LV_INDEV_TYPE_ENCODER) {
lv_indev_set_group(cur_drv, g);
if(indev_type == LV_INDEV_TYPE_ENCODER) {
lv_indev_set_group(indev, g);
}
}
@@ -155,15 +156,15 @@ static void text_input_create(lv_obj_t * parent)
lv_obj_t * kb = lv_keyboard_create(lv_scr_act());
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_event_cb(ta1, ta_event_cb, LV_EVENT_ALL, kb);
lv_obj_add_event_cb(ta2, ta_event_cb, LV_EVENT_ALL, kb);
lv_obj_add_event(ta1, ta_event_cb, LV_EVENT_ALL, kb);
lv_obj_add_event(ta2, ta_event_cb, LV_EVENT_ALL, kb);
}
static void msgbox_create(void)
{
static const char * btns[] = {"Ok", "Cancel", ""};
lv_obj_t * mbox = lv_msgbox_create(NULL, "Hi", "Welcome to the keyboard and encoder demo", btns, false);
lv_obj_add_event_cb(mbox, msgbox_event_cb, LV_EVENT_ALL, NULL);
lv_obj_add_event(mbox, msgbox_event_cb, LV_EVENT_ALL, NULL);
lv_group_focus_obj(lv_msgbox_get_btns(mbox));
lv_obj_add_state(lv_msgbox_get_btns(mbox), LV_STATE_FOCUS_KEY);
lv_group_focus_freeze(g, true);

View File

@@ -1,7 +1,5 @@
class KeyboardEncoder:
def __init__(self):
self.LV_VER_RES = lv.scr_act().get_disp().driver.ver_res
print("vertial size: ",self.LV_VER_RES)
self.g = lv.group_create()
self.g.set_default()
@@ -11,10 +9,10 @@ class KeyboardEncoder:
if not cur_drv :
break
if cur_drv.driver.type == lv.INDEV_TYPE.KEYPAD:
if cur_drv.get_type() == lv.INDEV_TYPE.KEYPAD:
print("Found keypad")
cur_drv.set_group(self.g)
if cur_drv.driver.type == lv.INDEV_TYPE.ENCODER:
if cur_drv.get_type() == lv.INDEV_TYPE.ENCODER:
print("Found encoder")
cur_drv.set_group(self.g)
@@ -27,7 +25,7 @@ class KeyboardEncoder:
self.text_input_create(self.t2)
self.msgbox_create()
def selectors_create(self,parent):
parent.set_flex_flow(lv.FLEX_FLOW.COLUMN)
parent.set_flex_align(lv.FLEX_ALIGN.START, lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.CENTER)
@@ -42,36 +40,36 @@ class KeyboardEncoder:
obj.set_cell_value(3, 0, "30")
obj.set_cell_value(3, 1, "31")
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.calendar(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.btnmatrix(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.checkbox(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS);
obj = lv.slider(parent)
obj.set_range(0, 10)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.switch(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.spinbox(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.dropdown(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
obj = lv.roller(parent)
obj.add_flag(lv.obj.FLAG.SCROLL_ON_FOCUS)
list = lv.list(parent)
list.update_layout()
if list.get_height() > parent.get_content_height() :
list.set_height(parent.get_content_height())
list.add_btn(lv.SYMBOL.OK, "Apply")
list.add_btn(lv.SYMBOL.CLOSE, "Close")
list.add_btn(lv.SYMBOL.EYE_OPEN, "Show")
@@ -79,7 +77,7 @@ class KeyboardEncoder:
list.add_btn(lv.SYMBOL.TRASH, "Delete")
list.add_btn(lv.SYMBOL.COPY, "Copy")
list.add_btn(lv.SYMBOL.PASTE, "Paste")
def text_input_create(self,parent) :
parent.set_flex_flow(lv.FLEX_FLOW.COLUMN)
@@ -88,40 +86,40 @@ class KeyboardEncoder:
ta1.set_width(lv.pct(100))
ta1.set_one_line(True)
ta1.set_placeholder_text("Click with an encoder to show a keyboard")
ta2 = lv.textarea(parent)
ta2.set_width(lv.pct(100))
ta2.set_one_line(True)
ta2.set_placeholder_text("Type something")
self.kb = lv.keyboard(lv.scr_act())
self.kb.add_flag(lv.obj.FLAG.HIDDEN)
ta1.add_event_cb(self.ta_event_cb, lv.EVENT.ALL, None)
ta2.add_event_cb(self.ta_event_cb, lv.EVENT.ALL, None)
ta1.add_event(self.ta_event_cb, lv.EVENT.ALL, None)
ta2.add_event(self.ta_event_cb, lv.EVENT.ALL, None)
def msgbox_create(self):
btns = ["Ok", "Cancel", ""]
mbox = lv.msgbox(None, "Hi", "Welcome to the keyboard and encoder demo", btns, False)
mbox.add_event_cb(self.msgbox_event_cb, lv.EVENT.ALL, None)
mbox.add_event(self.msgbox_event_cb, lv.EVENT.ALL, None)
lv.group_focus_obj(mbox.get_btns())
mbox.get_btns().add_state(lv.STATE.FOCUS_KEY)
self.g.focus_freeze(True)
mbox.align(lv.ALIGN.CENTER, 0, 0)
bg = mbox.get_parent()
bg.set_style_bg_opa(lv.OPA._70, 0)
bg.set_style_bg_color(lv.palette_main(lv.PALETTE.GREY), 0)
def msgbox_event_cb(self,e):
code = e.get_code();
msgbox = e.get_current_target()
if code == lv.EVENT.VALUE_CHANGED:
txt = msgbox.get_active_btn_text()
if txt:
@@ -138,19 +136,19 @@ class KeyboardEncoder:
indev_type = indev.get_type()
code = e.get_code()
ta = e.get_target()
ta = e.get_target_obj()
if code == lv.EVENT.CLICKED and indev_type == lv.INDEV_TYPE.ENCODER:
self.kb.set_textarea(ta)
self.kb.clear_flag(lv.obj.FLAG.HIDDEN)
self.kb.group_focus_obj()
self.kb.get_group().set_editing()
self.tv.set_height(LV_VER_RES // 2)
self.tv.set_height(lv.pct(50))
lv_obj_align(kb, LV_ALIGN_BOTTOM_MID, 0, 0);
if code == lv.EVENT.READY or code == lv.EVENT.CANCEL:
self.kb.add_flag(lv.obj.FLAG.HIDDEN)
self.tv.set_height(self.LV_VER_RES)
self.tv.set_height(lv.pct(100))
keyboard_encoder = KeyboardEncoder()