XmRowColumn
Универсальный менеджер Motif, выстраивающий потомков в строки или столбцы и, переодетый, служащий каждой строкой меню, выпадающим меню, радиогруппой и option menu в приложении Motif.
По сути XmRowColumn делает одно: размещает потомков друг за другом, горизонтально или вертикально согласно XmNorientation, с переносом в новые строки или столбцы согласно XmNpacking и XmNnumColumns. Но ресурс XmNrowColumnType меняет характер виджета. XmMENU_BAR, XmMENU_PULLDOWN, XmMENU_POPUP и XmMENU_OPTION дают четыре вида меню, а XmNradioBehavior превращает группу переключателей в радиокнопки, из которых включена только одна. Удобные функции XmCreateMenuBar, XmCreatePulldownMenu, XmCreateRadioBox и XmCreateOptionMenu создают один и тот же виджет с разными предустановками.
Типичный компромисс Motif: на один класс меньше в документации ценой одной из самых длинных man-страниц тулкита, где половина ресурсов действует лишь в одном из режимов. Меню на RowColumn наполняются гаджетами, а не виджетами, чтобы экономить окна X, и именно RowColumn рисует пунктирную линию сверху, превращающую меню в отрывное (tear-off) начиная с Motif 1.2. Через XmNentryClass и XmNisHomogeneous можно потребовать от всех потомков один тип, чем радиогруппа отвергает всё, кроме переключателей.