mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Fix attribute bugs
This commit is contained in:
parent
c1e497c3ad
commit
4e6f6a8268
@ -597,8 +597,8 @@ static void hasp_process_obj_attribute_val(lv_obj_t * obj, const char * attr, co
|
|||||||
lv_obj_get_type(obj, &list);
|
lv_obj_get_type(obj, &list);
|
||||||
const char * objtype = list.type[0];
|
const char * objtype = list.type[0];
|
||||||
|
|
||||||
if(check_obj_type(objtype, LV_HASP_BUTTON)) {
|
if(check_obj_type(objtype, LV_HASP_BUTTON) && lv_btn_get_checkable(obj)) {
|
||||||
if(lv_btn_get_checkable(obj)) {
|
if(update) {
|
||||||
lv_btn_state_t state;
|
lv_btn_state_t state;
|
||||||
switch(val) {
|
switch(val) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -607,11 +607,27 @@ static void hasp_process_obj_attribute_val(lv_obj_t * obj, const char * attr, co
|
|||||||
case 1:
|
case 1:
|
||||||
state = LV_BTN_STATE_CHECKED_RELEASED;
|
state = LV_BTN_STATE_CHECKED_RELEASED;
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
state = LV_BTN_STATE_CHECKED_DISABLED;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
state = LV_BTN_STATE_DISABLED;
|
state = LV_BTN_STATE_DISABLED;
|
||||||
|
};
|
||||||
|
return lv_btn_set_state(obj, state);
|
||||||
|
} else {
|
||||||
|
lv_btn_state_t state = lv_btn_get_state(obj);
|
||||||
|
switch(state) {
|
||||||
|
case LV_BTN_STATE_RELEASED:
|
||||||
|
case LV_BTN_STATE_PRESSED:
|
||||||
|
return hasp_out_int(obj, attr, 0);
|
||||||
|
case LV_BTN_STATE_CHECKED_RELEASED:
|
||||||
|
case LV_BTN_STATE_CHECKED_PRESSED:
|
||||||
|
return hasp_out_int(obj, attr, 1);
|
||||||
|
case LV_BTN_STATE_DISABLED:
|
||||||
|
return hasp_out_int(obj, attr, 2);
|
||||||
|
case LV_BTN_STATE_CHECKED_DISABLED:
|
||||||
|
return hasp_out_int(obj, attr, 3);
|
||||||
}
|
}
|
||||||
lv_btn_set_state(obj, state);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(check_obj_type(objtype, LV_HASP_CHECKBOX)) {
|
if(check_obj_type(objtype, LV_HASP_CHECKBOX)) {
|
||||||
@ -661,24 +677,28 @@ static void hasp_process_obj_attribute_range(lv_obj_t * obj, const char * attr,
|
|||||||
if(check_obj_type(objtype, LV_HASP_SLIDER)) {
|
if(check_obj_type(objtype, LV_HASP_SLIDER)) {
|
||||||
int16_t min = lv_slider_get_min_value(obj);
|
int16_t min = lv_slider_get_min_value(obj);
|
||||||
int16_t max = lv_slider_get_max_value(obj);
|
int16_t max = lv_slider_get_max_value(obj);
|
||||||
|
if(update && (set_min ? val : min) <= (set_max ? val : max)) return; // prevent setting min<=max
|
||||||
return update ? lv_slider_set_range(obj, set_min ? val : min, set_max ? val : max)
|
return update ? lv_slider_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: hasp_out_int(obj, attr, set_min ? lv_slider_get_min_value(obj) : lv_slider_get_max_value(obj));
|
: hasp_out_int(obj, attr, set_min ? lv_slider_get_min_value(obj) : lv_slider_get_max_value(obj));
|
||||||
}
|
}
|
||||||
if(check_obj_type(objtype, LV_HASP_GAUGE)) {
|
if(check_obj_type(objtype, LV_HASP_GAUGE)) {
|
||||||
int16_t min = lv_gauge_get_min_value(obj);
|
int16_t min = lv_gauge_get_min_value(obj);
|
||||||
int16_t max = lv_gauge_get_max_value(obj);
|
int16_t max = lv_gauge_get_max_value(obj);
|
||||||
|
if(update && (set_min ? val : min) <= (set_max ? val : max)) return; // prevent setting min<=max
|
||||||
return update ? lv_gauge_set_range(obj, set_min ? val : min, set_max ? val : max)
|
return update ? lv_gauge_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: hasp_out_int(obj, attr, set_min ? lv_gauge_get_min_value(obj) : lv_gauge_get_max_value(obj));
|
: hasp_out_int(obj, attr, set_min ? lv_gauge_get_min_value(obj) : lv_gauge_get_max_value(obj));
|
||||||
}
|
}
|
||||||
if(check_obj_type(objtype, LV_HASP_BAR)) {
|
if(check_obj_type(objtype, LV_HASP_BAR)) {
|
||||||
int16_t min = lv_bar_get_min_value(obj);
|
int16_t min = lv_bar_get_min_value(obj);
|
||||||
int16_t max = lv_bar_get_max_value(obj);
|
int16_t max = lv_bar_get_max_value(obj);
|
||||||
|
if(update && (set_min ? val : min) <= (set_max ? val : max)) return; // prevent setting min<=max
|
||||||
return update ? lv_bar_set_range(obj, set_min ? val : min, set_max ? val : max)
|
return update ? lv_bar_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: hasp_out_int(obj, attr, set_min ? lv_bar_get_min_value(obj) : lv_bar_get_max_value(obj));
|
: hasp_out_int(obj, attr, set_min ? lv_bar_get_min_value(obj) : lv_bar_get_max_value(obj));
|
||||||
}
|
}
|
||||||
if(check_obj_type(objtype, LV_HASP_LMETER)) {
|
if(check_obj_type(objtype, LV_HASP_LMETER)) {
|
||||||
int16_t min = lv_linemeter_get_min_value(obj);
|
int16_t min = lv_linemeter_get_min_value(obj);
|
||||||
int16_t max = lv_linemeter_get_max_value(obj);
|
int16_t max = lv_linemeter_get_max_value(obj);
|
||||||
|
if(update && (set_min ? val : min) <= (set_max ? val : max)) return; // prevent setting min<=max
|
||||||
return update ? lv_linemeter_set_range(obj, set_min ? val : min, set_max ? val : max)
|
return update ? lv_linemeter_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: hasp_out_int(obj, attr,
|
: hasp_out_int(obj, attr,
|
||||||
set_min ? lv_linemeter_get_min_value(obj) : lv_linemeter_get_max_value(obj));
|
set_min ? lv_linemeter_get_min_value(obj) : lv_linemeter_get_max_value(obj));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user