implemented ui color schemes control

This commit is contained in:
Bogdan Pilyugin 2023-05-30 00:53:00 +02:00
parent a39c487617
commit 1645807256
6 changed files with 106 additions and 2 deletions

40
Kconfig
View File

@ -55,12 +55,50 @@ menu "WebGUIApp"
help
This will reset to default settings on every startup
menu "Web UI settings"
menu "Web UI settings"
config WEBGUIAPP_DEFAULT_COLOR_SCHEME
int "Default UI color scheme"
range 1 3
default 1
config WEBGUIAPP_ACCENT_COLOR
string "Accent color code for web ui"
default "#dba617"
help
Set accent color for user web ui
config WEBGUIAPP_SCH1_BACKGROUNG_COLOR
string "Scheme 1 background color"
default "#e0e0dd"
config WEBGUIAPP_SCH1_PANEL_COLOR
string "Scheme 1 panel background color"
default "#f0f0ed"
config WEBGUIAPP_SCH1_MENU_COLOR
string "Scheme 1 menu background color"
default "#ededea"
config WEBGUIAPP_SCH1_TEXT_COLOR
string "Scheme 1 font color"
default "#404040"
config WEBGUIAPP_SCH1_BORDER_COLOR
string "Scheme 1 border color"
default "#00000066"
config WEBGUIAPP_SCH2_BACKGROUNG_COLOR
string "Scheme 2 background color"
default "#1D2327"
config WEBGUIAPP_SCH2_PANEL_COLOR
string "Scheme 2 panel background color"
default "#2c3338"
config WEBGUIAPP_SCH2_MENU_COLOR
string "Scheme 2 menu background color"
default "#3c434a"
config WEBGUIAPP_SCH2_TEXT_COLOR
string "Scheme 2 font color"
default "#F0F0F0"
config WEBGUIAPP_SCH2_BORDER_COLOR
string "Scheme 2 border color"
default "#ffffff66"
endmenu
menu "OTA settings"

@ -1 +1 @@
Subproject commit a646e3ee0594ec2301e9b3fe6373ea274eb39e39
Subproject commit 03ff681a61cb03a43c6f008601a6e6090e9df2bd

View File

@ -49,6 +49,7 @@
char SN[11]; ///< String of serial number (decimal ID)
char ID[9]; ///< String of ID ( last 4 bytes of MAC)
int ColorSheme;
struct
{

View File

@ -504,6 +504,13 @@ static HTTP_IO_RESULT HTTPPostSystemSettings(httpd_req_t *req, char *PostData)
strcpy(GetSysConf()->OTAURL, tmp);
}
if (httpd_query_key_value(PostData, "colscheme", tmp, sizeof(tmp)) == ESP_OK)
{
uint16_t chm = atoi((const char*) tmp);
if (chm < 3 && chm >= 1)
GetSysConf()->ColorSheme = chm;
}
if (httpd_query_key_value(PostData, "upd", tmp, sizeof(tmp)) == ESP_OK)
{

View File

@ -116,10 +116,58 @@ static void PrintCheckbox(char *VarData, void *arg, bool checked)
snprintf(VarData, MAX_DYNVAR_LENGTH, " ");
}
/*GUI color define*/
static void HTTPPrint_bgrclr(char *VarData, void *arg)
{
const char *sch = CONFIG_WEBGUIAPP_SCH1_BACKGROUNG_COLOR;
if(GetSysConf()->ColorSheme == 2)
sch = CONFIG_WEBGUIAPP_SCH2_BACKGROUNG_COLOR;
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", sch);
}
static void HTTPPrint_pnlclr(char *VarData, void *arg)
{
const char *sch = CONFIG_WEBGUIAPP_SCH1_PANEL_COLOR;
if(GetSysConf()->ColorSheme == 2)
sch = CONFIG_WEBGUIAPP_SCH2_PANEL_COLOR;
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", sch);
}
static void HTTPPrint_mnuclr(char *VarData, void *arg)
{
const char *sch = CONFIG_WEBGUIAPP_SCH1_MENU_COLOR;
if(GetSysConf()->ColorSheme == 2)
sch = CONFIG_WEBGUIAPP_SCH2_MENU_COLOR;
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", sch);
}
static void HTTPPrint_actclr(char *VarData, void *arg)
{
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", CONFIG_WEBGUIAPP_ACCENT_COLOR);
}
static void HTTPPrint_fntclr(char *VarData, void *arg)
{
const char *sch = CONFIG_WEBGUIAPP_SCH1_TEXT_COLOR;
if(GetSysConf()->ColorSheme == 2)
sch = CONFIG_WEBGUIAPP_SCH2_TEXT_COLOR;
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", sch);
}
static void HTTPPrint_brdclr(char *VarData, void *arg)
{
const char *sch = CONFIG_WEBGUIAPP_SCH1_BORDER_COLOR;
if(GetSysConf()->ColorSheme == 2)
sch = CONFIG_WEBGUIAPP_SCH2_BORDER_COLOR;
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", sch);
}
static void HTTPPrint_colchm(char *VarData, void *arg)
{
if ((*(uint8_t*) arg) == GetSysConf()->ColorSheme)
snprintf(VarData, MAX_DYNVAR_LENGTH, "selected");
else
snprintf(VarData, MAX_DYNVAR_LENGTH, " ");
}
static void HTTPPrint_name(char *VarData, void *arg)
@ -720,7 +768,15 @@ static void HTTPPrint_DEF(char *VarData, void *arg)
dyn_var_handler_t HANDLERS_ARRAY[] = {
/*GUI settings*/
{ "bgrclr", sizeof("bgrclr") - 1, &HTTPPrint_bgrclr },
{ "pnlclr", sizeof("pnlclr") - 1, &HTTPPrint_pnlclr },
{ "mnuclr", sizeof("mnuclr") - 1, &HTTPPrint_mnuclr },
{ "actclr", sizeof("actclr") - 1, &HTTPPrint_actclr },
{ "fntclr", sizeof("fntclr") - 1, &HTTPPrint_fntclr },
{ "brdclr", sizeof("brdclr") - 1, &HTTPPrint_brdclr },
{ "colchm", sizeof("colchm") - 1, &HTTPPrint_colchm },
/*System settings*/
{ "name", sizeof("name") - 1, &HTTPPrint_name },

View File

@ -243,6 +243,8 @@ static void ResetSysConfig(SYS_CONFIG *Conf)
GetChipId((uint8_t*) d.v);
snprintf(Conf->SN, 11, "%010u", (unsigned int)swap(d.Val));
Conf->ColorSheme = CONFIG_WEBGUIAPP_DEFAULT_COLOR_SCHEME;
memcpy(Conf->NetBIOSName, CONFIG_WEBGUIAPP_HOSTNAME,
sizeof(CONFIG_WEBGUIAPP_HOSTNAME));
memcpy(Conf->SysName, CONFIG_WEBGUIAPP_USERNAME,