Add gauge parts and optimized parts parser

This commit is contained in:
fvanroie 2021-07-06 21:48:44 +02:00
parent c83afd4f34
commit f671a8beb0

View File

@ -266,18 +266,26 @@ static void hasp_attribute_get_part_state(lv_obj_t* obj, const char* attr_in, ch
// Drop Trailing partnumber // Drop Trailing partnumber
if(attr_in[len - 1] == '0' || index > 0) { if(attr_in[len - 1] == '0' || index > 0) {
part = LV_TABLE_PART_BG;
len--; len--;
} }
strncpy(attr_out, attr_in, len); strncpy(attr_out, attr_in, len);
attr_out[len] = 0; attr_out[len] = 0;
/* Attributes depending on objecttype */ #if(LV_SLIDER_PART_INDIC != LV_SWITCH_PART_INDIC) || (LV_SLIDER_PART_KNOB != LV_SWITCH_PART_KNOB) || \
// lv_obj_type_t list; (LV_SLIDER_PART_BG != LV_SWITCH_PART_BG) || (LV_SLIDER_PART_INDIC != LV_ARC_PART_INDIC) || \
// lv_obj_get_type(obj, &list); (LV_SLIDER_PART_KNOB != LV_ARC_PART_KNOB) || (LV_SLIDER_PART_BG != LV_ARC_PART_BG) || \
// const char * objtype = list.type[0]; (LV_SLIDER_PART_INDIC != LV_SPINNER_PART_INDIC) || (LV_SLIDER_PART_BG != LV_SPINNER_PART_BG) || \
(LV_SLIDER_PART_INDIC != LV_BAR_PART_INDIC) || (LV_SLIDER_PART_BG != LV_BAR_PART_BG) || \
(LV_SLIDER_PART_KNOB != LV_GAUGE_PART_NEEDLE) || (LV_SLIDER_PART_INDIC != LV_GAUGE_PART_MAJOR) || \
(LV_SLIDER_PART_BG != LV_GAUGE_PART_MAIN)
#error "LV_SLIDER, LV_BAR, LV_ARC, LV_SPINNER, LV_SWITCH, LV_GAUGE parts should match!"
#endif
if(obj_check_type(obj, LV_HASP_BUTTON)) { /* Attributes depending on objecttype */
state = LV_STATE_DEFAULT;
switch(obj_get_type(obj)) {
case LV_HASP_BUTTON:
switch(index) { switch(index) {
case 1: case 1:
state = LV_BTN_STATE_PRESSED; state = LV_BTN_STATE_PRESSED;
@ -298,64 +306,42 @@ static void hasp_attribute_get_part_state(lv_obj_t* obj, const char* attr_in, ch
state = LV_BTN_STATE_RELEASED; state = LV_BTN_STATE_RELEASED;
} }
part = LV_BTN_PART_MAIN; part = LV_BTN_PART_MAIN;
return; break;
}
#if(LV_SLIDER_PART_INDIC != LV_SWITCH_PART_INDIC) || (LV_SLIDER_PART_KNOB != LV_SWITCH_PART_KNOB) || \ case LV_HASP_SLIDER:
(LV_SLIDER_PART_BG != LV_SWITCH_PART_BG) || (LV_SLIDER_PART_INDIC != LV_ARC_PART_INDIC) || \ case LV_HASP_SWITCH:
(LV_SLIDER_PART_KNOB != LV_ARC_PART_KNOB) || (LV_SLIDER_PART_BG != LV_ARC_PART_BG) || \ case LV_HASP_ARC:
(LV_SLIDER_PART_INDIC != LV_SPINNER_PART_INDIC) || (LV_SLIDER_PART_BG != LV_SPINNER_PART_BG) || \ case LV_HASP_BAR:
(LV_SLIDER_PART_INDIC != LV_BAR_PART_INDIC) || (LV_SLIDER_PART_BG != LV_BAR_PART_BG) case LV_HASP_SPINNER:
#error "LV_SLIDER, LV_BAR, LV_ARC, LV_SPINNER, LV_SWITCH parts should match!"
#endif
if(obj_check_type(obj, LV_HASP_SLIDER) || obj_check_type(obj, LV_HASP_SWITCH) || obj_check_type(obj, LV_HASP_ARC) ||
obj_check_type(obj, LV_HASP_BAR) || obj_check_type(obj, LV_HASP_SPINNER)) {
if(index == 1) { if(index == 1) {
part = LV_SLIDER_PART_INDIC; part = LV_SLIDER_PART_INDIC;
} else if(index == 2) { } else if(index == 2) {
if(!obj_check_type(obj, LV_HASP_BAR) && !obj_check_type(obj, LV_HASP_SPINNER)) part = LV_SLIDER_PART_KNOB; if(!obj_check_type(obj, LV_HASP_BAR) && !obj_check_type(obj, LV_HASP_SPINNER))
part = LV_SLIDER_PART_KNOB;
} else { } else {
part = LV_SLIDER_PART_BG; part = LV_SLIDER_PART_BG;
} }
state = LV_STATE_DEFAULT; break;
return;
}
if(obj_check_type(obj, LV_HASP_CHECKBOX)) { case LV_HASP_CHECKBOX:
if(index == 1) { part = index == 1 ? LV_CHECKBOX_PART_BULLET : LV_CHECKBOX_PART_BG;
part = LV_CHECKBOX_PART_BULLET; break;
} else {
part = LV_CHECKBOX_PART_BG;
}
state = LV_STATE_DEFAULT;
return;
}
if(obj_check_type(obj, LV_HASP_CPICKER)) { case LV_HASP_CPICKER:
if(index == 1) { part = index == 1 ? LV_CPICKER_PART_KNOB : LV_CPICKER_PART_MAIN;
part = LV_CPICKER_PART_KNOB; break;
} else {
part = LV_CPICKER_PART_MAIN;
}
state = LV_STATE_DEFAULT;
return;
}
if(obj_check_type(obj, LV_HASP_ROLLER)) { case LV_HASP_ROLLER:
if(index == 1) { part = index == 1 ? LV_ROLLER_PART_SELECTED : LV_ROLLER_PART_BG;
part = LV_ROLLER_PART_SELECTED; break;
} else {
part = LV_ROLLER_PART_BG;
}
state = LV_STATE_DEFAULT;
return;
}
// if(obj_check_type(obj, LV_HASP_LINEMETER)) { case LV_HASP_GAUGE:
// state = LV_STATE_DEFAULT; part = index <= LV_GAUGE_PART_NEEDLE ? index : LV_GAUGE_PART_MAIN;
// return; break;
// }
default:
part = LV_TABLE_PART_BG;
}
} }
/** /**