objmask_demo.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. local objmask_demo = {}
  2. function objmask_demo.demo()
  3. --Set a very visible color for the screen to clearly see what happens*/
  4. lvgl.obj_set_style_local_bg_color(lvgl.scr_act(), lvgl.OBJ_PART_MAIN, lvgl.STATE_DEFAULT, lvgl.color_hex3(0xf33));
  5. local om = lvgl.objmask_create(lvgl.scr_act(), nil);
  6. lvgl.obj_set_size(om, 200, 200);
  7. lvgl.obj_align(om, nil, lvgl.ALIGN_CENTER, 0, 0);
  8. local label = lvgl.label_create(om, nil);
  9. lvgl.label_set_long_mode(label, lvgl.LABEL_LONG_BREAK);
  10. lvgl.label_set_align(label, lvgl.LABEL_ALIGN_CENTER);
  11. lvgl.obj_set_width(label, 180);
  12. lvgl.label_set_text(label, "This label will be masked out. See how it works.");
  13. lvgl.obj_align(label, nil, lvgl.ALIGN_IN_TOP_MID, 0, 20);
  14. local cont = lvgl.cont_create(om, nil);
  15. lvgl.obj_set_size(cont, 180, 100);
  16. lvgl.obj_set_drag(cont, true);
  17. lvgl.obj_align(cont, nil, lvgl.ALIGN_IN_BOTTOM_MID, 0, -10);
  18. local btn = lvgl.btn_create(cont, nil);
  19. lvgl.obj_align(btn, nil, lvgl.ALIGN_CENTER, 0, 0);
  20. lvgl.obj_set_style_local_value_str(btn, lvgl.BTN_PART_MAIN, lvgl.STATE_DEFAULT, "Button");
  21. lvgl.refr_now(nil);
  22. sys.wait(1000)
  23. local a = lvgl.area_t()
  24. local r1 = lvgl.draw_mask_radius_param_t()
  25. a.x1 = 10;
  26. a.y1 = 10;
  27. a.x2 = 190;
  28. a.y2 = 190;
  29. -- lvgl.draw_mask_radius_init(r1, a, lvgl.RADIUS_CIRCLE, false);
  30. lvgl.draw_mask_radius_init(r1, a, 0x7FFF, false);
  31. lvgl.objmask_add_mask(om, r1);
  32. lvgl.refr_now(nil);
  33. sys.wait(1000)
  34. a.x1 = 100;
  35. a.y1 = 100;
  36. a.x2 = 150;
  37. a.y2 = 150;
  38. -- lvgl.draw_mask_radius_init(r1, a, lvgl.RADIUS_CIRCLE, true);
  39. lvgl.draw_mask_radius_init(r1, a, 0x7FFF, false);
  40. lvgl.objmask_add_mask(om, r1);
  41. lvgl.refr_now(nil);
  42. sys.wait(1000)
  43. local l1 = lvgl.draw_mask_line_param_t()
  44. lvgl.draw_mask_line_points_init(l1, 0, 0, 100, 200, lvgl.DRAW_MASK_LINE_SIDE_TOP);
  45. lvgl.objmask_add_mask(om, l1);
  46. lvgl.refr_now(nil);
  47. sys.wait(1000)
  48. local f1 = lvgl.draw_mask_fade_param_t()
  49. a.x1 = 100;
  50. a.y1 = 0;
  51. a.x2 = 200;
  52. a.y2 = 200;
  53. -- lvgl.draw_mask_fade_init(f1, a, lvgl.OPA_TRANSP, 0, lvgl.OPA_COVER, 150);
  54. lvgl.draw_mask_fade_init(f1, a, 0, 0, 255, 150);
  55. lvgl.objmask_add_mask(om, f1);
  56. end
  57. return objmask_demo