Léxico TI › Programación › XmForm

XmForm

Programación Svenska → Actualizado: 2026-10-09

El widget de disposición de Motif, en el que cada hijo se ancla a bordes, vecinos o posiciones porcentuales en lugar de recibir coordenadas: lo más cerca que estuvo Motif de un motor de layout, y el origen del aviso de las 10.000 iteraciones.

XmForm es un widget gestor, subclase de XmBulletinBoard, que coloca a sus hijos mediante restricciones. Cada hijo recibe cuatro recursos, XmNtopAttachment, XmNbottomAttachment, XmNleftAttachment y XmNrightAttachment, y cada uno puede valer XmATTACH_FORM (el borde del propio formulario), XmATTACH_WIDGET (junto a un hermano), XmATTACH_OPPOSITE_WIDGET, XmATTACH_POSITION (una fracción de XmNfractionBase, 100 por defecto) o XmATTACH_NONE, más un desplazamiento en píxeles. Al redimensionar la ventana el formulario lo recalcula todo, de modo que una fila de botones pegada al borde inferior o un campo de texto que ocupe todo el ancho se escriben como anclajes, no como código en un callback de resize.

El modelo fue potente y tristemente célebre a partes iguales. Las restricciones se resuelven de forma iterativa, y los anclajes contradictorios producían el aviso Bailed out of edge synchronization after 10,000 iterations, una línea que generaciones de programadores de Motif aprendieron a reconocer. Un hijo sin ningún anclaje acaba donde apunten XmNx y XmNy, como en un bulletin board corriente. La misma idea de anclar elementos entre sí reapareció veinte años después en Auto Layout de iOS y en ConstraintLayout de Android, sin que ninguno reconociera el parentesco.

← Volver al léxico