16#include "platforms/ui_defs.h"
21#define FL_NO_COPY(CLASS) \
22 CLASS(const CLASS &) = delete; \
23 CLASS &operator=(const CLASS &) = delete;
51 float value_normalized()
const {
59 float getMax()
const {
return mImpl.getMax(); }
60 float getMin()
const {
return mImpl.getMin(); }
61 void setValue(
float value);
62 operator float()
const {
return mImpl.value(); }
63 operator u8()
const {
return static_cast<u8>(
mImpl.value()); }
64 operator fl::u16()
const {
return static_cast<fl::u16
>(
mImpl.value()); }
65 operator int()
const {
return static_cast<int>(
mImpl.value()); }
66 template <
typename T> T
as()
const {
67 return static_cast<T
>(
mImpl.value());
70 int as_int()
const {
return static_cast<int>(
mImpl.value()); }
85 mImpl.setGroup(groupName);
137 if (
mImpl.isPressed()) {
148 if (
mImpl.clicked()) {
171 mImpl.setGroup(groupName);
233 operator bool()
const {
return value(); }
234 explicit operator int()
const {
return static_cast<int>(
value()); }
245 mImpl.setGroup(groupName);
297 operator double()
const {
return mImpl.value(); }
298 operator int()
const {
return static_cast<int>(
mImpl.value()); }
312 mImpl.setGroup(groupName);
358#if FASTLED_USE_JSON_UI
369 mImpl.setGroup(groupName);
386 mImpl.setGroup(groupName);
403 mImpl.setGroup(groupName);
425 mImpl.setGroup(groupName);
453 mImpl.setSelectedIndex(index);
460 operator int()
const {
return as_int(); }
474 int currentIndex =
as_int();
475 int nextIndex = (currentIndex + 1) %
static_cast<int>(
getOptionCount());
483 mImpl.setGroup(groupName);
535 template<
typename... UIElements>
537 :
mImpl(groupName.c_str()) {
553 control->setGroup(
name());
564 control.setGroup(
name());
567 template<
typename T,
typename... Rest>
568 void add(T& control, Rest&... rest) {
570 control.setGroup(
name());
575#define FASTLED_UI_DEFINE_OPERATORS(UI_CLASS) \
576 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, >=) \
577 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, <=) \
578 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, >) \
579 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, <) \
580 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, ==) \
581 FASTLED_DEFINE_POD_COMPARISON_OPERATOR(UI_CLASS, !=)
static void addListener(Listener *listener, int priority=0)
static void removeListener(Listener *listener)
FL_NO_COPY(UIAudio) UIAudio(const char *name)
void setGroup(const fl::string &groupName) override
UICheckbox & operator=(bool value)
FunctionList< UICheckbox & > mCallbacks
void setGroup(const fl::string &groupName) override
void onChanged(function< void(UICheckbox &)> callback)
bool mLastFrameValueValid
UICheckbox(const char *name, bool value=false)
FL_NO_COPY(UIDescription)
UIDescription(const char *name)
void setGroup(const fl::string &groupName) override
void addNextButton(int pin)
fl::span< fl::string > options
FL_NO_COPY(UIDropdown) UIDropdown(const char *name
UIDropdown(const char *name, fl::initializer_list< fl::string > options)
bool mLastFrameValueValid
int onChanged(function< void(UIDropdown &)> callback)
fl::size getOptionCount() const
fl::string getOption(fl::size index) const
void setGroup(const fl::string &groupName) override
void setSelectedIndex(int index)
fl::shared_ptr< Button > mNextButton
UIDropdown & operator=(int index)
fl::string as_string() const
FunctionList< UIDropdown & > mCallbacks
VIRTUAL_IF_NOT_AVR ~UIElement()
fl::string getGroup() const
virtual void setGroup(const fl::string &groupName)
UIGroup(const fl::string &groupName)
UIGroup(const fl::string &groupName, UIElements &... elements)
void add(T &control, Rest &... rest)
void addControl(T *control)
UIHelp(const char *markdownContent)
const fl::string & markdownContent() const
void setGroup(const fl::string &groupName) override
void setGroup(const fl::string &groupName) override
UINumberField & operator=(double value)
FunctionList< UINumberField & > mCallbacks
UINumberField & operator=(int value)
FL_NO_COPY(UINumberField)
UINumberField(const char *name, double value, double min=0, double max=100)
bool mLastFrameValueValid
void setValue(double value)
void onChanged(function< void(UINumberField &)> callback)
float float float float step
bool mLastFramevalueValid
UISlider & operator=(int value)
FL_NO_COPY(UISlider) UISlider(const char *name
void setGroup(const fl::string &groupName) override
FunctionList< UISlider & > mCallbacks
UISlider & operator=(float value)
int onChanged(function< void(UISlider &)> callback)
UITitle(const char *name)
void setGroup(const fl::string &groupName) override
FastLED's Elegant JSON Library: fl::Json
#define ALMOST_EQUAL(a, b, small)
Implements the FastLED namespace macros.
shared_ptr< T > make_shared(Args &&... args)
UIButton button("Button")
void onBeginFrame() override
Listener(UICheckbox *owner)
void addToEngineEventsOnce()
void addToEngineEventsOnce()
void onBeginFrame() override
Listener(UIDropdown *owner)
Listener(UINumberField *owner)
void addToEngineEventsOnce()
void onBeginFrame() override
void addToEngineEventsOnce()
void onBeginFrame() override
Listener(UISlider *owner)
#define FASTLED_UI_DEFINE_OPERATORS(UI_CLASS)
#define VIRTUAL_IF_NOT_AVR