ウインドウアプリケーションではポップアップウインドウと呼ばれるウィン ドウをよく使います。ポップアップメニューや警告メッセージの表示、ファイ ル名を選んだりする作業用のウインドウなどです。これらのウインドウはアプ リケーションで開いたウィジェットとは関係なくいきなりルートウインドウの 上に表示されたりします。XtCreateManagedW idgetで作られるようなウィジェッ トではありません。マネージされるわけではありません。こういった特殊なウィ ジェットをシェルウィジェットと呼び、XtCreatePopupShellで作ります。
Widget XtCreatePopupShell( name, widget_class, parent, args, num_args ) String name; WidgetClass widget_class; Widget parent; ArgList args; Cardinal num_args;
作られたウィジェットはポップアップの枠だけですから、そこに表示のための 面(ペイン)やボタンやテキストなどは作られたウィジェットを親にして XtCreateManagedWidgetで登録してやります。メニューが出来ると、そのメニュー を表示するコールバックもしくはアクションを定義します。こうして出来たポッ プアップは好きなときに表示したり引っ込めたり出来ます。表示するときは XtPopup、引っ込めるときはXtPopdownを呼びます。ウィジェットのリアライズ はXtPopupがやってくれます。