6 Besonderheiten unter Motif

6.1 Verwendung von Widget statt Gadget

Unter Motif kann bei einigen Objekten mittels des Werts opt_use_widget des Attributs .options[enum] die Verwendung des Widgets anstelle des Gadgets gewählt werden.

Für die Objektklassen pushbutton, checkbox, radiobutton, menuitem und statictext nutzt der ISA Dialog Manager entweder leichtgewichtige Gadget-Klassen oder schwergewichtige Widget-Klassen von Motif. Die Nutzung der Widget-Klassen kann explizit durch .options[opt_use_widget] := true oder implizit durch bestimmte Attribute bzw. Bedingungen erzwungen werden. Die Verwendung der Widget-Klassen ist notwendig, wenn die genannten Objekte ein Popup-Menü besitzen oder mindestens eins der Attribute .cursor, .statushelp und .toolhelp gesetzt ist.

Gadgets und Widgets unterscheiden sich in der Nutzung von Farben. Gadgets verwenden für nicht gesetzte Farben normalerweise die entsprechenden Farben des Vaters. Unter Umständen passt Motif dabei ungesetze Farben an, zum Beispiel führt ein gesetzter schwarzer Hintergrund bei ungesetzter Vordergrundfarbe in der Regel zu einem weißen Vordergrund (Textfarbe) um die Lesbarkeit zu gewährleisten. Dagegen haben Widgets eigene Default-Farben, die für ungesetzte Farben verwendet werden.

Grundsätzlich gibt es in Motif keine Möglichkeit eine gesetzte Farbe zu entfernen. Das vom IDM erlaubte, dynamische Setzen einer Farbe auf null ist daher problematisch.

Der IDM versucht dem Standardverhalten von Motif Rechnung zu tragen. Bei .options[opt_use_widget] = false oder wenn die Nutzung von Widget implizit verursacht wird, benutzt der IDM für nicht gesetzte Farben die aktuelle jeweilige Farbe des Vaters. Das heißt, in diesen Fällen entspricht das Verhalten den Gadget-Klassen von Motif, wobei das spätere Setzen einer anderen Farbe beim Vater gewollt unberücksichtigt bleibt. Bei explizit erzwungener Benutzung von Widgets durch .options[opt_use_widget] = true entspricht die Nutzung von Farben den Widget-Klassen von Motif.

6.2 Positionierung und Sichtbarkeit von Objekten und ihre Fokussierbarkeit

Unter Motif können nur Objekte, die vollständig sichtbar sind oder in den sichtbaren Bereich gescrollt werden können, den Fokus erhalten. Dies ist das typische Verhalten von Motif-Anwendungen, im Unterschied zu MS Windows. Dabei ist zu beachten, dass ein Kindobjekt in einem Gruppierungsobjekt eventuell vollständig sichtbar ist, aber trotzdem per Tastatur unerreichbar und nicht fokussierbar ist, weil das Gruppierungsobjekt nicht vollständig sichtbar ist.

Aus Gründen der Kompatibilität zwischen den Plattformen ermöglicht es der ISA Dialog Manager auch unter Motif, Kindobjekte durch negative Positionsangaben für die x- und y-Koordinaten der linken oberen Ecke in nicht sichtbaren Bereichen zu positionieren. Motif erlaubt dies eigentlich nicht, sodass der IDM dafür Prüfmechanismen umgehen muss. Als Konsequenz wird dadurch meistens ausgeschlossen, dass die Objekte per Tastaturnavigation erreichbar sind und den Fokus erhalten können.

6.2.1 Empfehlungen

6.2.2 Option .options[opt_scroll_on_focus] (ab IDM-Version A.05.02.i)

Die Option .options[opt_scroll_on_focus] dient in erster Linie dazu, die Erreichbarkeit von Objekten per Tastaturnavigation zu verbessern und zu ermöglichen, dass sie in bestimmten Konstellationen per Tastatur oder Mausklick den Fokus erhalten können. Damit kann ein konsistenteres Verhalten zwischen Motif- und Windows-Anwendungen erreicht werden.

Allerdings kann durch die Option – aufgrund von Unterschieden zwischen den Plattformen bei der Fokus-Behandlung – weder eine vollständige Konsistenz erzielt werden, noch die Erreichbarkeit von Objekten per Tastatur und ihre Fokussierbarkeit in allen Situationen gewährleistet werden.

Datentyp der Option ist Boolean mit folgender Wirkung der Werte:

6.3 Z-Ordnung von Fenstern und Dialogfeldern

Moderne Desktops und Fenstermanager haben immer wieder Probleme, das Vorschieben eines Applikationsfensters vor ein modales Fenster (z. B. Filerequestor, Messagebox) zu unterbinden, wenn mehrere Applikationsfenster vorhanden sind. Der IDM für Motif versucht dies über die korrekte Angabe der Modalität (applikationsmodal) und durch eine Heuristik zur Korrektur der Z-Ordnung von Fenstern sicherzustellen. Allerdings kann der IDM nicht alle Situationen korrigieren, weil einige moderne Desktops und Fenstermanger in speziellen, modalen Situationen keine VisibilityNotify-Ereignisse weitergeben.