Eine der wichtigsten Eigenschaften von RapaGUI ist die Fähigkeit, das gesamte GUI-Layout automatisch neu zu berechnen, wenn die Größe des Fensters mit den Widgets geändert wird. Dies ist jedoch nur möglich, wenn alle Gruppen in einem Fenster in der Größe geändert werden können, da sonst die Größe des Fensters unverändert bleibt und nicht skalierbar ist. Um frei skalierbare Fenster zu erstellen, müssen Sie wissen, welche Widgets in der Größe geändert werden können und welche nicht. Beachten Sie die folgende GUI-Definition:
<window> <vgroup> <button id="btn">Hello World!</button> </vgroup> </window> |
Dieses Fenster ist nur horizontal skalierbar, da Schaltflächen-Widgets standardmäßig nur horizontal gedehnt/gestaucht werden können. Sie sind standardmäßig nicht vertikal skalierbar, da Schaltflächen, die ihre vertikale Größe ändern, ziemlich hässlich aussehen. Normalerweise ist die Höhe einer Schaltfläche an die Standardschaltflächenhöhe gebunden, die derzeit auf dem Betriebssystem benutzt wird.
Wenn Sie möchten, dass dieses Fenster in der Größe veränderbar
ist, haben Sie mehrere Möglichkeiten: Die meistgebrauchte Möglichkeit
ist das Einfügen von leerem Raum mit dem Rechteck-Objekt Rectangle-Klasse.
Diese sind in alle Richtungen veränderbar. Wenn Sie also ein
Objekt <rectangle>
einfügen, wird Ihr Fenster plötzlich
in alle Richtungen skalierbar:
<window> <vgroup> <button id="btn">Hello World!</button> <rectangle/> </vgroup> </window> |
Alternativ können Sie auch ein anderes Widget einfügen, das
vertikal skalierbar ist, z.B. eine Listenansicht (Listview).
Oder Sie können die Schaltfläche sogar vertikal skalierbar
machen, indem Sie das Attribut Area.FixHeight auf
False
setzen:
<window> <vgroup> <button id="btn" fixheight="false">Hello World!</button> </vgroup> </window> |
Aber das sieht nicht so schön aus, weil der Benutzer jetzt eine
Schaltfläche mit einer Höhe von einigen hundert Pixeln haben
könnte. Deshalb ist der Ansatz mit <rectangle>
die
am häufigsten verwendete Methode, um Füllbereiche für nicht
veränderbare Objekte einzufügen. Deshalb hier eine Übersicht
über die Größe der einzelnen Widgets, die von RapaGUI unterstützt
werden:
Busybar-Klasse (Beschäftigung):
Button-Klasse (Schaltflächen):
Checkbox-Klasse (Auswahlkästchen):
Choice-Klasse (Auswahl):
Combobox-Klasse (Textlisten):
Hollywood-Klasse:
HLine-Klasse (HorizontalLinie):
HSpace-Klasse (HorizontalAbstand):
HTMLview-Klasse (HTMLAnsicht):
Image-Klasse (Bild):
Label-Klasse (Beschriftung):
Listview-Klasse (Listenansicht):
Pageview-Klasse (Seitenansicht):
Popcolor-Klasse (Farbdialog):
Popfile-Klasse (Dateidialog):
Popfont-Klasse (Schriftdialog):
Poppath-Klasse (Verzeichnisdialog):
Progressbar-Klasse (Fortschrittsbalken):
Radio-Klasse:
Rectangle-Klasse (Rechteck):
Scrollbar-Klasse (Bildlaufleisten):
Scrollcanvas-Klasse (Bildlaufleinwand):
Scrollgroup-Klasse (Bildlaufgruppen):
Slider-Klasse (Schieberegler):
Text-Klasse:
Texteditor-Klasse:
Textentry-Klasse (Texteingabe):
Textview-Klasse (Textanzeige):
Treeview-Klasse (Baumansicht):
VLine-Klasse (VertikalLinie):
VSpace-Klasse (VertikalAbstand):
Natürlich können Sie diese Voreinstellungen ändern, indem Sie die Attribute Area.FixWidth und Area.FixHeight entsprechend setzen, um bestimmte Größeneinstellungen zu aktivieren oder zu deaktivieren. Aber das ist oft nicht empfehlenswert, da es ziemlich hässlich aussieht, wenn z.B. ein Texteingabe-Widget plötzlich vertikal skalierbar ist. Dies würde den Benutzer unnötig verwirren, da er am Ende ein Texteintrags-Widget mit einer Höhe von 300 Pixeln haben könnte, welches aber nur die Eingabe einer Textzeile erlaubt. Daher ist es die beste Idee, die Voreinstellungen des Betriebssystems für die Standard-Widgets zu respektieren.
Natürlich gibt es auch Widgets, bei denen es völlig akzeptabel ist, die Voreinstellungen von oben zu überschreiben. Zum Beispiel sind Widgets, die von der Hollywood-Klasse abgeleitet sind, standardmäßig nicht skalierbar. Aber natürlich sollten Sie Area.FixWidth und Area.FixHeight verwenden, um die Größe des Widgets an Ihre persönlichen Bedürfnisse anzupassen.