DDF Grafik
Die DDF Dateien erlauben neben der Definition von Algorithmen und Protokollen auch die Definition eines individuellen Unserinterfaces.
Dazu wurde der Bereich Object erweitert. Die Objecteinträge beinhalten nun auch den 3 weitere Spalten: SVG/SVGANIMATE/SVGEVENT.
Bei Zuordung des Devices zu einem Generic-Element(Gerät) werden standardmäßig im Visubereich (0) die ersten 10 Objekte als Listenelemente dargestellt.
Falls beim 1.Object der Gruppe ein SVG/ANIMATE definiert ist, wird dieses Userinterface im Visubereich anstatt und das folgende Element als Listendarstellung dargestellt.
In allen Standard-Elementen kann mittels geladener DDF ein solches Object zugeordnet werden. Damit wird dann die Standard-Darstellung im Visubereich ersetzt.
Wird kein SVGANIMATE definiert/leer wird das über die Spalte SVG definierte SVG dargestellt. Falls ein SVGAnimate definiert ist, muss in diesem falls gewünscht gezielt das SVG mittes Funktion gezeichnet werden.
Falls SVGEVENT definiert ist, werden die Mouseevents an die Formel weitergegeben und ermöglichen damit die Userbedienung zu definieren. In der UserEvent Formel werden die Zeichenfunktionen ignoriert. Das Schreiben von Variablen in dem Bereich setzt ein Repaint für das Element.
Beschreibungen der API siehe DDF-API-Function-TABLE.
DDF Datei-Abschnitt OBJECT:
- *OBJECT
- GROUP ID
- ALIAS
- SVG
- SVGANIMATE
- SVGEVENT
SVG
SVG mit einfacher ‘ innerhalb “”.
“<svg id='Livello_1' xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 130 130'>
<!-- Generator: Adobe Illustrator 29.6.1, SVG Export Plug-In . SVG Version: 2.1.1 Build 9) -->
<defs>
<style>
.st0 {
fill: none;
stroke: #14387f;
stroke-miterlimit: 10;
stroke-width: 3.2px;
}
</style>
</defs>
<line class='st0' x1='65' y1='14.3' x2='65' y2='107.4'/>
<line class='st0' x1='19.4' y1='37.5' x2='110.6' y2='37.5'/>
<line class='st0' x1='19.4' y1='60.8' x2='110.6' y2='60.8'/>
<line class='st0' x1='19.4' y1='84.1' x2='110.6' y2='84.1'/>
<rect class='st0' x='3.9' y='115.1' width='122.3' height='8.4' rx='1' ry='1'/>
<path class='st0' d='M11.6,115.1V7.8c0-.7.6-1.3,1.3-1.3h104.2c.7,0,1.3.6,1.3,1.3v107.3'/>
<rect class='st0' x='18.4' y='15.2' width='93.1' height='91.2' rx='1' ry='1' transform='translate(125.8 -4.2) rotate(90)'/>
</svg>"
SVGANIMATE
"GUI.setWindow(0, 0, 320, 260, 1.0);
GUI.fillPie(118, 78, 84, 46, 0, 180, 0x33FFF7A1, 0, 0x01000000);
IF $.CTRLVAR.dok > 0 THEN
GUI.fillPie(120, 78, 80, 50, 0, 180, 0xFFFFE28A, 0, 0xFFFFE28A);
ELSE
GUI.fillPie(120, 78, 80, 50, 0, 180, 0xFFE0E2E0, 0, 0xFFE0E2E0);
ENDIF;
TEST:=$.CTRLMAINVAR.'alg.lp1.sname';
GUI.text(TEST,160,84,6,'middle','top',0x8F8F0F);
TEST:=$.CTRLROOTVAR.alg.lp1.sname;
GUI.text(TEST,160,104,6,'middle','top',0x8F8F0F);
TEST:=$.CTRLVAR.sname;
GUI.text(TEST,160,124,6,'middle','top',0x8F8F0F);
TEST:=FLOAT_TO_STRING(1.43);
GUI.text(TEST,160,144,6,'middle','top',0x8F8F0F);
IF $.CTRLVAR.iOccLL>0 THEN
GUI.fillEllipse($.CTRLVAR.iOccLL, $.CTRLVAR.iOccLR, 20, 20, 0x9FFF0000, 2, 0xFFFF0000);
ENDIF;
"
SVGEVENT
"IF $.MOUSE.UP==1 THEN $.CTRLVAR.iOccLL:=$.MOUSE.X; $.CTRLVAR.iOccLR:=$.MOUSE.Y; ENDIF; "
