luat_lib_lvgl_calendar_ex.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. @module lvgl
  3. @summary LVGL图像库
  4. @version 1.0
  5. @date 2021.06.01
  6. */
  7. #include "luat_base.h"
  8. #include "lvgl.h"
  9. #include "luat_lvgl.h"
  10. #include "luat_malloc.h"
  11. int luat_lv_calendar_set_highlighted_dates(lua_State *L) {
  12. LV_DEBUG("CALL lv_calendar_set_highlighted_dates");
  13. lv_obj_t* calendar = (lv_obj_t*)lua_touserdata(L, 1);
  14. uint16_t date_num = (uint16_t)luaL_checkinteger(L, 3);
  15. lv_calendar_date_t *highlighted = (lv_calendar_date_t*)luat_heap_calloc(date_num,sizeof(lv_calendar_date_t));
  16. if (lua_istable(L,2)){
  17. for (int m = 0; m < date_num; m++) {
  18. lua_pushinteger(L, m+1);
  19. if (LUA_TUSERDATA == lua_gettable(L, 2)) {
  20. lv_calendar_date_t *date_t = lua_touserdata(L,-1);
  21. highlighted[m].year = date_t->year;
  22. highlighted[m].month = date_t->month;
  23. highlighted[m].day = date_t->day;
  24. }
  25. lua_pop(L, 1);
  26. }
  27. }
  28. lv_calendar_set_highlighted_dates(calendar,highlighted,date_num);
  29. //luat_heap_free(highlighted);
  30. return 0;
  31. }