XmRowColumn
Motifs Allzweck-Manager, der seine Kinder in Zeilen oder Spalten anordnet und der, verkleidet, jede Menüleiste, jedes Pulldown-Menü, jede Radiobox und jedes Optionsmenü einer Motif-Anwendung ist.
Im Kern tut XmRowColumn nur eines: Es legt seine Kinder nacheinander aus, waagerecht oder senkrecht je nach XmNorientation, und bricht gemäß XmNpacking und XmNnumColumns in neue Zeilen oder Spalten um. Doch die Ressource XmNrowColumnType ändert die Persönlichkeit des Widgets. XmMENU_BAR, XmMENU_PULLDOWN, XmMENU_POPUP und XmMENU_OPTION liefern die vier Menüarten, und XmNradioBehavior macht aus einer Gruppe von Umschaltknöpfen Radiobuttons, von denen nur einer gesetzt sein kann. Die Komfortfunktionen XmCreateMenuBar, XmCreatePulldownMenu, XmCreateRadioBox und XmCreateOptionMenu erzeugen allesamt dasselbe Widget mit unterschiedlichen Voreinstellungen.
Es war ein typischer Motif-Kompromiss: eine Klasse weniger zu dokumentieren, dafür eine der längsten Man-Pages des Toolkits, in der die Hälfte der Ressourcen nur in einem der Modi greift. Menüs auf RowColumn-Basis werden mit Gadgets statt Widgets gefüllt, um X-Fenster zu sparen, und RowColumn zeichnet auch die gestrichelte Linie oben, die ein Menü ab Motif 1.2 abreißbar macht. Mit XmNentryClass und XmNisHomogeneous lassen sich alle Kinder auf einen Typ festlegen, womit die Radiobox alles außer Umschaltknöpfen abweist.