Základní jednoduchá aplikace, která zobrazí okno a v něm jedno tlačítko, které reaguje na své stisknutí. Tlačítko vyplňuje celou uživatelskou část okna aplikace a přizpůsobuje svou velikost rozměrům okna.
Hlavní funkce aplikace vytvoří potřebné widgety a předá řízení hlavní smyčce událostí Motifu.
window = XtVaAppInitialize(&app, "Application", NULL, 0, &argc, argv, NULL, NULL);
XtVaAppInitialize() inicializuje knihovnu Xt Intrinsics a nutně předchází dalšímu použití Motifu. Dojde tak k navázání spojení k X serveru, vyhodnocení standardních parametrů příkazové řádky a zdrojů X klienta a je vytvořeno top-level okno (uložena v návratové struktuře window).
Argumenty funkce jsou následující:
button = XmCreatePushButton(window, "Button", NULL, 0); XtManageChild(button); XtAddCallback(button, XmNactivateCallback, (XtCallbackProc) button_pushed, NULL);
V dalším kroku dojde k vytvoření tlačítka a nastavení některých jeho důležitých vlastností. Funkce XmCreatePushButton() (definovaná v hlavičkovém souboru Xm/PushB.h — obvykle každý widget má vlastní hlavičkový soubor) vytvoří widget tlačítka jako potomka widgetu hlavního okna, nastaví mu nápis (String) a výchozí nastavení zdrojů (seznam typu ArgList a počet položek typu Cardinal).
Volání funkce XtManageChild() způsobí, že o autonomní vlastnosti widgetu (velikost apod.) se bude nadále starat jeho rodičovský widget (v našem případě hlavní okno). To způsobí, že při zobrazení hlavního okna dojde také k zobrazení tlačítka a změně jeho velikosti v případě změny velikosti okna.
XtAddCallback() přiřadí tlačítku callback funkci, která se vykoná v případě, že na tlačítku dojde k události stisknutí. Druhý parametr (v našem případě má hodnotu XmNactivateCallback) je typu String a udává typ události (a současně prototyp callback funkce). Poslední parametr má typ XtPointer a umožnuje callback funkci předat libovolná uživatelská data.
XtRealizeWidget(window); XtAppMainLoop(app);
Na závěr dojde k zobrazení hlavního okna a předání řízení do hlavní smyčky události Motifu. Funkce XtAppMainLoop() tedy skončí až s událostí uzavření hlavního okna aplikace a uživatelský kód se provádí jen v podobě volání callback funkcí tehdy, když nastanou příslušné události.
Callback funkce, která byla dříve zaregistrována na událost XmNactivateCallback tlačítka a je tedy provedena v případě stisknutí tlačítka. Kromě identifikace widgetu, na kterém k události došlo, a uživatelských dat (předaných při registraci) také dostává funkce jako svůj argument strukturu specifickou typu widgetu a události, přesněji popisující nastalou událost a její případné parametry.