mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-29 14:16:40 +00:00
Add long mode for buttons
This commit is contained in:
parent
0bef2ec42a
commit
9979fe9e71
@ -98,25 +98,32 @@ void set_label_long_mode(lv_obj_t * obj, const char * payload)
|
|||||||
lv_label_set_long_mode(obj, mode);
|
lv_label_set_long_mode(obj, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void haspSetLabelText(lv_obj_t * obj, const char * value)
|
lv_obj_t * FindButtonLabel(lv_obj_t * btn)
|
||||||
{
|
{
|
||||||
if(!obj) {
|
if(btn) {
|
||||||
Log.warning(F("HASP: Button not defined"));
|
lv_obj_t * label = lv_obj_get_child_back(btn, NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
lv_obj_t * label = lv_obj_get_child_back(obj, NULL);
|
|
||||||
if(label) {
|
if(label) {
|
||||||
lv_obj_type_t list;
|
lv_obj_type_t list;
|
||||||
lv_obj_get_type(label, &list);
|
lv_obj_get_type(label, &list);
|
||||||
|
|
||||||
if(check_obj_type(list.type[0], LV_HASP_LABEL)) {
|
if(check_obj_type(list.type[0], LV_HASP_LABEL)) {
|
||||||
Log.verbose(F("HASP: Setting value to %s"), value);
|
return label;
|
||||||
lv_label_set_text(label, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.error(F("HASP: haspSetLabelText NULL Pointer encountered"));
|
Log.error(F("HASP: FindButtonLabel NULL Pointer encountered"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.warning(F("HASP: Button not defined"));
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void haspSetLabelText(lv_obj_t * obj, const char * value)
|
||||||
|
{
|
||||||
|
lv_obj_t * label = FindButtonLabel(obj);
|
||||||
|
if(label) {
|
||||||
|
lv_label_set_text(label, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +145,6 @@ void haspSetLocalStyle(lv_obj_t * obj, const char * attr_p, const char * payload
|
|||||||
int16_t var = atoi(payload);
|
int16_t var = atoi(payload);
|
||||||
|
|
||||||
int len = strlen(attr_p);
|
int len = strlen(attr_p);
|
||||||
|
|
||||||
if(len > 0) {
|
if(len > 0) {
|
||||||
// Check Trailing partnumber
|
// Check Trailing partnumber
|
||||||
if(attr_p[len - 1] == '1') {
|
if(attr_p[len - 1] == '1') {
|
||||||
@ -152,15 +158,14 @@ void haspSetLocalStyle(lv_obj_t * obj, const char * attr_p, const char * payload
|
|||||||
// } else if(attr[len - 1] == '9') {
|
// } else if(attr[len - 1] == '9') {
|
||||||
// part = LV_PAGE_PART_SCRL;
|
// part = LV_PAGE_PART_SCRL;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Remove Trailing part digit
|
// Remove Trailing part digit
|
||||||
char attr[128];
|
char attr[128];
|
||||||
if(part != LV_TABLE_PART_BG && len > 0) {
|
if(part != LV_TABLE_PART_BG && len > 0) {
|
||||||
strncpy(attr, attr_p, len - 1);
|
len--;
|
||||||
} else {
|
|
||||||
strncpy(attr, attr_p, len);
|
|
||||||
}
|
}
|
||||||
|
strncpy(attr, attr_p, len + 1);
|
||||||
|
attr[len] = 0;
|
||||||
|
|
||||||
// debugPrintln(strAttr + "&" + part);
|
// debugPrintln(strAttr + "&" + part);
|
||||||
|
|
||||||
@ -352,9 +357,10 @@ void haspSetLocalStyle(lv_obj_t * obj, const char * attr_p, const char * payload
|
|||||||
} else if(!strcmp_P(attr, PSTR("line_opa"))) {
|
} else if(!strcmp_P(attr, PSTR("line_opa"))) {
|
||||||
return lv_obj_set_style_local_line_opa(obj, part, state, (lv_opa_t)var);
|
return lv_obj_set_style_local_line_opa(obj, part, state, (lv_opa_t)var);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Property not found */
|
/* Property not found */
|
||||||
haspAttributeNotFound(attr);
|
haspAttributeNotFound(attr_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void haspSetObjAttribute1(lv_obj_t * obj, const char * attr, const char * payload)
|
void haspSetObjAttribute1(lv_obj_t * obj, const char * attr, const char * payload)
|
||||||
@ -548,6 +554,15 @@ void haspSetObjAttribute4(lv_obj_t * obj, const char * attr, const char * payloa
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!strcmp_P(attr, PSTR("mode"))) {
|
if(!strcmp_P(attr, PSTR("mode"))) {
|
||||||
|
if(check_obj_type(list.type[0], LV_HASP_BUTTON)) {
|
||||||
|
lv_obj_t * label = FindButtonLabel(obj);
|
||||||
|
if(label) {
|
||||||
|
set_label_long_mode(label, payload);
|
||||||
|
lv_obj_set_width(label, lv_obj_get_width(obj));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(check_obj_type(list.type[0], LV_HASP_LABEL)) {
|
if(check_obj_type(list.type[0], LV_HASP_LABEL)) {
|
||||||
set_label_long_mode(obj, payload);
|
set_label_long_mode(obj, payload);
|
||||||
return;
|
return;
|
||||||
@ -563,7 +578,7 @@ void haspSetObjAttribute6(lv_obj_t * obj, const char * attr, const char * payloa
|
|||||||
int16_t val = atoi(payload);
|
int16_t val = atoi(payload);
|
||||||
|
|
||||||
if(!strcmp_P(attr, PSTR("hidden"))) {
|
if(!strcmp_P(attr, PSTR("hidden"))) {
|
||||||
lv_obj_set_hidden(obj, val == 0);
|
lv_obj_set_hidden(obj, is_true(payload));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
lv_obj_type_t list;
|
lv_obj_type_t list;
|
||||||
@ -571,7 +586,7 @@ void haspSetObjAttribute6(lv_obj_t * obj, const char * attr, const char * payloa
|
|||||||
|
|
||||||
if(!strcmp_P(attr, PSTR("toggle"))) {
|
if(!strcmp_P(attr, PSTR("toggle"))) {
|
||||||
if(check_obj_type(list.type[0], LV_HASP_BUTTON)) {
|
if(check_obj_type(list.type[0], LV_HASP_BUTTON)) {
|
||||||
haspSetToggle(obj, atoi(payload) > 0);
|
haspSetToggle(obj, is_true(payload));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -587,7 +602,7 @@ void haspSetObjAttribute7(lv_obj_t * obj, const char * attr, const char * payloa
|
|||||||
haspSetOpacity(obj, val);
|
haspSetOpacity(obj, val);
|
||||||
return;
|
return;
|
||||||
} else if(!strcmp_P(attr, PSTR("enabled"))) {
|
} else if(!strcmp_P(attr, PSTR("enabled"))) {
|
||||||
lv_obj_set_click(obj, val != 0);
|
lv_obj_set_click(obj, is_true(payload));
|
||||||
return;
|
return;
|
||||||
} else if(!strcmp_P(attr, PSTR("options"))) {
|
} else if(!strcmp_P(attr, PSTR("options"))) {
|
||||||
/* .options depend on objecttype */
|
/* .options depend on objecttype */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user