style.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. module(...,package.seeall)
  2. require "sys"
  3. sw = nil
  4. local function sw_on()
  5. lvgl.sw_on(sw, lvgl.ANIM_ON)
  6. end
  7. local function sw_off()
  8. lvgl.sw_off(sw, lvgl.ANIM_ON)
  9. end
  10. local function sw_toggle(on)
  11. if on then
  12. sw_on()
  13. else
  14. sw_off()
  15. end
  16. sys.timerStart(sw_toggle, 1000, not on)
  17. end
  18. function create()
  19. scr = lvgl.cont_create(nil, nil)
  20. bg_style = lvgl.style_t()
  21. indic_style = lvgl.style_t()
  22. knob_on_style = lvgl.style_t()
  23. knob_off_style = lvgl.style_t()
  24. lvgl.style_copy(bg_style, lvgl.style_pretty)
  25. bg_style.body.radius = lvgl.RADIUS_CIRCLE
  26. bg_style.body.padding.top = 6
  27. bg_style.body.padding.bottom = 6
  28. lvgl.style_copy(indic_style, lvgl.style_pretty_color)
  29. indic_style.body.radius = lvgl.RADIUS_CIRCLE
  30. indic_style.body.main_color = lvgl.color_hex(0x9fc8ef)
  31. indic_style.body.grad_color = lvgl.color_hex(0x9fc8ef)
  32. indic_style.body.padding.left = 0
  33. indic_style.body.padding.right = 0
  34. indic_style.body.padding.top = 0
  35. indic_style.body.padding.bottom = 0
  36. lvgl.style_copy(knob_off_style, lvgl.style_pretty_color)
  37. knob_off_style.body.radius = lvgl.RADIUS_CIRCLE
  38. knob_off_style.body.shadow.width = 4
  39. knob_off_style.body.shadow.type = lvgl.SHADOW_BOTTOM
  40. lvgl.style_copy(knob_on_style, lvgl.style_pretty_color)
  41. knob_on_style.body.radius = lvgl.RADIUS_CIRCLE
  42. knob_on_style.body.shadow.width = 4
  43. knob_on_style.body.shadow.type = lvgl.SHADOW_BOTTOM
  44. sw = lvgl.sw_create(scr, nil)
  45. lvgl.obj_align(sw, nil, lvgl.ALIGN_CENTER, 0, 0)
  46. lvgl.sw_set_style(sw, lvgl.SW_STYLE_BG, bg_style)
  47. lvgl.sw_set_style(sw, lvgl.SW_STYLE_INDIC, indic_style)
  48. lvgl.sw_set_style(sw, lvgl.SW_STYLE_KNOB_ON, knob_on_style)
  49. lvgl.sw_set_style(sw, lvgl.SW_STYLE_KNOB_OFF, knob_off_style)
  50. label = lvgl.label_create(scr, nil)
  51. lvgl.label_set_text(label, "开关")
  52. lvgl.obj_align(label, sw, lvgl.ALIGN_OUT_BOTTOM_MID, 0, 2)
  53. sys.timerStart(sw_toggle, 1000, true)
  54. return scr
  55. end
  56. -- lvgl.init(create, nil)