.. _ref-widget-props:
Allgemeine Properties
==========
Jedes Widget verfügt über eine Vielzahl von Properties, welche die Darstellung bzw. das Verhalten des Widgets in der Anwendung beeinflussen.
Diese Properties können mittels des XML-Befehls::
oder::
PROPERTYVALUE
gesetzt werden (vgl. auch :ref:`ref-typevalue`)
Parallel dazu können die Properties auch aus Scriptbereichen in der Anwendung (vgl. :ref:`Actions `) gesetzt werden. Im folgdenden wird auf diese Möglichkeit nur an ausgewählten Stellen eingegangen.
Die generelle Syntax für den Zugriff auf Properties in Scripten ist::
// Zugriff auf eine Property des Widget auf dem diese Action aufgerufen wird
this.BackgroundColor = "red";
// Zugriff auf eine Property über eine Referenz auf ein anderes Widget welche
// in der Variablen "myWidget" gespeichert ist
var myWidget = lookup("OtherWidget");
myWidget.BackgroundColor = "green";
Benennung von Widgets
-----------------------
**Name** (String)
Die Benennung von Widgets mit der Property ``Name`` ist in den meisten Fällen nicht zwingend nötig, aber immer empfohlen, da es die Übersicht und das Debugging erleichtert. In folgenden Fällen **müssen** Sie die Widgets benennen:
* wenn Sie per Lookup (im XML oder JavaScript) auf ein Widget oder seine Children zugreifen wollen
* wenn Sie per JavaScript ein Widget (oder seine Children) steuern wollen
* wenn Sie ein Template definieren (Templates werden über den Namen referenziert)
* wenn Sie Funktionalität nutzen wollen, die auf Widgets mit vordefiniertem Namen angewiesen sind (z.B. das ``widget name="Grid"`` im LineChart)
Default: ``""``
Wählen Sie den Namen so, dass er nicht mit einer Widget-Property oder selbst definierten Variablen kollidiert. Im Namensraum eines Widgets darf eine Bezeichnung nicht mehrfach vorkommen.
**Title** (String)
Diese Property kann nur auf der Presentation gesetzt werden. Sie wird, wo es die Ausspielplattform erlaubt, angezeigt (z.B. als Fenstertitel im Projektor und im Browser).
Default: ``"No Title"``
Spezielle Properties
---------------
**Presentation** (Widget)
In dieser Property ist in jedem Widget eine Referenz auf die Presentation,
also die oberste Hierarchiestufe der Anwendung gepspeichert.
**Base** (URL)
In der ``Base`` wird die Basis-URL der Anwendung gespeichert, welche genutzt wird um bspw. Pfadangaben
für Bilder aufzulösen. Diese Property ist nur auf der Presentation vorhanden.
Default: ``undefined``
**IO** (Object)
Diese Property beinhaltet eine Referenz auf das Input/Output (IO) System der Anwendung. Dieses kann genutzt werden um bspw.
Tastaturen oder andere Eingabegeräte anzusprechen. Diese Property ist nur auf der Presentation vorhanden.
**Children** (List[Widget], read-only)
Diese Property beinhaltet eine Liste der ``Children`` des Widgets.
Debugging
---------------
**Debug** (Boolean)
Schaltet Debug-Informationen ein, es werden der Ankerpunkt, die Bounds und Padding markiert.
Default: ``false``
Werte: ``true``, ``false``
Data
--------------
vgl. den Abschnitt :ref:`ref-data`
**Data** (Data)
**DataObserver** (Data)
Layout
--------------
Vgl. den Abschnitt :ref:`ref-layout`
**Layout** (Symbol)
**LayoutConstraints** (String)
**PreferredBounds** (Rectangle)
Animation
---------------
Vgl. den Abschnitt :ref:`ref-animation`
**AnimationControl** (Symbol)
Dient zum Starten/Stoppen der auf dem Widget definierten (Haupt-)Animation.
Default: ``""``
Werte: ``play``, ``pause``, ``stop``, ``rewind``, ``playfromstart``
::