luat_lib_lvgl_imgbtn.c 774 B

1234567891011121314151617181920212223242526
  1. #include "luat_base.h"
  2. #include "luat_msgbus.h"
  3. #include "luat_lvgl.h"
  4. #include "lvgl.h"
  5. #include "luat_zbuff.h"
  6. // void lv_imgbtn_set_src(lv_obj_t* imgbtn, lv_btn_state_t state, void* src)
  7. int luat_lv_imgbtn_set_src(lua_State *L) {
  8. LV_DEBUG("CALL lv_imgbtn_set_src");
  9. lv_obj_t* imgbtn = (lv_obj_t*)lua_touserdata(L, 1);
  10. lv_btn_state_t state = (lv_btn_state_t)luaL_checkinteger(L, 2);
  11. void* src = NULL;
  12. if (lua_isstring(L, 3))
  13. src = (void*)luaL_checkstring(L, 3);
  14. else if (lua_isuserdata(L, 3)) {
  15. luat_zbuff_t* buff = (luat_zbuff_t *)luaL_checkudata(L, 1, "ZBUFF*");
  16. src = buff->addr;
  17. }
  18. else {
  19. LLOGD("Bad src_img for img");
  20. return 0;
  21. }
  22. lv_imgbtn_set_src(imgbtn ,state ,src);
  23. return 0;
  24. }