Add static_text for labels

This commit is contained in:
fvanroie 2021-05-18 04:20:05 +02:00
parent 798cf8bd5e
commit 62540e8443
2 changed files with 30 additions and 12 deletions

View File

@ -451,4 +451,10 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t)
#define ATTR_OBJID 41010
#define ATTR_OBJ 53623
#define ATTR_TEXT_MAC 38107
#define ATTR_TEXT_IP 41785
#define ATTR_TEXT_HOSTNAME 10125
#define ATTR_TEXT_MODEL 54561
#define ATTR_TEXT_VERSION 60178
#endif

View File

@ -138,24 +138,36 @@ static const char* my_label_get_text(const lv_obj_t* label)
static void my_label_set_text(lv_obj_t* label, const char* text)
{
if(text[0] == '%') {
uint16_t hash = Parser::get_sdbm(text);
size_t len = strlen(text);
const char* static_text;
uint16_t hash = Parser::get_sdbm(text);
size_t len = strlen(text);
const char* static_text = NULL;
switch(hash) {
case 10125:
static_text = haspDevice.get_hostname();
case ATTR_TEXT_MAC:
case ATTR_TEXT_IP:
if(len == 4) break;
break;
case ATTR_TEXT_HOSTNAME:
if(len == 10) static_text = haspDevice.get_hostname();
break;
case ATTR_TEXT_MODEL:
if(len == 7) static_text = haspDevice.get_model();
break;
case ATTR_TEXT_VERSION:
if(len == 9) static_text = haspDevice.get_version();
break;
default:
lv_label_set_text(label, text);
return;
}
lv_label_set_text_static(label, static_text);
} else {
lv_label_set_text(label, text);
if(static_text) {
lv_label_set_text_static(label, static_text);
return;
}
}
lv_label_set_text(label, text);
}
// OK