From 40d4fc0c36c6deba19306bfc12b5b8fe3c3e2e07 Mon Sep 17 00:00:00 2001 From: Hieromon Ikasamo Date: Wed, 3 Jul 2019 18:09:40 +0900 Subject: [PATCH] Added the labelPosition attribute with AutoConnectCheckbox --- examples/Elements/Elements.ino | 1 + src/AutoConnectElementBasis.h | 8 +++++++- src/AutoConnectElementBasisImpl.h | 10 ++++++++-- src/AutoConnectElementJson.h | 6 +++++- src/AutoConnectElementJsonImpl.h | 15 ++++++++++++++- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/examples/Elements/Elements.ino b/examples/Elements/Elements.ino index dd874a6..55188b4 100644 --- a/examples/Elements/Elements.ino +++ b/examples/Elements/Elements.ino @@ -42,6 +42,7 @@ static const char PAGE_ELEMENTS[] PROGMEM = R"( "type": "ACCheckbox", "value": "check", "label": "Check", + "labelposition": "infront", "checked": true }, { diff --git a/src/AutoConnectElementBasis.h b/src/AutoConnectElementBasis.h index 49d51bf..21d91c9 100644 --- a/src/AutoConnectElementBasis.h +++ b/src/AutoConnectElementBasis.h @@ -58,6 +58,11 @@ typedef enum { AC_Tag_P = 2 } ACPosterior_t; /**< Tag to be generated following element */ +typedef enum { + AC_Infront, + AC_Behind +} ACPosition_t; /**< Position of label subordinate to element */ + /** * AutoConnectAux element base. * Placed a raw text that can be added by user sketch. @@ -115,7 +120,7 @@ class AutoConnectButtonBasis : AC_AUTOCONNECTELEMENT_ON_VIRTUAL public AutoConne */ class AutoConnectCheckboxBasis : AC_AUTOCONNECTELEMENT_ON_VIRTUAL public AutoConnectElementBasis { public: - explicit AutoConnectCheckboxBasis(const char* name = "", const char* value = "", const char* label = "", const bool checked = false, const ACPosterior_t post = AC_Tag_BR) : AutoConnectElementBasis(name, value, post), label(String(label)), checked(checked) { + explicit AutoConnectCheckboxBasis(const char* name = "", const char* value = "", const char* label = "", const bool checked = false, const ACPosition_t labelPosition = AC_Behind, const ACPosterior_t post = AC_Tag_BR) : AutoConnectElementBasis(name, value, post), label(String(label)), checked(checked), labelPosition(labelPosition) { _type = AC_Checkbox; } virtual ~AutoConnectCheckboxBasis() {} @@ -123,6 +128,7 @@ class AutoConnectCheckboxBasis : AC_AUTOCONNECTELEMENT_ON_VIRTUAL public AutoCon String label; /**< A label for a subsequent input box */ bool checked; /**< The element should be pre-selected */ + ACPosition_t labelPosition; /**< Output label according to ACPosition_t */ }; /** diff --git a/src/AutoConnectElementBasisImpl.h b/src/AutoConnectElementBasisImpl.h index 484fb46..1c6f1c0 100644 --- a/src/AutoConnectElementBasisImpl.h +++ b/src/AutoConnectElementBasisImpl.h @@ -66,8 +66,14 @@ const String AutoConnectCheckboxBasis::toHTML(void) const { if (checked) html += String(F(" checked")); if (label.length()) - html += String(F(" id=\"")) + name + String(F("\">