mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Add labelStyles support
This commit is contained in:
parent
35ec178a2c
commit
dd385b5868
@ -101,22 +101,27 @@ bool openFont(File & file, const char * filename)
|
|||||||
{
|
{
|
||||||
file = SPIFFS.open(filename, "r");
|
file = SPIFFS.open(filename, "r");
|
||||||
if(!file) {
|
if(!file) {
|
||||||
errorPrintln(String(F("FONT: %sOpening font: ")) + String(filename));
|
String error = String(F("FONT: %sOpening font: "));
|
||||||
|
error += String(filename);
|
||||||
|
errorPrintln(error);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lv_zifont_font_init(lv_font_t * font, const char * font_path, uint16_t size)
|
int lv_zifont_font_init(lv_font_t ** font, const char * font_path, uint16_t size)
|
||||||
{
|
{
|
||||||
charInBuffer = 0; // invalidate any previous cache
|
charInBuffer = 0; // invalidate any previous cache
|
||||||
|
|
||||||
|
if(!*font) *font = (lv_font_t *)lv_mem_alloc(sizeof(lv_font_t));
|
||||||
|
LV_ASSERT_MEM(*font);
|
||||||
|
|
||||||
lv_font_fmt_zifont_dsc_t * dsc;
|
lv_font_fmt_zifont_dsc_t * dsc;
|
||||||
if(!font->dsc) {
|
if(!(*font)->dsc) {
|
||||||
dsc = (lv_font_fmt_zifont_dsc_t *)lv_mem_alloc(sizeof(lv_font_fmt_zifont_dsc_t));
|
dsc = (lv_font_fmt_zifont_dsc_t *)lv_mem_alloc(sizeof(lv_font_fmt_zifont_dsc_t));
|
||||||
LV_ASSERT_MEM(dsc);
|
LV_ASSERT_MEM(dsc);
|
||||||
} else {
|
} else {
|
||||||
dsc = (lv_font_fmt_zifont_dsc_t *)font->dsc;
|
dsc = (lv_font_fmt_zifont_dsc_t *)(*font)->dsc;
|
||||||
}
|
}
|
||||||
if(dsc == NULL) return ZIFONT_ERROR_OUT_OF_MEMORY;
|
if(dsc == NULL) return ZIFONT_ERROR_OUT_OF_MEMORY;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
@ -204,16 +209,16 @@ int lv_zifont_font_init(lv_font_t * font, const char * font_path, uint16_t size)
|
|||||||
dsc->last_glyph_dsc = NULL;
|
dsc->last_glyph_dsc = NULL;
|
||||||
dsc->last_glyph_id = 0;
|
dsc->last_glyph_id = 0;
|
||||||
|
|
||||||
font->get_glyph_dsc = lv_font_get_glyph_dsc_fmt_zifont; /*Function pointer to get glyph's data*/
|
(*font)->get_glyph_dsc = lv_font_get_glyph_dsc_fmt_zifont; /*Function pointer to get glyph's data*/
|
||||||
font->get_glyph_bitmap = lv_font_get_bitmap_fmt_zifont; /*Function pointer to get glyph's bitmap*/
|
(*font)->get_glyph_bitmap = lv_font_get_bitmap_fmt_zifont; /*Function pointer to get glyph's bitmap*/
|
||||||
font->line_height = dsc->CharHeight; /*The maximum line height required by the font*/
|
(*font)->line_height = dsc->CharHeight; /*The maximum line height required by the font*/
|
||||||
font->base_line = 0; /*Baseline measured from the bottom of the line*/
|
(*font)->base_line = 0; /*Baseline measured from the bottom of the line*/
|
||||||
font->dsc = dsc; /* header data struct */ /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
(*font)->dsc = dsc; /* header data struct */ /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||||
font->subpx = 0;
|
(*font)->subpx = 0;
|
||||||
|
|
||||||
if(font->user_data != (char *)font_path) {
|
if((*font)->user_data != (char *)font_path) {
|
||||||
if(font->user_data) free(font->user_data);
|
if((*font)->user_data) free((*font)->user_data);
|
||||||
font->user_data = (char *)font_path;
|
(*font)->user_data = (char *)font_path;
|
||||||
}
|
}
|
||||||
return ZIFONT_NO_ERROR;
|
return ZIFONT_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ typedef struct
|
|||||||
* GLOBAL PROTOTYPES
|
* GLOBAL PROTOTYPES
|
||||||
**********************/
|
**********************/
|
||||||
int lv_zifont_init(void);
|
int lv_zifont_init(void);
|
||||||
int lv_zifont_font_init(lv_font_t * font, const char * font_path, uint16_t size);
|
int lv_zifont_font_init(lv_font_t ** font, const char * font_path, uint16_t size);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* MACROS
|
* MACROS
|
||||||
|
46
src/hasp.cpp
46
src/hasp.cpp
@ -422,9 +422,7 @@ bool haspGetObjAttribute(lv_obj_t * obj, String strAttr, std::string & strPayloa
|
|||||||
if(check_obj_type(list.type[0], LV_HASP_ROLLER))
|
if(check_obj_type(list.type[0], LV_HASP_ROLLER))
|
||||||
strPayload = String(lv_roller_get_selected(obj)).c_str();
|
strPayload = String(lv_roller_get_selected(obj)).c_str();
|
||||||
|
|
||||||
if(check_obj_type(list.type[0], LV_HASP_LED))
|
if(check_obj_type(list.type[0], LV_HASP_LED)) strPayload = String(lv_led_get_bright(obj)).c_str();
|
||||||
strPayload = String(lv_led_get_bright(obj) != 255 ? 0 : 1).c_str();
|
|
||||||
|
|
||||||
if(check_obj_type(list.type[0], LV_HASP_SWITCH)) strPayload = String(lv_sw_get_state(obj)).c_str();
|
if(check_obj_type(list.type[0], LV_HASP_SWITCH)) strPayload = String(lv_sw_get_state(obj)).c_str();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -521,7 +519,7 @@ void haspSetObjAttribute(lv_obj_t * obj, String strAttr, String strPayload)
|
|||||||
else if(check_obj_type(list.type[0], LV_HASP_SWITCH))
|
else if(check_obj_type(list.type[0], LV_HASP_SWITCH))
|
||||||
val == 0 ? lv_sw_off(obj, LV_ANIM_ON) : lv_sw_on(obj, LV_ANIM_ON);
|
val == 0 ? lv_sw_off(obj, LV_ANIM_ON) : lv_sw_on(obj, LV_ANIM_ON);
|
||||||
else if(check_obj_type(list.type[0], LV_HASP_LED))
|
else if(check_obj_type(list.type[0], LV_HASP_LED))
|
||||||
val == 0 ? lv_led_off(obj) : lv_led_on(obj);
|
lv_led_set_bright(obj, (uint8_t)val);
|
||||||
else if(check_obj_type(list.type[0], LV_HASP_GAUGE))
|
else if(check_obj_type(list.type[0], LV_HASP_GAUGE))
|
||||||
lv_gauge_set_value(obj, 0, intval);
|
lv_gauge_set_value(obj, 0, intval);
|
||||||
else if(check_obj_type(list.type[0], LV_HASP_DDLIST))
|
else if(check_obj_type(list.type[0], LV_HASP_DDLIST))
|
||||||
@ -771,10 +769,9 @@ void haspSetup(JsonObject settings)
|
|||||||
// static lv_font_t *
|
// static lv_font_t *
|
||||||
// my_font = (lv_font_t *)lv_mem_alloc(sizeof(lv_font_t));
|
// my_font = (lv_font_t *)lv_mem_alloc(sizeof(lv_font_t));
|
||||||
|
|
||||||
defaultFont = (lv_font_t *)lv_mem_alloc(sizeof(lv_font_t));
|
|
||||||
lv_zifont_init();
|
lv_zifont_init();
|
||||||
|
|
||||||
if(lv_zifont_font_init(defaultFont, haspZiFontPath, 24) != 0) {
|
if(lv_zifont_font_init(&defaultFont, haspZiFontPath, 24) != 0) {
|
||||||
errorPrintln(String(F("HASP: %sFailed to set the custom font to ")) + String(haspZiFontPath));
|
errorPrintln(String(F("HASP: %sFailed to set the custom font to ")) + String(haspZiFontPath));
|
||||||
defaultFont = NULL; // Use default font
|
defaultFont = NULL; // Use default font
|
||||||
}
|
}
|
||||||
@ -847,6 +844,29 @@ void haspSetup(JsonObject settings)
|
|||||||
// lv_obj_set_size(pages[0], hres, vres);
|
// lv_obj_set_size(pages[0], hres, vres);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(uint8_t i = 0; i < (sizeof pages / sizeof *pages); i++) {
|
||||||
|
pages[i] = lv_obj_create(NULL, NULL);
|
||||||
|
// lv_obj_set_size(pages[0], hres, vres);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(lv_zifont_font_init(&haspFonts[0], "/fonts/HMI FrankRuhlLibre 24.zi", 24) != 0) {
|
||||||
|
errorPrintln(String(F("HASP: %sFailed to set the custom font to 0")));
|
||||||
|
defaultFont = NULL; // Use default font
|
||||||
|
}
|
||||||
|
if(lv_zifont_font_init(&haspFonts[1], "/fonts/HMI FiraSans 24.zi", 24) != 0) {
|
||||||
|
errorPrintln(String(F("HASP: %sFailed to set the custom font to 1")));
|
||||||
|
defaultFont = NULL; // Use default font
|
||||||
|
}
|
||||||
|
if(lv_zifont_font_init(&haspFonts[2], "/fonts/HMI AbrilFatface 24.zi", 24) != 0) {
|
||||||
|
errorPrintln(String(F("HASP: %sFailed to set the custom font to 2")));
|
||||||
|
defaultFont = NULL; // Use default font
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 3; i++) {
|
||||||
|
lv_style_copy(&labelStyles[i], &lv_style_pretty_color);
|
||||||
|
labelStyles[i].text.font = haspFonts[i];
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
lv_obj_t * obj;
|
lv_obj_t * obj;
|
||||||
|
|
||||||
@ -1196,8 +1216,9 @@ void haspNewObject(const JsonObject & config)
|
|||||||
lv_coord_t height = config[F("h")].as<lv_coord_t>();
|
lv_coord_t height = config[F("h")].as<lv_coord_t>();
|
||||||
if(width == 0) width = 32;
|
if(width == 0) width = 32;
|
||||||
if(height == 0) height = 32;
|
if(height == 0) height = 32;
|
||||||
uint8_t objid = config[F("objid")].as<uint8_t>();
|
uint8_t objid = config[F("objid")].as<uint8_t>();
|
||||||
uint8_t id = config[F("id")].as<uint8_t>();
|
uint8_t id = config[F("id")].as<uint8_t>();
|
||||||
|
uint8_t styleid = config[F("styleid")].as<uint8_t>();
|
||||||
|
|
||||||
/* Define Objects*/
|
/* Define Objects*/
|
||||||
lv_obj_t * obj;
|
lv_obj_t * obj;
|
||||||
@ -1228,6 +1249,10 @@ void haspNewObject(const JsonObject & config)
|
|||||||
if(config[F("txt")]) {
|
if(config[F("txt")]) {
|
||||||
lv_label_set_text(obj, config[F("txt")].as<String>().c_str());
|
lv_label_set_text(obj, config[F("txt")].as<String>().c_str());
|
||||||
}
|
}
|
||||||
|
if(styleid < sizeof labelStyles / sizeof *labelStyles) {
|
||||||
|
debugPrintln("HASP: Styleid set to " + styleid);
|
||||||
|
lv_label_set_style(obj, LV_LABEL_STYLE_MAIN, &labelStyles[styleid]);
|
||||||
|
}
|
||||||
/* click area padding */
|
/* click area padding */
|
||||||
uint8_t padh = config[F("padh")].as<uint8_t>();
|
uint8_t padh = config[F("padh")].as<uint8_t>();
|
||||||
uint8_t padv = config[F("padv")].as<uint8_t>();
|
uint8_t padv = config[F("padv")].as<uint8_t>();
|
||||||
@ -1305,9 +1330,8 @@ void haspNewObject(const JsonObject & config)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case LV_HASP_LED: {
|
case LV_HASP_LED: {
|
||||||
obj = lv_led_create(parent_obj, NULL);
|
obj = lv_led_create(parent_obj, NULL);
|
||||||
bool state = config[F("val")].as<bool>();
|
lv_led_set_bright(obj, config[F("val")].as<uint8_t>() | 0);
|
||||||
if(state) lv_led_on(obj);
|
|
||||||
lv_obj_set_event_cb(obj, btn_event_handler);
|
lv_obj_set_event_cb(obj, btn_event_handler);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ extern "C" {
|
|||||||
#include "hasp_conf.h"
|
#include "hasp_conf.h"
|
||||||
#endif */
|
#endif */
|
||||||
|
|
||||||
#if LV_USE_HASP
|
#if HASP_USE_APP
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user