XtRealizeWidget(3) ウィジェットのリアライズ、リアライズ解除を行う

Other Alias

XtIsRealized, XtUnrealizeWidget

書式

void XtRealizeWidget(w)

      Widget w;

Boolean XtIsRealized(w)

      Widget w;

void XtUnrealizeWidget(w)

      Widget w;

引き数

w
ウィジェットを指定する。

説明

ウィジェットが既にリアライズされていれば、 XtRealizeWidget はすぐに復帰する。 リアライズされていなければ以下の処理を実行する:
ウィジェットのトランスレーションテーブルにある全てのアクションの名前を 手続きに対応付ける(セクション 10.1.2 を参照)。
管理する子を 1 つ以上持つ各々の composite ウィジェットに対して、 change_managed 手続きを呼ぶ。これは、指定されたウィジェットをルートと したウィジェットツリーを、下から上への順に実行する。
Core ウィジェットフィールドから得た情報で満たされた XSetWindowAttributes 構造体を生成し、ウィジェットの realize 手続きを呼ぶ。これはウィジェット の特定の属性を加え、さらに X のウィンドウを生成する。
ウィジェットが compositeWidgetClass のサブクラスでないならば、 XtRealizeWidget はここで戻る。サブクラスであれば、続けて以下を実行する:
-
ウィジェットに管理された子を再帰的に降りながら realize 手続きを呼ぶ。 子をインスタンス化する Primitive ウィジェットは、その子をリアライズする責 任がある。
-
mapped_when_managed が True になっている、管理している子のウィンドウの全てをマッピングする。 (管理されているウィジェットの mapped_when_managed が False である場合、ウィジェットは表示領域が割り当てられるものの、表示はされな い。ある人々は、ある特定の状態を表示するためにこれを好むようである)

もしウィジェットがトップレベルのシェルウィジェット (つまり親を持たない) であり、かつ mapped_when_managed が True であれば、 XtRealizeWidget はウィジェットのウィンドウをマッピングする。

XtIsRealized 関数は、ウィジェットがすでにリアライズ (X window ID が 0 でない ウィジェット) されていれば、 True を返す。

ウィジェット手続きの中には (例えば、set_values)、そのウィジェットが実 体化した後、異なる動作をするものがある。

XtUnrealizeWidget 関数は、既存のウィジェットとその子のウィンドウを破棄する (再帰的にウィ ジェットツリーを降りながら) 。 後から再びウィンドウを生成する場合は、再び XtRealizeWidget を呼べばよい。 ウィジェットが管理されていた場合、そのウィンドウが解放される前に自動的 に非管理状態となる。