.. _numberInput: 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 :ref:`Number_Slider` und :ref:`Number_Counter`. Funktionen ============= .. csv-table:: :widths: 100 10000 const slider_func_ptr_ptr, ":ref:`slider_callback `" virtual void, ":ref:`setTouch ` (Inputs& input) = 0" , ":ref:`NumberInput ` (std::function callback, ExternalNumberValue* const externalValue = nullptr)" virtual, ":ref:`~NumberInput ` ()" void, ":ref:`loop ` (Inputs& input) override" Variablen und Konstanten ========================== .. csv-table:: :widths: 100 10000 ExternalNumberValue* const, ":ref:`externalValue ` = nullptr " int, ":ref:`value ` = 0" int, ":ref:`minValue ` = 0" int, ":ref:`maxValue ` = 100" uint, ":ref:`steps ` = 1" Funktionen Beschreibung ========================= .. _numberInputVSlider_callback: 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. .. _numberInputConstructor: NumberInput(std::function callback, ExternalNumberValue* const externalValue = nullptr) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 3-6 :linenos: Diese Funktion ist ein Konstruktor für Objekte der Klasse ``numberInput``. Als Parameter nimmt der Konstruktor die :ref:`Callback` Funktion ``slider_callback`` sowie einen ``externalValue``. :ref:`slider_callback` und :ref:`externalValue` werden mit den korrespondierenden Parametern initialisiert. .. _numberInputDestructor: virtual ~NumberInput() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 8 :linenos: Der Destruktor wird bei der Zerstörung eines ``numberInput`` Objektes aufgerufen. .. _numberInputLoopInputs: void loop(Inputs& input) override ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 14-27 :linenos: Diese Funktion dient dazu, den Zustand des aktuellen Objektes zu aktualisieren, falls externe Änderungen vorgenommen wurden .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 19 Liegt kein :ref:`externalValue` vor, so bricht die Funktion ab. .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 20-23 Nun wird getestet, ob sich :ref:`value `, :ref:`minValue `, :ref:`maxValue ` und :ref:`steps` des Objektes der ``NumberInput`` Klasse von den in :ref:`externalValue` äquivalenten Werten unterscheiden. Wenn ja, werden die entsprechenden Werte aus :ref:`externalValue` in den jeweiligen Variablen des Objektes der ``NumberInput`` Klasse gespeichert. .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 24 Liegt zwar ein :ref:`externalValue` vor, aber die Werte unterscheiden sich nicht, so bricht die Funktion ebenso ab. .. literalinclude:: ../../src/Elements/NumberInput.cpp :lines: 26 Zum Schluss wird das Objekt mit den neuen Werten mit :ref:`draw` gezeichnet. .. _numberInputSetTouch: virtual void setTouch(Inputs& input) = 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Diese virtuelle Funktion muss von einer abgeleiteten Klasse überschrieben werden. (Siehe :ref:`Number_Slider `, :ref:`Number_Counter `) .. _numberInputSelect: Variablen und Konstanten Beschreibung ===================================== .. _numberInputVExternalValue: ExternalNumberValue* const externalValue = nullptr ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dieser :ref:`ExternalNumberValue*` ermöglicht eine externe Steuerung von Objekten der ``Number_Input`` Klasse, um einzelne Variablen extern anzupassen. .. _numberInputVValue: uint16_t value = 0 ~~~~~~~~~~~~~~~~~~~~ Speichert den aktuellen Wert des ``numberInput`` Objektes. .. _numberInputVminValue: int minValue = 0 ~~~~~~~~~~~~~~~~~~~~ Gibt den Minimalwert an, den :ref:`value ` annehmen darf. .. _numberInputVMaxValue: const uint16_t maxValue = 100 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Gibt den Maximalwert an, den :ref:`value ` annehmen darf. .. _numberInputVsteps: uint steps = 1 ~~~~~~~~~~~~~~~ Gibt an, um wie viel :ref:`value ` inkrementiert bzw. dekrementiert werden soll.