main.lua 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. --[[
  2. @module lvgl
  3. @summary button_counter_demo
  4. @author Dozingfiretruck
  5. @version 1.0
  6. @date 2021.07.12
  7. ]]
  8. _G.sys = require "sys"
  9. log.info("sys", "from win32")
  10. local ui = {}
  11. local counter = 0
  12. local function screen_plusevent_handler(obj, event)
  13. if event == lvgl.EVENT_CLICKED then
  14. counter = counter+1
  15. lvgl.obj_set_style_local_text_font(ui.screen_counter, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.font_get("opposans_m_16"))
  16. lvgl.label_set_text(ui.screen_counter, string.format("%d",counter))
  17. end
  18. end
  19. local function screen_minusevent_handler(obj, event)
  20. if event == lvgl.EVENT_CLICKED then
  21. if counter>0 then counter = counter-1 end
  22. lvgl.obj_set_style_local_text_font(ui.screen_counter, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.font_get("opposans_m_16"))
  23. lvgl.label_set_text(ui.screen_counter, string.format("%d",counter))
  24. end
  25. end
  26. sys.taskInit(function ()
  27. sys.wait(1000)
  28. log.info("lvgl", lvgl.init(480,320))
  29. --Write codes screen
  30. ui.screen = lvgl.obj_create(nil, nil)
  31. --Write codes screen_counter
  32. ui.screen_counter = lvgl.label_create(ui.screen, nil)
  33. lvgl.label_set_text(ui.screen_counter, "0")
  34. lvgl.label_set_long_mode(ui.screen_counter, lvgl.LABEL_LONG_BREAK)
  35. lvgl.label_set_align(ui.screen_counter, lvgl.LABEL_ALIGN_CENTER)
  36. --Write style lvgl.LABEL_PART_MAIN for screen_counter
  37. -- local style_screen_counter_main
  38. -- lvgl.style_init(style_screen_counter_main)
  39. local style_screen_counter_main = lvgl.style_create()
  40. --Write style state: lvgl.STATE_DEFAULT for style_screen_counter_main
  41. lvgl.style_set_radius(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  42. lvgl.style_set_bg_color(style_screen_counter_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  43. lvgl.style_set_bg_grad_color(style_screen_counter_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  44. lvgl.style_set_bg_grad_dir(style_screen_counter_main, lvgl.STATE_DEFAULT, lvgl.GRAD_DIR_VER)
  45. lvgl.style_set_bg_opa(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  46. lvgl.style_set_text_color(style_screen_counter_main, lvgl.STATE_DEFAULT, lvgl.color_make(0x00, 0x00, 0x00))
  47. lvgl.style_set_text_font(style_screen_counter_main, lvgl.STATE_DEFAULT, lvgl.font_get("opposans_m_16"))
  48. lvgl.style_set_text_letter_space(style_screen_counter_main, lvgl.STATE_DEFAULT, 2)
  49. lvgl.style_set_pad_left(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  50. lvgl.style_set_pad_right(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  51. lvgl.style_set_pad_top(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  52. lvgl.style_set_pad_bottom(style_screen_counter_main, lvgl.STATE_DEFAULT, 0)
  53. lvgl.obj_add_style(ui.screen_counter, lvgl.LABEL_PART_MAIN, style_screen_counter_main)
  54. lvgl.obj_set_pos(ui.screen_counter, 183, 54)
  55. lvgl.obj_set_size(ui.screen_counter, 100, 0)
  56. --Write codes screen_plus
  57. ui.screen_plus = lvgl.btn_create(ui.screen, nil)
  58. --Write style lvgl.BTN_PART_MAIN for screen_plus
  59. -- local style_screen_plus_main
  60. -- lvgl.style_init(style_screen_plus_main)
  61. local style_screen_plus_main = lvgl.style_create()
  62. --Write style state: lvgl.STATE_DEFAULT for style_screen_plus_main
  63. lvgl.style_set_radius(style_screen_plus_main, lvgl.STATE_DEFAULT, 50)
  64. lvgl.style_set_bg_color(style_screen_plus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  65. lvgl.style_set_bg_grad_color(style_screen_plus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  66. lvgl.style_set_bg_grad_dir(style_screen_plus_main, lvgl.STATE_DEFAULT, lvgl.GRAD_DIR_VER)
  67. lvgl.style_set_bg_opa(style_screen_plus_main, lvgl.STATE_DEFAULT, 255)
  68. lvgl.style_set_border_color(style_screen_plus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0x01, 0xa2, 0xb1))
  69. lvgl.style_set_border_width(style_screen_plus_main, lvgl.STATE_DEFAULT, 0)
  70. lvgl.style_set_border_opa(style_screen_plus_main, lvgl.STATE_DEFAULT, 255)
  71. lvgl.style_set_outline_color(style_screen_plus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0x01, 0xa2, 0xb1))
  72. lvgl.style_set_outline_opa(style_screen_plus_main, lvgl.STATE_DEFAULT, 255)
  73. --Write style state: lvgl.STATE_FOCUSED for style_screen_plus_main
  74. lvgl.style_set_radius(style_screen_plus_main, lvgl.STATE_FOCUSED, 50)
  75. lvgl.style_set_bg_color(style_screen_plus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0xff, 0xff, 0xff))
  76. lvgl.style_set_bg_grad_color(style_screen_plus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0xff, 0xff, 0xff))
  77. lvgl.style_set_bg_grad_dir(style_screen_plus_main, lvgl.STATE_FOCUSED, lvgl.GRAD_DIR_VER)
  78. lvgl.style_set_bg_opa(style_screen_plus_main, lvgl.STATE_FOCUSED, 255)
  79. lvgl.style_set_border_color(style_screen_plus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  80. lvgl.style_set_border_width(style_screen_plus_main, lvgl.STATE_FOCUSED, 1)
  81. lvgl.style_set_border_opa(style_screen_plus_main, lvgl.STATE_FOCUSED, 255)
  82. lvgl.style_set_outline_color(style_screen_plus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  83. lvgl.style_set_outline_opa(style_screen_plus_main, lvgl.STATE_FOCUSED, 255)
  84. --Write style state: lvgl.STATE_PRESSED for style_screen_plus_main
  85. lvgl.style_set_radius(style_screen_plus_main, lvgl.STATE_PRESSED, 50)
  86. lvgl.style_set_bg_color(style_screen_plus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x2e, 0x7c, 0xb8))
  87. lvgl.style_set_bg_grad_color(style_screen_plus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x2e, 0x7c, 0xb8))
  88. lvgl.style_set_bg_grad_dir(style_screen_plus_main, lvgl.STATE_PRESSED, lvgl.GRAD_DIR_VER)
  89. lvgl.style_set_bg_opa(style_screen_plus_main, lvgl.STATE_PRESSED, 255)
  90. lvgl.style_set_border_color(style_screen_plus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  91. lvgl.style_set_border_width(style_screen_plus_main, lvgl.STATE_PRESSED, 0)
  92. lvgl.style_set_border_opa(style_screen_plus_main, lvgl.STATE_PRESSED, 255)
  93. lvgl.style_set_outline_color(style_screen_plus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  94. lvgl.style_set_outline_opa(style_screen_plus_main, lvgl.STATE_PRESSED, 100)
  95. --Write style state: lvgl.STATE_CHECKED for style_screen_plus_main
  96. lvgl.style_set_radius(style_screen_plus_main, lvgl.STATE_CHECKED, 50)
  97. lvgl.style_set_bg_color(style_screen_plus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xff, 0xff, 0xff))
  98. lvgl.style_set_bg_grad_color(style_screen_plus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xff, 0xff, 0xff))
  99. lvgl.style_set_bg_grad_dir(style_screen_plus_main, lvgl.STATE_CHECKED, lvgl.GRAD_DIR_VER)
  100. lvgl.style_set_bg_opa(style_screen_plus_main, lvgl.STATE_CHECKED, 255)
  101. lvgl.style_set_border_color(style_screen_plus_main, lvgl.STATE_CHECKED, lvgl.color_make(0x01, 0xa2, 0xb1))
  102. lvgl.style_set_border_width(style_screen_plus_main, lvgl.STATE_CHECKED, 2)
  103. lvgl.style_set_border_opa(style_screen_plus_main, lvgl.STATE_CHECKED, 255)
  104. lvgl.style_set_outline_color(style_screen_plus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xd4, 0xd7, 0xd9))
  105. lvgl.style_set_outline_opa(style_screen_plus_main, lvgl.STATE_CHECKED, 255)
  106. lvgl.obj_add_style(ui.screen_plus, lvgl.BTN_PART_MAIN, style_screen_plus_main)
  107. lvgl.obj_set_pos(ui.screen_plus, 86, 150)
  108. lvgl.obj_set_size(ui.screen_plus, 100, 50)
  109. ui.screen_plus_label = lvgl.label_create(ui.screen_plus, nil)
  110. lvgl.label_set_text(ui.screen_plus_label, "Plus")
  111. lvgl.obj_set_style_local_text_color(ui.screen_plus_label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.color_make(0x00, 0x00, 0x00))
  112. lvgl.obj_set_style_local_text_font(ui.screen_plus_label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.font_get("opposans_m_16"))
  113. --Write codes screen_minus
  114. ui.screen_minus = lvgl.btn_create(ui.screen, nil)
  115. --Write style lvgl.BTN_PART_MAIN for screen_minus
  116. -- local style_screen_minus_main
  117. -- lvgl.style_init(style_screen_minus_main)
  118. local style_screen_minus_main = lvgl.style_create()
  119. --Write style state: lvgl.STATE_DEFAULT for style_screen_minus_main
  120. lvgl.style_set_radius(style_screen_minus_main, lvgl.STATE_DEFAULT, 50)
  121. lvgl.style_set_bg_color(style_screen_minus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  122. lvgl.style_set_bg_grad_color(style_screen_minus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0xff, 0xff, 0xff))
  123. lvgl.style_set_bg_grad_dir(style_screen_minus_main, lvgl.STATE_DEFAULT, lvgl.GRAD_DIR_VER)
  124. lvgl.style_set_bg_opa(style_screen_minus_main, lvgl.STATE_DEFAULT, 255)
  125. lvgl.style_set_border_color(style_screen_minus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0x01, 0xa2, 0xb1))
  126. lvgl.style_set_border_width(style_screen_minus_main, lvgl.STATE_DEFAULT, 0)
  127. lvgl.style_set_border_opa(style_screen_minus_main, lvgl.STATE_DEFAULT, 255)
  128. lvgl.style_set_outline_color(style_screen_minus_main, lvgl.STATE_DEFAULT, lvgl.color_make(0x01, 0xa2, 0xb1))
  129. lvgl.style_set_outline_opa(style_screen_minus_main, lvgl.STATE_DEFAULT, 255)
  130. --Write style state: lvgl.STATE_FOCUSED for style_screen_minus_main
  131. lvgl.style_set_radius(style_screen_minus_main, lvgl.STATE_FOCUSED, 50)
  132. lvgl.style_set_bg_color(style_screen_minus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0xff, 0xff, 0xff))
  133. lvgl.style_set_bg_grad_color(style_screen_minus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0xff, 0xff, 0xff))
  134. lvgl.style_set_bg_grad_dir(style_screen_minus_main, lvgl.STATE_FOCUSED, lvgl.GRAD_DIR_VER)
  135. lvgl.style_set_bg_opa(style_screen_minus_main, lvgl.STATE_FOCUSED, 255)
  136. lvgl.style_set_border_color(style_screen_minus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  137. lvgl.style_set_border_width(style_screen_minus_main, lvgl.STATE_FOCUSED, 1)
  138. lvgl.style_set_border_opa(style_screen_minus_main, lvgl.STATE_FOCUSED, 255)
  139. lvgl.style_set_outline_color(style_screen_minus_main, lvgl.STATE_FOCUSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  140. lvgl.style_set_outline_opa(style_screen_minus_main, lvgl.STATE_FOCUSED, 255)
  141. --Write style state: lvgl.STATE_PRESSED for style_screen_minus_main
  142. lvgl.style_set_radius(style_screen_minus_main, lvgl.STATE_PRESSED, 50)
  143. lvgl.style_set_bg_color(style_screen_minus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x2e, 0x7c, 0xb8))
  144. lvgl.style_set_bg_grad_color(style_screen_minus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x2e, 0x7c, 0xb8))
  145. lvgl.style_set_bg_grad_dir(style_screen_minus_main, lvgl.STATE_PRESSED, lvgl.GRAD_DIR_VER)
  146. lvgl.style_set_bg_opa(style_screen_minus_main, lvgl.STATE_PRESSED, 255)
  147. lvgl.style_set_border_color(style_screen_minus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  148. lvgl.style_set_border_width(style_screen_minus_main, lvgl.STATE_PRESSED, 0)
  149. lvgl.style_set_border_opa(style_screen_minus_main, lvgl.STATE_PRESSED, 255)
  150. lvgl.style_set_outline_color(style_screen_minus_main, lvgl.STATE_PRESSED, lvgl.color_make(0x01, 0xa2, 0xb1))
  151. lvgl.style_set_outline_opa(style_screen_minus_main, lvgl.STATE_PRESSED, 100)
  152. --Write style state: lvgl.STATE_CHECKED for style_screen_minus_main
  153. lvgl.style_set_radius(style_screen_minus_main, lvgl.STATE_CHECKED, 50)
  154. lvgl.style_set_bg_color(style_screen_minus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xff, 0xff, 0xff))
  155. lvgl.style_set_bg_grad_color(style_screen_minus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xff, 0xff, 0xff))
  156. lvgl.style_set_bg_grad_dir(style_screen_minus_main, lvgl.STATE_CHECKED, lvgl.GRAD_DIR_VER)
  157. lvgl.style_set_bg_opa(style_screen_minus_main, lvgl.STATE_CHECKED, 255)
  158. lvgl.style_set_border_color(style_screen_minus_main, lvgl.STATE_CHECKED, lvgl.color_make(0x01, 0xa2, 0xb1))
  159. lvgl.style_set_border_width(style_screen_minus_main, lvgl.STATE_CHECKED, 2)
  160. lvgl.style_set_border_opa(style_screen_minus_main, lvgl.STATE_CHECKED, 255)
  161. lvgl.style_set_outline_color(style_screen_minus_main, lvgl.STATE_CHECKED, lvgl.color_make(0xd4, 0xd7, 0xd9))
  162. lvgl.style_set_outline_opa(style_screen_minus_main, lvgl.STATE_CHECKED, 255)
  163. lvgl.obj_add_style(ui.screen_minus, lvgl.BTN_PART_MAIN, style_screen_minus_main)
  164. lvgl.obj_set_pos(ui.screen_minus, 270, 150)
  165. lvgl.obj_set_size(ui.screen_minus, 100, 50)
  166. ui.screen_minus_label = lvgl.label_create(ui.screen_minus, nil)
  167. lvgl.label_set_text(ui.screen_minus_label, "Minus")
  168. lvgl.obj_set_style_local_text_color(ui.screen_minus_label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.color_make(0x00, 0x00, 0x00))
  169. lvgl.obj_set_style_local_text_font(ui.screen_minus_label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.font_get("opposans_m_16"))
  170. lvgl.obj_set_event_cb(ui.screen_plus, screen_plusevent_handler)
  171. lvgl.obj_set_event_cb(ui.screen_minus, screen_minusevent_handler)
  172. lvgl.scr_load(ui.screen)
  173. while true do
  174. sys.wait(1000)
  175. log.info("main", os.date())
  176. end
  177. end)
  178. sys.run()