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 help
This will reset to default settings on every startup 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 config WEBGUIAPP_ACCENT_COLOR
string "Accent color code for web ui" string "Accent color code for web ui"
default "#dba617" default "#dba617"
help help
Set accent color for user web ui 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 endmenu
menu "OTA settings" 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 SN[11]; ///< String of serial number (decimal ID)
char ID[9]; ///< String of ID ( last 4 bytes of MAC) char ID[9]; ///< String of ID ( last 4 bytes of MAC)
int ColorSheme;
struct struct
{ {

View File

@ -504,6 +504,13 @@ static HTTP_IO_RESULT HTTPPostSystemSettings(httpd_req_t *req, char *PostData)
strcpy(GetSysConf()->OTAURL, tmp); 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) 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, " "); 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) static void HTTPPrint_actclr(char *VarData, void *arg)
{ {
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", CONFIG_WEBGUIAPP_ACCENT_COLOR); 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) 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[] = { dyn_var_handler_t HANDLERS_ARRAY[] = {
/*GUI settings*/ /*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 }, { "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*/ /*System settings*/
{ "name", sizeof("name") - 1, &HTTPPrint_name }, { "name", sizeof("name") - 1, &HTTPPrint_name },

View File

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