numberInput¶
Beschreibung¶
Diese Klasse ist eine Eingabemöglichkeit von Zahlen in einem Intervall. Mit ihr lassen sich z.B. Schieberegler erstellen. Von dieser Klasse erben Number_Slider und Number_Counter.
Funktionen¶
const slider_func_ptr_ptr |
|
virtual void |
setTouch (Inputs& input) = 0 |
NumberInput (std::function<void(int)> callback, ExternalNumberValue* const externalValue = nullptr) |
|
virtual |
~NumberInput () |
void |
loop (Inputs& input) override |
Variablen und Konstanten¶
ExternalNumberValue* const |
externalValue = nullptr |
int |
value = 0 |
int |
minValue = 0 |
int |
maxValue = 100 |
uint |
steps = 1 |
Funktionen Beschreibung¶
const slider_func_ptr slider_callback¶
Diese Funktion ist die Callback Funktion für NumberInput Objekte. Standardmäßig tut diese Funktion nichts,
sie erhält erst eine Bedeutung, wenn bei der Erstellung eines NumberInput Objektes eine Funktion als slider_callback übergeben wird, die aufgerufen wird, wenn der Slider aktiviert
wird.
NumberInput(std::function<void(int)> callback, ExternalNumberValue* const externalValue = nullptr)¶
1NumberInput::NumberInput(std::function<void(int)> callback, ExternalNumberValue* const externalValue) :
2 callback(callback),
3 externalValue(externalValue)
4 {}
Diese Funktion ist ein Konstruktor für Objekte der Klasse numberInput.
Als Parameter nimmt der Konstruktor die Callback Funktion slider_callback sowie einen externalValue.
slider_callback und externalValue werden mit den korrespondierenden Parametern initialisiert.
virtual ~NumberInput()¶
1NumberInput::~NumberInput(){};
Der Destruktor wird bei der Zerstörung eines numberInput Objektes aufgerufen.
void loop(Inputs& input) override¶
1void NumberInput::loop(Inputs& input) {
2 if (input.enter) {
3 LOGGER("Enter")
4 }
5
6 if (!externalValue) return; // if there is no external Value
7 else if (externalValue->getValue() != value) value = externalValue->getValue();
8 else if (externalValue->getMinValue() != minValue) minValue = externalValue->getMinValue();
9 else if (externalValue->getMaxValue() != maxValue) maxValue = externalValue->getMaxValue();
10 else if (externalValue->getSteps() != steps) steps = externalValue->getSteps();
11 else return; // if there is no update
12
13 draw();
14}
Diese Funktion dient dazu, den Zustand des aktuellen Objektes zu aktualisieren, falls externe Änderungen vorgenommen wurden
if (!externalValue) return; // if there is no external Value
Liegt kein externalValue vor, so bricht die Funktion ab.
else if (externalValue->getValue() != value) value = externalValue->getValue();
else if (externalValue->getMinValue() != minValue) minValue = externalValue->getMinValue();
else if (externalValue->getMaxValue() != maxValue) maxValue = externalValue->getMaxValue();
else if (externalValue->getSteps() != steps) steps = externalValue->getSteps();
Nun wird getestet, ob sich value, minValue, maxValue und steps des
Objektes der NumberInput Klasse von den in externalValue äquivalenten Werten unterscheiden. Wenn ja, werden die entsprechenden Werte aus
externalValue in den jeweiligen Variablen des Objektes der NumberInput Klasse gespeichert.
else return; // if there is no update
Liegt zwar ein externalValue vor, aber die Werte unterscheiden sich nicht, so bricht die Funktion ebenso ab.
draw();
Zum Schluss wird das Objekt mit den neuen Werten mit draw gezeichnet.
virtual void setTouch(Inputs& input) = 0¶
Diese virtuelle Funktion muss von einer abgeleiteten Klasse überschrieben werden. (Siehe Number_Slider, Number_Counter)
Variablen und Konstanten Beschreibung¶
ExternalNumberValue* const externalValue = nullptr¶
Dieser ExternalNumberValue* ermöglicht eine externe Steuerung von Objekten der Number_Input Klasse, um einzelne Variablen extern anzupassen.
uint16_t value = 0¶
Speichert den aktuellen Wert des numberInput Objektes.
int minValue = 0¶
Gibt den Minimalwert an, den value annehmen darf.
const uint16_t maxValue = 100¶
Gibt den Maximalwert an, den value annehmen darf.
uint steps = 1¶
Gibt an, um wie viel value inkrementiert bzw. dekrementiert werden soll.