ラベルやボタンなどウィンドウの部品その物を表すウィジェットをプリミティ ブウィジェットと呼びます。それに対してボタンを並べる平面など、その上に ウィジェットを並べることの出来るウィジェットをコンポジットウィジェット と呼びます。そのうちポップアップなどのように特別に扱われるウィジェット をシェルウィジェットと呼ぶことは既に見てきました。それ以外の、通常にマ ネージされるウィジェットをコンストレイントウィジェットと呼びます。
MotifではXt Intrinsicsで見たようにXtCreateManagedWidget関数を用いて ウィジェットを宣言することも出来ますが、各々のウィジェットクラスごとに 作成のための関数が用意されています。例えばPushButtonウィジェットクラス のインスタンスを生成するにはXmCr eatePushButton関数を用いることが出来 ます。次の例は
Widget parent, pushbutton; pushbutton = XmCreatePushButton( parent, "name", NULL, 0 );
次の例と同じです。
pushbutton = XtCreateManagedWidget( "name", xmPushButtonWidgetClass, parent, NULL, 0 );
整理すると次のようになります。以下の解説ではクラス名を列挙します。 Motifに関するマニュアルページがインストールされていればman 「クラス名」 でそのクラスがどのようなリソースを持っているか調べることが出来ます。
クラス名 XmPushButton クラスポインター xmPushButtonWidgetClass 生成関数名 XmCreatePushButton