From 99879441d5caf0c533a789f187d1b9afa00ccda2 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Mon, 14 Jun 2021 16:22:16 +0200 Subject: [PATCH] Add .val to btnmatrix --- src/hasp/hasp_attribute.cpp | 16 ++++++++++++++++ src/hasp/hasp_attribute_helper.h | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/src/hasp/hasp_attribute.cpp b/src/hasp/hasp_attribute.cpp index 0bb55d86..e50167ae 100644 --- a/src/hasp/hasp_attribute.cpp +++ b/src/hasp/hasp_attribute.cpp @@ -1365,6 +1365,22 @@ static hasp_attribute_type_t attribute_common_val(lv_obj_t* obj, int32_t& val, b } break; + case LV_HASP_BTNMATRIX: + if(update) { + if(!lv_btnmatrix_get_one_check(obj)) return HASP_ATTR_TYPE_NOT_FOUND; + + if(val < 0 || val >= my_btnmatrix_get_count(obj)) { + LOG_WARNING(TAG_ATTR, F("Invalid value %d"), val); + } else { + lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECK_STATE); + lv_btnmatrix_set_btn_ctrl(obj, val, LV_BTNMATRIX_CTRL_CHECK_STATE); + } + + } else { + val = lv_checkbox_is_checked(obj); + } + break; + case LV_HASP_CHECKBOX: if(update) lv_checkbox_set_checked(obj, !!val); diff --git a/src/hasp/hasp_attribute_helper.h b/src/hasp/hasp_attribute_helper.h index ffdac787..6a87c3a5 100644 --- a/src/hasp/hasp_attribute_helper.h +++ b/src/hasp/hasp_attribute_helper.h @@ -413,6 +413,13 @@ static void gauge_format_10k(lv_obj_t* gauge, char* buf, int bufsize, int32_t va snprintf(buf, bufsize, PSTR("%d"), value / 10000); } +// OK - this function is missing in lvgl +static uint16_t my_btnmatrix_get_count(const lv_obj_t* btnm) +{ + lv_btnmatrix_ext_t* ext = (lv_btnmatrix_ext_t*)lv_obj_get_ext_attr(btnm); + return ext->btn_cnt; +} + #if 0 static bool attribute_lookup_lv_property(uint16_t hash, uint8_t * prop) {