メインウィンドウウィジェットは、アプリケーションの一次ウィンドウに対して標準配置を提供します。
メインウィンドウは、スクロールウィンドウの例であり、同じリソースパネルを共有します。
メインウィンドウウィジェットは、2 個のスクロールバー及 3 個のセパレータウィジェットを含んでいます。メインウィンドウは追加される子の用途に仮定条件を設定します。 ユーザーは独自の子ウィジェットを最高 3 個まで追加することができます。メニューバー、作業領域およびメッセージウィンドウは、ウィジェットパレットから選択を行うことにより、任意に追加することができます。メインウィンドウに子の作業領域が追加されない場合には、OSF/Motif は実行時に警告メッセージを発生します。
ウィンドウ上部に水平に広がるメニューバーが配置されます。
追加される最初の子 (メニューバーまたはコマンドウィジェット以外) は、作業領域と見なされます。その後に続く子はメッセージウィンドウと見なされます。これらの仮定条件は、リソースパネルのメッセージウィンドウリソースを使用すると、書き換えることができます。
メインウィンドウは、メニューバーと作業領域を提供します。作業領域は、どのようなウィジェットであっても構いませんが、フォームやローカラムなどのコンテナウィジェットが一般に使用されます。メインウィンドウに 2 個以上のメニューバーを直接追加することはできません。
メインウィンドウの詳細については、OSF/Motif プログラマーズ・リファレンスの XmMainWindow(3X) を参照してください。
ヒント
X-Designer において子が追加される場合にはサイズ変更を行いますが、メインウィンドウウィジェットは、子を収納するためのサイズ変更は行いません。たとえば、いくつかのカスケードボタンを持つメニューバーを含んでいるメインウィンドウを作成する場合、メインウィンドウは正しいサイズで表示されます。同じデザイン内で後で読み出しを行う場合、または生成コードを実行する場合には、メインウィンドウが小さすぎることがあります。これを解決するためには、メインウィンドウに対して明示的サイズ変更を使用します。
メインウィンドウウィジェットは、作業領域にスクロールウィンドウを提供します。作業領域を収めるようにサイズ変更を行うウィンドウが必要な場合 (作業領域がフォームであり、デフォルトですべてのフォームが可視状態であるなど) には、メインウィンドウは適切ではありません。代わりに、上部に広がるメニューバーを子に持つフォームを使用すると良いでしょう。
インタフェースの設計理念は時とともに変わります。Motif 2.1 以降、MainWindow が必ずしもアプリケーションのフロントエンドの主流レイアウト方式であるとはみなされなくなっています。 オブジェクト指向性の強いデータプレゼンテーションを行うコンテナウィジェットのプロパティと機能を研究する必要があります。
関連項目: