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_OBJID 41010
#define ATTR_OBJ 53623 #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 #endif

View File

@ -140,22 +140,34 @@ static void my_label_set_text(lv_obj_t* label, const char* text)
if(text[0] == '%') { if(text[0] == '%') {
uint16_t hash = Parser::get_sdbm(text); uint16_t hash = Parser::get_sdbm(text);
size_t len = strlen(text); size_t len = strlen(text);
const char* static_text; const char* static_text = NULL;
switch(hash) { switch(hash) {
case ATTR_TEXT_MAC:
case 10125: case ATTR_TEXT_IP:
static_text = haspDevice.get_hostname(); if(len == 4) break;
break; break;
default:
lv_label_set_text(label, text); 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;
}
if(static_text) {
lv_label_set_text_static(label, static_text);
return; return;
} }
lv_label_set_text_static(label, static_text);
} else {
lv_label_set_text(label, text);
} }
lv_label_set_text(label, text);
} }
// OK // OK