XmText
L'editor di testo di Motif come widget, con un fratello a riga singola chiamato XmTextField, su cui si basavano dtpad, il campo di immissione di ogni dialogo e innumerevoli strumenti interni.
XmText mostra e modifica testo su una o più righe, secondo XmNeditMode. Il programma legge e scrive il contenuto con XmTextGetString e XmTextSetString, inserisce con XmTextInsert e viene informato delle modifiche tramite XmNvalueChangedCallback. XmNmodifyVerifyCallback viene chiamato prima che una modifica sia applicata e può rifiutarla, ed è così che si costruiva un campo di sole cifre. XmCreateScrolledText inserisce il widget in una XmScrolledWindow con barre di scorrimento, e XmNwordWrap, XmNrows, XmNcolumns e XmNmaxLength fanno il resto. XmTextField è la stessa interfaccia limitata a una riga, con XmNactivateCallback per Invio.
Sotto c'è una sorgente di testo, XmTextSource, che due widget possono condividere in modo che un buffer compaia in due finestre. Le combinazioni di tasti seguono i virtual bindings di Motif, con movimenti in stile Emacs disponibili tramite le translation table, e copia e incolla passano per la libreria clipboard di Motif sopra le selezioni X. Il widget bastava perché l'editor di CDE dtpad fosse, in fondo, un XmText con un menu, ma non per molto altro: niente colorazione della sintassi, un solo font per widget fino a Motif 2.0 e prestazioni che crollavano dopo qualche migliaio di righe.