| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # Will be called when the styles of the base theme are already added
- # to add new styles
- class NewTheme(lv.theme_t):
- def __init__(self):
- super().__init__()
- # Initialize the styles
- self.style_btn = lv.style_t()
- self.style_btn.init()
- self.style_btn.set_bg_color(lv.palette_main(lv.PALETTE.GREEN))
- self.style_btn.set_border_color(lv.palette_darken(lv.PALETTE.GREEN, 3))
- self.style_btn.set_border_width(3)
- # This theme is based on active theme
- th_act = lv.theme_get_from_obj(lv.scr_act())
- # This theme will be applied only after base theme is applied
- self.set_parent(th_act)
- class ExampleStyle_14:
- def __init__(self):
- #
- # Extending the current theme
- #
- btn = lv.btn(lv.scr_act())
- btn.align(lv.ALIGN.TOP_MID, 0, 20)
- label = lv.label(btn)
- label.set_text("Original theme")
- self.new_theme_init_and_set()
- btn = lv.btn(lv.scr_act())
- btn.align(lv.ALIGN.BOTTOM_MID, 0, -20)
- label = lv.label(btn)
- label.set_text("New theme")
- def new_theme_apply_cb(self, th, obj):
- print(th,obj)
- if obj.get_class() == lv.btn_class:
- obj.add_style(self.th_new.style_btn, 0)
- def new_theme_init_and_set(self):
- print("new_theme_init_and_set")
- # Initialize the new theme from the current theme
- self.th_new = NewTheme()
- self.th_new.set_apply_cb(self.new_theme_apply_cb)
- lv.disp_get_default().set_theme(self.th_new)
- exampleStyle_14 = ExampleStyle_14()
|