3.2 GUI-Layout

Wie Sie bereits oben gesehen haben, werden in RapaGUI GUIs vollständig mit der XML-Sprache definiert. Auf diese Weise können Sie schnell GUI-Layouts erstellen, indem Sie einfach eine Baumhierarchie aus mehreren Fenstern, Gruppen und Widgets zusammensetzen. Hier ist ein Beispiel, wie ein Applikations-Baum in der XML-Sprache aussehen könnte:

 
<?xml version="1.0" encoding="iso-8859-1"?>
<application>
   <window title="Example GUI">
      <vgroup>
         <listview>
            <column/>
         </listview>
         <textentry/>
         <hgroup>
            <button id="add">Add</button>
            <button id="rem">Remove</button>
         </hgroup>
      </vgroup>
   </window>
</application>

Und hier sehen Sie, wie diese GUI unter Windows 7 aussieht:

Wie Sie im XML sehen können, werden keine Positionskoordinaten oder -größen angegeben. Dies alles wird von RapaGUI automatisch berechnet, um ein sauberes Erscheinungsbild auf allen Systemen zu gewährleisten. Denken Sie daran, dass RapaGUI-Applikationen auf einer Vielzahl von Systemen laufen können: Auf Windows, GTK, macOS und sogar auf AmigaOS. Durch Weglassen von fest programmierten Fenster- und Widget-größen sowie -positionen kann RapaGUI automatisch die besten Größen und Positionen in Abhängigkeit von der aktuellen Bildschirm- und Schriftgröße auswählen. Natürlich können Sie RapaGUI auch zwingen, fest codierte Größen zu verwenden, indem Sie die Attribute Area.Width und Area.Height verwenden. Um eine Listenansichts-Größe von mindestens 600x400 geräteunabhängige Pixel zu erzwingen, könnte man einfach schreiben:

 
<listview width="600" height="400">
   <column/>
</listview>

Das Einzige, was Sie nicht ändern können, ist die Position des Widgets. Da die Position der Widgets stark von der aktuellen Schriftgröße der Benutzeroberfläche abhängt, macht es wirklich keinen Sinn, hartcodierte Widget-Positionen in einem plattformübergreifenden GUI-Werkzeug zuzulassen, da es massive Unterschiede zwischen den verschiedenen Betriebssystemen geben wird. RapaGUI erlaubt es Ihnen also nicht, Widget-Positionen fest zu programmieren.


Navigation zeigen