XmText
Motifs Texteditor als Widget, mit einem einzeiligen Geschwister namens XmTextField, und das, worauf dtpad, das Eingabefeld jedes Dialogs und unzählige Hauswerkzeuge ihr Editieren aufbauten.
XmText zeigt und bearbeitet Text in einer oder mehreren Zeilen, gesteuert über XmNeditMode. Das Programm liest und schreibt den Inhalt mit XmTextGetString und XmTextSetString, fügt mit XmTextInsert ein und erfährt von Änderungen über XmNvalueChangedCallback. XmNmodifyVerifyCallback wird aufgerufen, bevor eine Änderung angewendet wird, und darf sie ablehnen, womit ein reines Ziffernfeld gebaut wurde. XmCreateScrolledText setzt das Widget mit Scrollbalken in ein XmScrolledWindow, und XmNwordWrap, XmNrows, XmNcolumns und XmNmaxLength erledigen den Rest. XmTextField ist dieselbe Schnittstelle, auf eine Zeile beschränkt, mit XmNactivateCallback für Return.
Darunter sitzt eine Textquelle, XmTextSource, die sich zwei Widgets teilen können, sodass ein Puffer in zwei Fenstern erscheint. Die Tastenbelegung folgt den virtuellen Bindungen von Motif, wobei Emacs-artige Bewegung über Translation Tables möglich ist, und Ausschneiden und Einfügen laufen über Motifs eigene Clipboard-Bibliothek auf den X-Selections. Das Widget genügte, damit CDEs Texteditor dtpad im Kern ein XmText mit Menü sein konnte, aber für nicht viel mehr: keine Syntaxfärbung, bis Motif 2.0 eine Schrift pro Widget und eine Leistung, die nach ein paar tausend Zeilen einbrach.