描画領域ウィジェット

描画領域ウィジェットは、テキストやグラフィックスを描くことができる画面を提供します。アプリケーションは、Xlib および Xt イントリンシックス関数を使用して描画領域への書き込みを行い、洗練されたグラフィックスアプリケーションを構築することができます。

X-Designer 構成領域および配置エディタは、共に描画領域ウィジェットの例です。

描画領域には、X-Designer 配置エディタを使用して配置することができる、任意の子ウィジェットを持たせることができます。

描画領域ウィジェットの詳細については、OSF/Motif プログラマーズ・リファレンスの XmDrawingArea(3X) を参照してください。

Windowsモードの場合は、描画領域リソースパネルはかなり異なったものになります。これは、イベント処理の方法が Windows においては異なっているためです。Windows メッセージハンドラのリストが表示されます。X-Designer はこれらの選択されたもの各々に対して、コールバックを生成します。また、コールバックボタンは、Motif にのみ関連することを示すピンク色で表示されます。

ヒント

描画領域にメニューウィジェットを追加することにより、1 個または複数のポップアップメニューを定義することができます。描画領域ウィジェット内でマウスボタン 3 を押すと、カーソル位置にポップアップメニューが表示されます。

複数のポップアップメニューがある場合は、X-Designer は現在選択されている (または現在選択されているウィジェットを含んでいる) メニューを表示するものと仮定します。メニューが、選択されているウィジェットを含んでいない場合、あるいはそのウィジェットでない場合、X-Designer はウィジェットの最初 (左側) の子であるポップアップメニューを使用します。

表示、または複数のポップアップメニュー間の調整を行うコードは、X-Designer に組み込まれています。実行時に同様の効果を得るためには、アプリケーションにコードを提供する必要があります。

Motif 1.2 またはそれ以前のバージョンでは、カーソル位置にメニューを配置および表示するには、ボタン押下のイベントをキャッチするようにイベントハンドラを追加して、XmMenuPosition(3) を呼び出し、選択したメニュー上で XtManageChild(3X) を呼び出します。

Motif 1.2 バージョンでは、XmPopupHandlerCallback を描画領域に追加し、コールバックに渡された XmPopupHandlerCallbackStruct の menuToPost 要素に、必要なメニューのウィジェット ID を設定します。ポップアップメニューの XmNpopupEnabled リソースは XmPOPUP_AUTOMATIC または XmPOPUP_AUTOMATIC_RECURSIVE に設定することもできます。これにより、Motif ツールキット自体がイベントハンドラをインストールし、マウスを押すイベントを捕獲します。描画領域にポップアップメニューを 1 つだけ配置する場合は、XmNpopupEnabled を適切に設定するだけで十分です。

関連項目: