Fenstermenü erstellen
Fenster in Bildschirmmitte anzeigen
Fenster ohne TAB anzeigen
Fenstergrößenoption "Zoom" im TAB deaktivieren
Fenstergrößenoption "Resize" vom Fenster deaktivieren
Fenstergröße nur in eine Richtung ändern lassen
Fenstermenü erstellen
Das einrichten eines Fenstermenüs ist einfach. Hierzu geben Sie folgenden Code für jeden Menüeintrag ein:
menu "File", "Open", "O", "View"
Mit dem Befehl "menu" wird die Menüleiste aktiviert.
Die erste Namensangabe ("File"") ist der Name des Menüs.
Die zweite Namensangabe ("Open"") ist die Bezeichnung des ersten Menüeintrages im Bereich "File".
Die dritte Angabe ("O"") ist die Angabe für ein Tastaturkürzel in Verbindung mit der Alt Taste. Hier also "Alt + O" für "Open".
Mit der letzen Angabe, wird die Ansicht ( "View"") angegeben, in welcher das Menü angezeigt wird. Hierbei ist zu beachten, dass Sie den obersten "View" verwenden. Wenn Sie also in der Hauptansicht eine View erzeugen, welche am Punkt 0 der linken und oberen Kante beginnt, muss das Menü hier eingebaut werden, da dieses sonst nicht angezeigt wird.
Submenu erstellen
Es ist auch möglich ein Untermenüpunkt (Submenu) zu erstellen, also eine Menüauswahl in einer Menüauswahl.
Dies sieht wie folgt aus:
submenu "Datei", "Speichern", "Speichern als", "SA", "View"
Der Aufbau ist im Grunde genauso wie der des normalen Fenstermenüs, der Unterschied ist nur eine weitere Angabe eines Menüpunktes.
Im Beispiel erzeugen wir ein Untermenü "Speichern" im Fenstermenüpunkt " Datei. Im Untermenüpunkt Speichern, definieren wir den Menüpunkt Speichern als.
Funktion zuweisen
Wenn Sie jetzt einem Menüpunkt eine Funktion zuweisen möchten, beziehen Sie die Ausführung auf den Namen des Menübereiches (hier "Speichern als").
In einer "case" Abfrage würde das dann so aussehen:
case "Name des Menüpunktes|":
Hier der Programmcode
break
Fenster in Bildschirmmitte platzieren
Um ein Fenster in Bildschirmmitte zu platzieren, müssen Sie zuerst herausfinden, wie groß die Bildschirmauflösung ist.
Um dies zu erfahren, platzieren Sie folgenden Code am Anfang ihres Programmcodes (vor den Loop). Wieso so weit oben? Nun auf diese Weise können Sie jederzeit an jeder beliebigen Stelle im Programmcode, diese ermittelten Werte, für die Platzierung von Fenstern heranziehen.
ScreenWidth = peek("desktopwidth")
ScreenHeight = peek("desktopheight")
Über peek("desktopwidth") ermitteln Sie die Breite der Bildschirmauflösung und speichern diese in der Variable ScreenWidth.
Über peek("desktopheight") ermitteln Sie die Höhe der Bildschirmauflösung und speichern diese in die Variable ScreenHeight.
Nachdem sie diese Werte ermittelt haben, können Sie diese in die Größenangabe ihres Programmfensters intrigieren.
window open ((ScreenWidth/2)-300), (( ScreenHeight/2)-300) to ((ScreenWidth /2)+300), ((ScreenHeight/2) +300), "Angezeigter Name des Views", "View"
Die Angabe für das Fenster öffnen weicht etwas von dem normalen Code ab. Dies liegt daran, dass in den Angaben für die Start und Endposition des Fensters noch neue Werte ermittelt werden müssen.
Wir öffnen wie gewohnt ein neues Fenster mit window open. Da der nächste Wert ermittelt wird und daher nicht nur die Positionszahl angegeben wird, muss dieser in Klammern gesetzt werden. Hier wird der Wert der ermittelten Bildschirmbreite durch zwei geteilt (ScreenWidth/2), damit wir die Mitte des Bildschirmes erfahren. Außerdem reduzieren wir den neu ermittelten Wert um die Zahl, die die Mitte des gewünschten Fensters ergibt. Wenn Sie also ein Fenster mit einer Breite von 600 Pixeln haben möchten, muss der Wert um 300 Pixel reduziert werden um den linken Rand des Fensters anzugeben ((ScreenWidth/2)-300).
Dasselbe wird daraufhin mit der Fensterhöhe durchgeführt, um den oberen Rand des Fensters zu ermitteln. Hier gehen wir auch davon aus, dass das Programm eine Fensterhöhe von 600 Pixeln haben soll.
Genauso wie bei dem normalen Fensterangaben folgt das to und die Angaben für den rechten und unteren Rand des Fensters, die genauso ermittelt werden, wie zuvor die anderen. Einzige Ausnahme ist, dass Sie diesmal nicht die 300 Pixel abziehen, sondern draufzählen müssen ((ScreenWidth/2)+300), (( ScreenHeight/2)+300).
Der Rest ist wie gehabt, bei "Angezeigter Name des Views" kommt der Name rein, welchen das Fenster haben soll und bei "View" der Name des View, den Sie intern im Programmcode dazu verwenden, diesen anzusprechen.
zurück zur Übersicht
Fenster ohne TAB anzeigen
Ab und an sieht es besser aus, wenn das neu geöffnete Fenster keinen TAB besitzt. Dies kann zum Beispiel dann sein, wenn Sie über ein kleines Fenster eine Statusanzeige einbringen möchten.
Dies einzustellen ist sehr einfach, fügen Sie dazu einfach folgenden Code zu den Fenstereinstellungen hinzu:
window open 175,250 to 525,450 , "Interner Viewname", "Angezeigter Viewname"
window set ***
window set "View", "Look", "modal"
Mit window set geben wir an, dass wir eine Einstellung (Setting) für das Fenster vornehmen möchten. Die Angabe "View" definiert den internen Namen des Fensters. Mit "Look", geben wir an, dass wir etwas an dem Aussehen verändern möchten und dass der nächste Wert eine Einstellung des Aussehens darstellt. Durch die Angabe modal, wird das Fenster ohne TAB dargestellt.
zurück zur Übersicht
Fenstergrößenoption Zoom im TAB deaktivieren
Ein Fenster kann bekanntlich über die beiden Desktopdarstellungen im TAB auf minimal- oder Vollbildgröße eingestellt werden. Wenn man eine feste Fenstergröße verwenden möchte und eine solche Funktion dadurch nicht ausgeführt werden kann, macht es Sinn, diese Schaltfläche im TAB zu deaktivieren.
window open 175,250 to 525,450 , "Interner Viewname", "Angezeigter Viewname"
window set ***
window set "View", "flags", "not-zoomable"
Mit window set geben wir an, dass wir eine Einstellung (Setting) für das Fenster vornehmen möchten. Die Angabe "View" definiert den internen Namen des Fensters. Mit "flags", geben wir an, dass wir etwas an den Fensteroptionen verändern möchten und dass der nächste Wert die zu ändernde Option ist. Durch die Angabe not-zoomable, wird die Zoomfunktion des Fensters deaktiviert, wodurch automatisch das dazugehörige Symbol aus dem TAB verschwindet.
Wenn man mehrere Fensteroptionen auf einmal ändern möchte, kann man diese einfach hintereinander, getrennt durch ein Komma eintragen. Dies macht zum Beispiel Sinn, wenn Sie auch die Resize Option des Fensters deaktivieren möchten. |
Fenstergrößenoption "Resize" vom Fenster deaktivieren
Durch die Resize Funktion am unteren Rand des Fensters, ist es möglich, dass Fenster auf eine gewünschte Größe zu verkleinern, bzw. zu vergrößern. Verwendet man eine feste, nicht zum verändern vorgesehenes Fenstergröße, so ist es schon aus optischen Gründen schöner, diese Option zu deaktivieren.
window open 175,250 to 525,450 , "Interner Viewname", "Angezeigter Viewname"
window set ***
window set "View", "flags", "not-resizable"
Mit window set geben wir an, dass wir eine Einstellung (Setting) für das Fenster vornehmen möchten. Die Angabe "View" definiert den internen Namen des Fensters. Mit "flags", geben wir an, dass wir etwas an den Fensteroptionen verändern möchten und dass der nächste Wert die zu ändernde Option ist. Durch die Angabe not-resizable, wird die Resize- Funktion des Fensters deaktiviert, wodurch automatisch die dazugehörige Schaltfläche deaktiviert wird.
Unter Umständen kann es dazu kommen, das daß deaktivieren der Resize Option auf diese weise nicht funktioniert (der Fall bei älteren yab Versionen). Sollte dies so sein, so ersetzen sie "not-resizable" durch "not-h-resizable, not-v-resizable". Dadurch deaktivieren sie die horizontale und die vertikale Resize Möglichkeit. |
Wenn man mehrere Fensteroptionen auf einmal ändern möchte, kann man diese einfach hintereinander, getrennt durch ein Komma eintragen. Dies macht zum Beispiel Sinn, wenn Sie auch die Zoom Option vom TAB deaktivieren möchten. |
Fenstergröße nur in eine Richtung ändern lassen
Möchten Sie Ihr Fenster so konfigurieren, dass der Benutzer nur in eine Richtung die Fenstergröße verändern kann?
window open 175,250 to 525,450 , "Interner Viewname", "Angezeigter Viewname"
window set ***
window set "View", "flags", "not-h-resizable"
Mit window set geben wir an, dass wir eine Einstellung (Setting) für das Fenster vornehmen möchten. Die Angabe "View" definiert den internen Namen des Fensters. Mit "flags", geben wir an, dass wir etwas an den Fensteroptionen verändern möchten und dass der nächste Wert die zu ändernde Option ist. Durch die Angabe not-h-resizable, wird die horizontale Resize- Funktion des Fensters deaktiviert. Dadurch kann das Fenster nur noch in vertikaler Richtung verändert werden.
window set "View", "flags", "not-v-resizable"
Mit window set geben wir an, dass wir eine Einstellung (Setting) für das Fenster vornehmen möchten. Die Angabe "View" definiert den internen Namen des Fensters. Mit "flags", geben wir an, dass wir etwas an den Fensteroptionen verändern möchten und dass der nächste Wert die zu ändernde Option ist. Durch die Angabe not-v-resizable, wird die vertikale Resize- Funktion des Fensters deaktiviert. Dadurch kann das Fenster nur noch in horizontaler Richtung verändert werden.
zurück zur Übersicht
YAB Hilfestellungen erstellt durch Christian Albrecht (Lelldorin) und Lorenz Glaser 2005-2017
Bereitgestellt durch BeSly, der BeOS & Zeta Wissensbasis.