IT-словарь › Программирование › XmForm

XmForm

Программирование Svenska → Обновлено: 2026-10-20

Компоновочный виджет Motif, где каждый потомок привязан к краям, соседям или процентным позициям вместо координат: ближайшее к движку раскладки, что было в Motif, и источник предупреждения о 10 000 итераций.

XmForm — менеджер-виджет, подкласс XmBulletinBoard, размещающий потомков по ограничениям. У каждого потомка четыре ресурса — XmNtopAttachment, XmNbottomAttachment, XmNleftAttachment, XmNrightAttachment, — каждый из которых может быть XmATTACH_FORM (собственный край формы), XmATTACH_WIDGET (рядом с соседом), XmATTACH_OPPOSITE_WIDGET, XmATTACH_POSITION (доля от XmNfractionBase, по умолчанию 100) или XmATTACH_NONE, плюс отступ в пикселях. При изменении размера форма пересчитывает всё, так что ряд кнопок у нижнего края или поле ввода на всю ширину записывается привязками, а не кодом в обработчике.

Модель была столь же мощной, сколь и печально известной. Ограничения решаются итеративно, и противоречивые привязки давали предупреждение Bailed out of edge synchronization after 10,000 iterations, которое поколения программистов Motif узнавали с первого взгляда. Потомок без привязок оказывается там, куда указывают XmNx и XmNy, как на обычной доске объявлений. Та же идея привязки элементов друг к другу двадцать лет спустя вернулась в Auto Layout iOS и ConstraintLayout Android — и ни тот ни другой родства не признал.

← Назад к словарю