From e321348bad0ebcf9a2129c7a141d789102fe33ee Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Sat, 19 Apr 2025 01:44:44 +0200 Subject: [PATCH] Trying drawers --- appstore.mpy | 51 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/appstore.mpy b/appstore.mpy index 10101338..86d8ff0a 100644 --- a/appstore.mpy +++ b/appstore.mpy @@ -350,15 +350,18 @@ def handle_gesture(pin): - def create_drawer(): + print('-1') global drawer,wifi_screen + print('0') drawer=lv.obj(lv.screen_active()) + print('1') drawer.set_size(TFT_HOR_RES,TFT_VER_RES-NOTIFICATION_BAR_HEIGHT) - drawer.set_pos(0,NOTIFICATION_BAR_HEIGHT) + print('2') + drawer.set_pos(0,-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT) + print('3') drawer.set_style_bg_color(COLOR_DRAWER_BG,0) - //drawer.clear_flag(lv.OBJ_FLAG.SCROLLABLE) - drawer.add_flag(lv.OBJ_FLAG.HIDDEN) + drawer.set_scroll_dir(lv.DIR.NONE) slider=lv.slider(drawer) slider.set_range(SLIDER_MIN_VALUE,SLIDER_MAX_VALUE) slider.set_value(SLIDER_DEFAULT_VALUE,False) @@ -367,17 +370,22 @@ def create_drawer(): slider.set_style_bg_color(COLOR_SLIDER_BG,lv.PART.MAIN) slider.set_style_bg_color(COLOR_SLIDER_INDICATOR,lv.PART.INDICATOR) slider.set_style_bg_color(COLOR_SLIDER_KNOB,lv.PART.KNOB) + print('4') slider_label=lv.label(drawer) slider_label.set_text("80%") slider_label.set_style_text_color(COLOR_TEXT_WHITE,0) slider_label.align_to(slider,lv.ALIGN.OUT_TOP_MID,0,-5) + print('5') + # works here def slider_event(e): slider=e.get_target() label=e.get_user_data() value=slider.get_value() label.set_text(f"{value}%") display.set_backlight(value) - slider.add_event_cb(slider_event,lv.EVENT.VALUE_CHANGED,slider_label) + # this crashes it: slider.add_event_cb(slider_event,lv.EVENT.VALUE_CHANGED,slider_label) + +def add_later(): wifi_btn=lv.btn(drawer) wifi_btn.set_size(BUTTON_WIDTH,BUTTON_HEIGHT) wifi_btn.align(lv.ALIGN.TOP_LEFT,PADDING_SMALL,DRAWER_BUTTON_Y_OFFSET) @@ -388,8 +396,8 @@ def create_drawer(): wifi_label.set_style_text_color(COLOR_DRAWER_BUTTONTEXT,0) def wifi_event(e): global drawer_open - //wifi_screen.clear_flag(lv.OBJ_FLAG.HIDDEN) - drawer.add_flag(lv.OBJ_FLAG.HIDDEN) + wifi_screen.set_y(0) + drawer.set_y(-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT) drawer_open=False wifi_btn.add_event_cb(wifi_event,lv.EVENT.CLICKED,None) settings_btn=lv.btn(drawer) @@ -400,42 +408,45 @@ def create_drawer(): settings_label.set_text(lv.SYMBOL.SETTINGS+" Settings") settings_label.center() settings_label.set_style_text_color(COLOR_DRAWER_BUTTONTEXT,0) + print('40') def settings_event(e): global drawer_open - drawer.add_flag(lv.OBJ_FLAG.HIDDEN) + drawer.set_y(-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT) drawer_open=False settings_btn.add_event_cb(settings_event,lv.EVENT.CLICKED,None) + def open_drawer(): global drawer_open if not drawer_open: - drawer.clear_flag(lv.OBJ_FLAG.HIDDEN) + print('opening') a=lv.anim_t() a.init() a.set_var(drawer) a.set_values(-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT,NOTIFICATION_BAR_HEIGHT) a.set_time(DRAWER_ANIM_DURATION) - a.set_path_cb(lv.anim_path_ease_in_out) + #a.set_path_cb(lv.anim_path_ease_in_out) a.set_exec_cb(lambda a,value:drawer.set_y(value)) a.start() drawer_open=True + def close_drawer(): global drawer_open if drawer_open: - a=lv.anim_t() - a.init() - a.set_var(drawer) - a.set_values(NOTIFICATION_BAR_HEIGHT,-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT) - a.set_time(DRAWER_ANIM_DURATION) - a.set_path_cb(lv.anim_path_ease_in_out) - a.set_exec_cb(lambda a,value:drawer.set_y(value)) - a.set_completed_cb(lambda a:drawer.add_flag(lv.OBJ_FLAG.HIDDEN)) - a.start() + print('closing') + #a=lv.anim_t() + #a.init() + #a.set_var(drawer) + #a.set_values(NOTIFICATION_BAR_HEIGHT,-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT) + #a.set_time(DRAWER_ANIM_DURATION) + #a.set_path_cb(lv.anim_path_ease_in_out) + #a.set_exec_cb(lambda a,value:drawer.set_y(value)) + #a.set_completed_cb(lambda a:drawer.set_y(-TFT_VER_RES+NOTIFICATION_BAR_HEIGHT)) + #a.start() drawer_open=False - irq_pin.irq(trigger=machine.Pin.IRQ_FALLING,handler=handle_gesture) create_drawer()