IT-Lexikon › Programmierung › XmForm

XmForm

Programmierung Svenska → Aktualisiert: 2026-10-09

Motifs Layout-Widget, in dem jedes Kind an Kanten, Nachbarn oder Prozentpositionen verankert wird statt Koordinaten zu bekommen: das, was einer Layout-Engine in Motif am nächsten kam, und die Quelle der Warnung über 10.000 Iterationen.

XmForm ist ein Manager-Widget, eine Unterklasse von XmBulletinBoard, das seine Kinder über Constraints platziert. Jedes Kind erhält vier Ressourcen, XmNtopAttachment, XmNbottomAttachment, XmNleftAttachment und XmNrightAttachment, die jeweils XmATTACH_FORM (die eigene Kante des Formulars), XmATTACH_WIDGET (neben einem Geschwister), XmATTACH_OPPOSITE_WIDGET, XmATTACH_POSITION (ein Bruchteil von XmNfractionBase, standardmäßig 100) oder XmATTACH_NONE sein können, dazu ein Abstand in Pixeln. Wird das Fenster skaliert, berechnet das Formular alles neu; eine Knopfleiste, die am unteren Rand kleben soll, oder ein Textfeld, das die Breite füllen soll, schreibt man deshalb als Attachments und nicht als Code in einem Resize-Callback.

Das Modell war mächtig und berüchtigt zugleich. Die Constraints werden iterativ gelöst, und widersprüchliche Attachments erzeugten die Warnung Bailed out of edge synchronization after 10,000 iterations, eine Zeile, die Generationen von Motif-Programmierern wiedererkannten. Ein Kind ganz ohne Attachments landet dort, wohin XmNx und XmNy zeigen, wie in einem einfachen Bulletin Board. Dieselbe Idee, Elemente aneinander zu verankern, tauchte zwanzig Jahre später in Auto Layout von iOS und im ConstraintLayout von Android wieder auf – beide ohne Hinweis auf die Ahnenschaft.

← Zurück zum Lexikon