mirror of
				https://github.com/s00500/ESPUI.git
				synced 2025-11-04 04:13:23 +00:00 
			
		
		
		
	introduce lambda
This commit is contained in:
		@@ -627,27 +627,25 @@ uint16_t ESPUIClass::addControl(ControlType type, const char* label, const Strin
 | 
			
		||||
uint16_t ESPUIClass::addControl(
 | 
			
		||||
    ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(type, label, value, color, parentControl, nullptr);
 | 
			
		||||
    return addControl(type, label, value, color, parentControl, new Control(type, label, nullptr, value, color, true, parentControl));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::addControl(ControlType type, const char* label, const String& value, ControlColor color,
 | 
			
		||||
    uint16_t parentControl, void (*callback)(Control*, int))
 | 
			
		||||
    uint16_t parentControl, std::function<void(Control*, int)> callback)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t id = addControl(type, label, value, color, parentControl, nullptr, nullptr);
 | 
			
		||||
    uint16_t id = addControl(type, label, value, color, parentControl);
 | 
			
		||||
    // set the original style callback
 | 
			
		||||
    getControl(id)->callback = callback;
 | 
			
		||||
    return id;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::addControl(ControlType type, const char* label, const String& value, ControlColor color,
 | 
			
		||||
    uint16_t parentControl, void (*callback)(Control*, int, void*), void* UserData)
 | 
			
		||||
uint16_t ESPUIClass::addControl(
 | 
			
		||||
    ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, Control* control)
 | 
			
		||||
{
 | 
			
		||||
#ifdef ESP32
 | 
			
		||||
    xSemaphoreTake(ControlsSemaphore, portMAX_DELAY);
 | 
			
		||||
#endif // def ESP32
 | 
			
		||||
 | 
			
		||||
    Control* control = new Control(type, label, callback, UserData, value, color, true, parentControl);
 | 
			
		||||
 | 
			
		||||
    if (controls == nullptr)
 | 
			
		||||
    {
 | 
			
		||||
        controls = control;
 | 
			
		||||
@@ -753,70 +751,37 @@ uint16_t ESPUIClass::graph(const char* label, ControlColor color)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::slider(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int), ControlColor color, int value, int min, int max)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t id = slider(label, nullptr, color, value, min, max, nullptr);
 | 
			
		||||
    getControl(id)->callback = callback;
 | 
			
		||||
    return id;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::slider(const char* label, void (*callback)(Control*, int, void*), ControlColor color, int value,
 | 
			
		||||
    int min, int max, void* userData)
 | 
			
		||||
    const char* label, std::function<void(Control*, int)> callback, ControlColor color, int value, int min, int max)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t sliderId
 | 
			
		||||
        = addControl(ControlType::Slider, label, String(value), color, Control::noParent, callback, userData);
 | 
			
		||||
        = addControl(ControlType::Slider, label, String(value), color, Control::noParent, callback);
 | 
			
		||||
    addControl(ControlType::Min, label, String(min), ControlColor::None, sliderId);
 | 
			
		||||
    addControl(ControlType::Max, label, String(max), ControlColor::None, sliderId);
 | 
			
		||||
 | 
			
		||||
    return sliderId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::button(const char* label, void (*callback)(Control*, int), ControlColor color, const String& value)
 | 
			
		||||
uint16_t ESPUIClass::button(const char* label, std::function<void(Control*, int)> callback, ControlColor color, const String& value)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Button, label, value, color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::button(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int, void*), ControlColor color, const String& value, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Button, label, value, color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::switcher(const char* label, void (*callback)(Control*, int), ControlColor color, bool startState)
 | 
			
		||||
uint16_t ESPUIClass::switcher(const char* label, std::function<void(Control*, int)> callback, ControlColor color, bool startState)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Switcher, label, startState ? "1" : "0", color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::switcher(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int, void*), ControlColor color, bool startState, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(
 | 
			
		||||
        ControlType::Switcher, label, startState ? "1" : "0", color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::pad(const char* label, void (*callback)(Control*, int), ControlColor color)
 | 
			
		||||
uint16_t ESPUIClass::pad(const char* label, std::function<void(Control*, int)> callback, ControlColor color)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Pad, label, "", color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::pad(const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Pad, label, "", color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::padWithCenter(const char* label, void (*callback)(Control*, int), ControlColor color)
 | 
			
		||||
uint16_t ESPUIClass::padWithCenter(const char* label, std::function<void(Control*, int)> callback, ControlColor color)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::PadWithCenter, label, "", color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::padWithCenter(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::PadWithCenter, label, "", color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::number(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int), ControlColor color, int number, int min, int max)
 | 
			
		||||
    const char* label, std::function<void(Control*, int)> callback, ControlColor color, int number, int min, int max)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t numberId = addControl(ControlType::Number, label, String(number), color, Control::noParent, callback);
 | 
			
		||||
    addControl(ControlType::Min, label, String(min), ControlColor::None, numberId);
 | 
			
		||||
@@ -824,16 +789,6 @@ uint16_t ESPUIClass::number(
 | 
			
		||||
    return numberId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::number(const char* label, void (*callback)(Control*, int, void*), ControlColor color, int number,
 | 
			
		||||
    int min, int max, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t numberId
 | 
			
		||||
        = addControl(ControlType::Number, label, String(number), color, Control::noParent, callback, UserData);
 | 
			
		||||
    addControl(ControlType::Min, label, String(min), ControlColor::None, numberId);
 | 
			
		||||
    addControl(ControlType::Max, label, String(max), ControlColor::None, numberId);
 | 
			
		||||
    return numberId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::gauge(const char* label, ControlColor color, int number, int min, int max)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t numberId = addControl(ControlType::Gauge, label, String(number), color, Control::noParent);
 | 
			
		||||
@@ -847,28 +802,16 @@ uint16_t ESPUIClass::separator(const char* label)
 | 
			
		||||
    return addControl(ControlType::Separator, label, "", ControlColor::Alizarin, Control::noParent, nullptr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::accelerometer(const char* label, void (*callback)(Control*, int), ControlColor color)
 | 
			
		||||
uint16_t ESPUIClass::accelerometer(const char* label, std::function<void(Control*, int)> callback, ControlColor color)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Accel, label, "", color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::accelerometer(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Accel, label, "", color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::text(const char* label, void (*callback)(Control*, int), ControlColor color, const String& value)
 | 
			
		||||
uint16_t ESPUIClass::text(const char* label, std::function<void(Control*, int)> callback, ControlColor color, const String& value)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Text, label, value, color, Control::noParent, callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t ESPUIClass::text(
 | 
			
		||||
    const char* label, void (*callback)(Control*, int, void*), ControlColor color, const String& value, void* UserData)
 | 
			
		||||
{
 | 
			
		||||
    return addControl(ControlType::Text, label, value, color, Control::noParent, callback, UserData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Control* ESPUIClass::getControl(uint16_t id)
 | 
			
		||||
{
 | 
			
		||||
#ifdef ESP32
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										73
									
								
								src/ESPUI.h
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								src/ESPUI.h
									
									
									
									
									
								
							@@ -125,33 +125,19 @@ public:
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value);
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color);
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl);
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, void (*callback)(Control*, int));
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, void (*callback)(Control*, int, void *), void* UserData);
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, std::function<void(Control*, int)> callback);
 | 
			
		||||
 | 
			
		||||
    bool removeControl(uint16_t id, bool force_rebuild_ui = false);
 | 
			
		||||
 | 
			
		||||
    // create Elements
 | 
			
		||||
    // Create Event Button
 | 
			
		||||
    uint16_t button(const char* label, void (*callback)(Control*, int), ControlColor color, const String& value = "");
 | 
			
		||||
    uint16_t button(const char* label, void (*callback)(Control*, int, void*), ControlColor color, const String& value, void* UserData);
 | 
			
		||||
 | 
			
		||||
    uint16_t switcher(const char* label, void (*callback)(Control*, int), ControlColor color, bool startState = false); // Create Toggle Button
 | 
			
		||||
    uint16_t switcher(const char* label, void (*callback)(Control*, int, void*), ControlColor color, bool startState, void* UserData); // Create Toggle Button
 | 
			
		||||
 | 
			
		||||
    uint16_t pad(const char* label, void (*callback)(Control*, int), ControlColor color); // Create Pad Control
 | 
			
		||||
    uint16_t pad(const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData); // Create Pad Control
 | 
			
		||||
 | 
			
		||||
    uint16_t padWithCenter(const char* label, void (*callback)(Control*, int), ControlColor color); // Create Pad Control with Centerbutton
 | 
			
		||||
    uint16_t padWithCenter(const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData); // Create Pad Control with Centerbutton
 | 
			
		||||
 | 
			
		||||
    uint16_t slider(const char* label, void (*callback)(Control*, int), ControlColor color, int value, int min = 0, int max = 100); // Create Slider Control
 | 
			
		||||
    uint16_t slider(const char* label, void (*callback)(Control*, int, void*), ControlColor color, int value, int min, int max, void* UserData); // Create Slider Control
 | 
			
		||||
 | 
			
		||||
    uint16_t number(const char* label, void (*callback)(Control*, int), ControlColor color, int value, int min = 0, int max = 100); // Create a Number Input Control
 | 
			
		||||
    uint16_t number(const char* label, void (*callback)(Control*, int, void*), ControlColor color, int value, int min, int max, void* UserData); // Create a Number Input Control
 | 
			
		||||
 | 
			
		||||
    uint16_t text(const char* label, void (*callback)(Control*, int), ControlColor color, const String& value = ""); // Create a Text Input Control
 | 
			
		||||
    uint16_t text(const char* label, void (*callback)(Control*, int, void*), ControlColor color, const String& value, void* UserData); // Create a Text Input Control
 | 
			
		||||
    uint16_t button(const char* label, std::function<void(Control*, int)> callback, ControlColor color, const String& value = "");
 | 
			
		||||
    uint16_t switcher(const char* label, std::function<void(Control*, int)> callback, ControlColor color, bool startState = false); // Create Toggle Button
 | 
			
		||||
    uint16_t pad(const char* label, std::function<void(Control*, int)> callback, ControlColor color); // Create Pad Control
 | 
			
		||||
    uint16_t padWithCenter(const char* label, std::function<void(Control*, int)> callback, ControlColor color); // Create Pad Control with Centerbutton
 | 
			
		||||
    uint16_t slider(const char* label, std::function<void(Control*, int)> callback, ControlColor color, int value, int min = 0, int max = 100); // Create Slider Control
 | 
			
		||||
    uint16_t number(const char* label, std::function<void(Control*, int)> callback, ControlColor color, int value, int min = 0, int max = 100); // Create a Number Input Control
 | 
			
		||||
    uint16_t text(const char* label, std::function<void(Control*, int)> callback, ControlColor color, const String& value = ""); // Create a Text Input Control
 | 
			
		||||
 | 
			
		||||
    // Output only
 | 
			
		||||
    uint16_t label(const char* label, ControlColor color,
 | 
			
		||||
@@ -162,8 +148,7 @@ public:
 | 
			
		||||
    uint16_t separator(const char* label); //Create separator
 | 
			
		||||
 | 
			
		||||
    // Input only
 | 
			
		||||
    uint16_t accelerometer(const char* label, void (*callback)(Control*, int), ControlColor color);
 | 
			
		||||
    uint16_t accelerometer(const char* label, void (*callback)(Control*, int, void*), ControlColor color, void* UserData);
 | 
			
		||||
    uint16_t accelerometer(const char* label, std::function<void(Control*, int)> callback, ControlColor color);
 | 
			
		||||
 | 
			
		||||
    // Update Elements
 | 
			
		||||
 | 
			
		||||
@@ -213,6 +198,44 @@ public:
 | 
			
		||||
    Verbosity verbosity = Verbosity::Quiet;
 | 
			
		||||
    AsyncWebServer* server;
 | 
			
		||||
 | 
			
		||||
    // emulate former extended callback API by using an intermediate lambda (no deprecation)
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, std::function<void(Control*, int, void*)> callback, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return addControl(type, label, value, color, parentControl, [callback, userData](Control* sender, int type){ callback(sender, type, userData); });
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t button(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, const String& value, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return button(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color, value);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t switcher(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, bool startState, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return switcher(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color, startState);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t pad(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return pad(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t padWithCenter(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return padWithCenter(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t slider(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, int value, int min, int max, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return slider(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color, value, min, max);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t number(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, int value, int min, int max, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return number(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color, value, min, max);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t text(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, const String& value, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return text(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); } , color, value);
 | 
			
		||||
    }
 | 
			
		||||
    uint16_t accelerometer(const char* label, std::function<void(Control*, int, void*)> callback, ControlColor color, void* userData)
 | 
			
		||||
    {
 | 
			
		||||
        return accelerometer(label, [callback, userData](Control* sender, int type){ callback(sender, type, userData); }, color);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    friend class ESPUIclient;
 | 
			
		||||
    friend class ESPUIcontrol;
 | 
			
		||||
@@ -226,6 +249,8 @@ protected:
 | 
			
		||||
    bool basicAuth = true;
 | 
			
		||||
    uint16_t controlCount = 0;
 | 
			
		||||
 | 
			
		||||
    uint16_t addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, Control* control);
 | 
			
		||||
 | 
			
		||||
#define ClientUpdateType_t ESPUIclient::ClientUpdateType_t
 | 
			
		||||
    void NotifyClients(ClientUpdateType_t newState);
 | 
			
		||||
    void NotifyClient(uint32_t WsClientId, ClientUpdateType_t newState);
 | 
			
		||||
 
 | 
			
		||||
@@ -3,13 +3,11 @@
 | 
			
		||||
static uint16_t idCounter = 0;
 | 
			
		||||
static const String ControlError = "*** ESPUI ERROR: Could not transfer control ***";
 | 
			
		||||
 | 
			
		||||
Control::Control(ControlType type, const char* label, void (*callback)(Control*, int, void*), void* UserData,
 | 
			
		||||
Control::Control(ControlType type, const char* label, std::function<void(Control*, int)> callback,
 | 
			
		||||
    const String& value, ControlColor color, bool visible, uint16_t parentControl)
 | 
			
		||||
    : type(type),
 | 
			
		||||
      label(label),
 | 
			
		||||
      callback(nullptr),
 | 
			
		||||
      extendedCallback(callback),
 | 
			
		||||
      user(UserData),
 | 
			
		||||
      callback(callback),
 | 
			
		||||
      value(value),
 | 
			
		||||
      color(color),
 | 
			
		||||
      visible(visible),
 | 
			
		||||
@@ -27,8 +25,6 @@ Control::Control(const Control& Control)
 | 
			
		||||
        id(Control.id),
 | 
			
		||||
        label(Control.label),
 | 
			
		||||
        callback(Control.callback),
 | 
			
		||||
        extendedCallback(Control.extendedCallback),
 | 
			
		||||
        user(Control.user),
 | 
			
		||||
        value(Control.value),
 | 
			
		||||
        color(Control.color),
 | 
			
		||||
        visible(Control.visible),
 | 
			
		||||
@@ -42,17 +38,11 @@ void Control::SendCallback(int type)
 | 
			
		||||
    {
 | 
			
		||||
        callback(this, type);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (extendedCallback)
 | 
			
		||||
    {
 | 
			
		||||
        extendedCallback(this, type, user);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Control::DeleteControl() 
 | 
			
		||||
{
 | 
			
		||||
    ControlSyncState = ControlSyncState_t::deleted;
 | 
			
		||||
    extendedCallback = nullptr;
 | 
			
		||||
    callback = nullptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
#include <Arduino.h>
 | 
			
		||||
#include <ArduinoJson.h>
 | 
			
		||||
#include <functional>
 | 
			
		||||
 | 
			
		||||
enum ControlType : uint8_t
 | 
			
		||||
{
 | 
			
		||||
@@ -53,9 +54,7 @@ public:
 | 
			
		||||
    ControlType type;
 | 
			
		||||
    uint16_t id; // just mirroring the id here for practical reasons
 | 
			
		||||
    const char* label;
 | 
			
		||||
    void (*callback)(Control*, int);
 | 
			
		||||
    void (*extendedCallback)(Control*, int, void*);
 | 
			
		||||
    void* user;
 | 
			
		||||
    std::function<void(Control*, int)> callback;
 | 
			
		||||
    String value;
 | 
			
		||||
    ControlColor color;
 | 
			
		||||
    bool visible;
 | 
			
		||||
@@ -72,8 +71,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    Control(ControlType type, 
 | 
			
		||||
            const char* label, 
 | 
			
		||||
            void (*callback)(Control*, int, void*), 
 | 
			
		||||
            void* UserData,
 | 
			
		||||
            std::function<void(Control*, int)> callback,
 | 
			
		||||
            const String& value, 
 | 
			
		||||
            ControlColor color, 
 | 
			
		||||
            bool visible, 
 | 
			
		||||
@@ -82,7 +80,7 @@ public:
 | 
			
		||||
    Control(const Control& Control);
 | 
			
		||||
 | 
			
		||||
    void SendCallback(int type);
 | 
			
		||||
    bool HasCallback() { return ((nullptr != callback) || (nullptr != extendedCallback)); }
 | 
			
		||||
    bool HasCallback() { return (nullptr != callback); }
 | 
			
		||||
    void MarshalControl(ArduinoJson::JsonObject& item, bool refresh);
 | 
			
		||||
    void MarshalErrorMessage(ArduinoJson::JsonObject& item);
 | 
			
		||||
    bool ToBeDeleted() { return (ControlSyncState_t::deleted == ControlSyncState); }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user