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("\">