diff --git a/Kconfig b/Kconfig index fb5ecb5..bc4916d 100644 --- a/Kconfig +++ b/Kconfig @@ -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" diff --git a/extlibs/libespfs b/extlibs/libespfs index a646e3e..03ff681 160000 --- a/extlibs/libespfs +++ b/extlibs/libespfs @@ -1 +1 @@ -Subproject commit a646e3ee0594ec2301e9b3fe6373ea274eb39e39 +Subproject commit 03ff681a61cb03a43c6f008601a6e6090e9df2bd diff --git a/include/WebGUIAppMain.h b/include/WebGUIAppMain.h index 32d20d6..e714d49 100644 --- a/include/WebGUIAppMain.h +++ b/include/WebGUIAppMain.h @@ -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 { diff --git a/src/HTTPPostSystem.c b/src/HTTPPostSystem.c index bc53847..cb04570 100644 --- a/src/HTTPPostSystem.c +++ b/src/HTTPPostSystem.c @@ -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) { diff --git a/src/HTTPPrintSystem.c b/src/HTTPPrintSystem.c index 99076a5..84bb297 100644 --- a/src/HTTPPrintSystem.c +++ b/src/HTTPPrintSystem.c @@ -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 }, diff --git a/src/WebGUIAppMain.c b/src/WebGUIAppMain.c index 20f997e..bf53f3a 100644 --- a/src/WebGUIAppMain.c +++ b/src/WebGUIAppMain.c @@ -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,