def btnm_event_handler(e, ta): obj = e.get_target() txt = obj.get_btn_text(obj.get_selected_btn()) if txt == lv.SYMBOL.BACKSPACE: ta.del_char() elif txt == lv.SYMBOL.NEW_LINE: lv.event_send(ta, lv.EVENT.READY, None) elif txt: ta.add_text(txt)
def controls_create(parent): lv.page.set_scrl_layout(lv.page.__cast__(parent), lv.LAYOUT.PRETTY_TOP) if LV_DEMO_WIDGETS_SLIDESHOW == 0: btns = ["Cancel", "Ok", ""] m = lv.msgbox(lv.scr_act(), None) m.add_btns(btns) btnm = lv.btnmatrix.__cast__(m.get_btnmatrix()) # print("type(btnm): ",type(btnm)) btnm.set_btn_ctrl(1, lv.btnmatrix.CTRL.CHECK_STATE) h = lv.cont(parent, None) h.set_layout(lv.LAYOUT.PRETTY_MID) h.add_style(lv.cont.PART.MAIN, style_box) h.set_drag_parent(True) h.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Basics") disp_size = display.get_size_category() if disp_size <= lv.DISP_SIZE.SMALL: grid_w = lv.page.get_width_grid(lv.page.__cast__(parent), 1, 1) # print("grid_w: ",grid_w) else: grid_w = lv.page.get_width_grid(lv.page.__cast__(parent), 2, 1) # print("grid_w: ",grid_w) h.set_fit2(lv.FIT.NONE, lv.FIT.TIGHT) h.set_width(grid_w) btn = lv.btn(h, None) btn.set_fit2(lv.FIT.NONE, lv.FIT.TIGHT) if disp_size <= lv.DISP_SIZE.SMALL: button_width = h.get_width_grid(1, 1) else: button_width = h.get_width_grid(2, 1) # print("button_width: %d"%button_width) btn.set_width(button_width) label = lv.label(btn, None) label.set_text("Button") btn = lv.btn(h, btn) btn.toggle() label = lv.label(btn, None) label.set_text("Button") lv.switch(h, None) lv.checkbox(h, None) fit_w = h.get_width_fit() slider = lv.slider(h, None) slider.set_value(40, lv.ANIM.OFF) slider.set_event_cb(slider_event_cb) slider.set_width_margin(fit_w) # Use the knobs style value the display the current value in focused state slider.set_style_local_margin_top(lv.slider.PART.BG, lv.STATE.DEFAULT, LV_DPX(25)) slider.set_style_local_value_font(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.theme_get_font_small()) slider.set_style_local_value_ofs_y(lv.slider.PART.KNOB, lv.STATE.FOCUSED, -LV_DPX(25)) slider.set_style_local_value_opa(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.OPA.TRANSP) slider.set_style_local_value_opa(lv.slider.PART.KNOB, lv.STATE.FOCUSED, lv.OPA.COVER) slider.set_style_local_transition_time(lv.slider.PART.KNOB, lv.STATE.DEFAULT, 300) slider.set_style_local_transition_prop_5(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.STYLE.VALUE_OFS_Y) slider.set_style_local_transition_prop_6(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.STYLE.VALUE_OPA) slider = lv.slider(h, None) slider.set_type(lv.slider.TYPE.RANGE) slider.set_value(70, lv.ANIM.OFF) slider.set_left_value(30, lv.ANIM.OFF) slider.set_style_local_value_ofs_y(lv.slider.PART.INDIC, lv.STATE.DEFAULT, -LV_DPX(25)) slider.set_style_local_value_font(lv.slider.PART.INDIC, lv.STATE.DEFAULT, lv.theme_get_font_small()) slider.set_style_local_value_opa(lv.slider.PART.INDIC, lv.STATE.DEFAULT, lv.OPA.COVER) slider.set_event_cb(slider_event_cb) lv.event_send(slider, lv.EVENT.VALUE_CHANGED, None) # To refresh the text if slider.get_width() > fit_w: slider.set_width(fit_w) h = lv.cont(parent, h) h.set_fit(lv.FIT.NONE) h.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Text input") ta = lv.textarea(h, None) lv.cont.set_fit2(h, lv.FIT.PARENT, lv.FIT.NONE) ta.set_text("") ta.set_placeholder_text("E-mail address") ta.set_one_line(True) ta.set_cursor_hidden(True) #lv_obj_set_event_cb(ta, ta_event_cb); ta = lv.textarea(h, ta) ta.set_pwd_mode(True) ta.set_placeholder_text("Password") ta = lv.textarea(h, None) lv.cont.set_fit2(h, lv.FIT.PARENT, lv.FIT.NONE) ta.set_text("") ta.set_placeholder_text("Message") ta.set_cursor_hidden(True) #lv_obj_set_event_cb(ta, ta_event_cb); lv.cont.set_fit4(h, lv.FIT.PARENT, lv.FIT.PARENT, lv.FIT.NONE, lv.FIT.PARENT)
intense = intense_slider.get_value() img1.set_style_img_recolor_opa(intense, 0) img1.set_style_img_recolor(color, 0) # # Demonstrate runtime image re-coloring # # Create 4 sliders to adjust RGB color and re-color intensity red_slider = create_slider(lv.palette_main(lv.PALETTE.RED)) green_slider = create_slider(lv.palette_main(lv.PALETTE.GREEN)) blue_slider = create_slider(lv.palette_main(lv.PALETTE.BLUE)) intense_slider = create_slider(lv.palette_main(lv.PALETTE.GREY)) red_slider.set_value(lv.OPA._20, lv.ANIM.OFF) green_slider.set_value(lv.OPA._90, lv.ANIM.OFF) blue_slider.set_value(lv.OPA._60, lv.ANIM.OFF) intense_slider.set_value(lv.OPA._50, lv.ANIM.OFF) red_slider.align(lv.ALIGN.LEFT_MID, 25, 0) green_slider.align_to(red_slider, lv.ALIGN.OUT_RIGHT_MID, 25, 0) blue_slider.align_to(green_slider, lv.ALIGN.OUT_RIGHT_MID, 25, 0) intense_slider.align_to(blue_slider, lv.ALIGN.OUT_RIGHT_MID, 25, 0) # Now create the actual image img1 = lv.img(lv.scr_act()) img1.set_src(img_cogwheel_argb) img1.align(lv.ALIGN.RIGHT_MID, -20, 0) lv.event_send(intense_slider, lv.EVENT.VALUE_CHANGED, None)
# # Translate the object as they scroll # cont = lv.obj(lv.scr_act()) cont.set_size(200, 200) cont.center() cont.set_flex_flow(lv.FLEX_FLOW.COLUMN) cont.add_event_cb(scroll_event_cb, lv.EVENT.SCROLL, None) cont.set_style_radius(lv.RADIUS.CIRCLE, 0) cont.set_style_clip_corner(True, 0) cont.set_scroll_dir(lv.DIR.VER) cont.set_scroll_snap_y(lv.SCROLL_SNAP.CENTER) cont.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) for i in range(20): btn = lv.btn(cont) btn.set_width(lv.pct(100)) label = lv.label(btn) label.set_text("Button " + str(i)) # Update the buttons position manually for first* lv.event_send(cont, lv.EVENT.SCROLL, None) # Be sure the fist button is in the middle #lv.obj.scroll_to_view(cont.get_child(0), lv.ANIM.OFF) cont.get_child(0).scroll_to_view(lv.ANIM.OFF)