XtManageChildren
Section: XT FUNCTIONS (3Xt)
Updated: Release 6.3
Index
xjman/web INDEX
名前
XtManageChildren, XtManageChild, XtUnmanageChildren, XtUnmanageChild, XtChangeManagedSet, XtIsManaged - 子ウィジェットのマネージとマネージ解除
書式
typedef Widget *WidgetList;
void XtManageChildren(children, num_children)
WidgetList children;
Cardinal num_children;
void XtManageChild(child)
Widget child;
void XtUnmanageChildren(children, num_children)
WidgetList children;
Cardinal num_children;
void XtUnmanageChild(child)
Widget child;
void XtChangeManagedSet(unmanage_children, num_unmanage_children, manage_children, num_manage_children, post_unmanage_pre_manage_hook, client_data)
WidgetList unmanage_children;
Cardinal num_unmanage_children;
WidgetList manage_children;
Cardinal num_manage_children;
XtCSMProc post_unmanage_pre_manage_hook;
XtPointer client_data;
Boolean XtIsManaged(widget)
Widget widget
引き数
- child
-
子ウィジェットを指定。
- children
-
子ウィジェットのリストを指定。
- num_children
-
子ウィジェットの数を指定。
- widget
-
ウィジェットを指定。
- manage_children
-
マネージセットに追加する子ウィジェットのリストを指定。
- num_manage_children
-
manage_children リスト内のエントリー数を指定。
- unmanage_children
-
マネージセットから取り除く子ウィジェットのリストを指定。
- num_unmanage_children
-
unmanage_children リスト内のエントリー数を指定。
- post_unmanage_pre_manage_hook
-
マネージ解除後、マネージ前に呼び出すフック手続きを指定。
- client_data
-
フック手続きに渡すクライアントデータを指定。
説明
関数
XtManageChildren
は以下の処理を行う:
- *
-
親の異なる子ウィジェットが含まれる場合や親ウィジェットが
compositeWidgetClass
のサブクラスでない場合に、エラーを出す。
- *
-
共通の親が破棄されようとしている場合は、即座に戻ってくる。そうでなけれ
ば、リスト中のユニークな子ウィジェットのそれぞれに対して、
XtManageChildren
は、その子ウィジェットが既にマネージされているか、破棄されようとしてい
る場合にはこれをを無視する。また、マークが付いていなければ、これにマー
クを付ける。
- *
-
親ウィジェットがリアライズされていて、かつ全ての子ウィジェットにマーク
が付けられている場合、新しくマネージされた子ウィジェットの一部は表示可
能になる。
-
- -
-
そのウィジェットの親ウィジェットの change_managed 手続きを呼ぶ。
- -
-
前にマネージ解除された子ウィジェットのうち、リアライズ解除されているも
のそれぞれについて
XtRealizeWidget
を呼ぶ。
- -
-
前にマネージ解除された子ウィジェットのうち、map_when_managed が
True
であるものそれぞれをマップする。
子ウィジェットのマネージは、子ウィジェットの順序とは独立であり、子ウィ
ジェットの生成や破棄とも独立である。
親ウィジェットのレイアウトルーチンは, managed フィールドが
True
である子ウィジェットを考慮に入れ、それ以外の子ウィジェットを全て無視す
る。
複合ウィジェットの中には(特に固定されたボックス)、insert_child 手続き
の中から
XtManageChild
を呼ぶものがある点に注意せよ。
親ウィジェットがリアライズされていれば、マネージされている子ウィジェッ
トの集合が変化したことを通知するために、親ウィジェットの
change_managed 手続きが呼ばれる。
これにより、親ウィジェットは子ウィジェットの再配置やサイズ変更を行うこ
とができる。
親ウィジェットは、必要に応じて
XtMoveWidget
を呼んで、それぞれの子ウィジェットを動かすことができる。
この関数は、まず x, y フィールドを更新し、次に、このウィジェットがリア
ライズされていれば
XMoveWindow
を呼ぶ。
関数
XtManageChild
は、長さが1の
WidgetList
を作り、
XtManageChildren
を呼ぶ。
関数
XtUnmanageChildren
以下の動作を行う:
- *
-
親の異なる子ウィジェットが含まれる場合や親ウィジェットが
compositeWidgetClass
のサブクラスでない場合に、エラーを出す。
- *
-
共通の親が破棄されようとしている場合は、即座に戻ってくる。そうでなけれ
ば、リスト中のユニークな子ウィジェットのそれぞれに対して、
XtUnmanageChildren
が以下の処理を行う:
-
- -
-
その子ウィジェットが既にマネージ解除されているか、破棄されようとしてい
る場合にはこれをを無視する。また、マークが付いていなければ、これにマー
クを付ける。
- -
-
子ウィジェットがリアライズされている場合、これはマップ解除によって不可
視の状態にされる。
- *
-
親ウィジェットがリアライズされていれば、全ての子ウィジェットにマークを
付け終った後で、親ウィジェットの change_managed 手続きを呼ぶ。
XtUnmanageChildren
は、子ウィジェットを破棄することはない。
親ウィジェットのマネージセットからウィジェットを削除することは、一時的
にウィジェットを取り除いているだけのことが多い。この場合には、後で再び
子ウィジェットをマネージすることができる。
関数
XtUnmanageChild
は、長さ1のウィジェットリストを作り、
XtUnmanageChildren
を呼び出す。
XtChangeManagedSet
は、以下の動作を行う:
- *
-
manage_children リストと unmanage_children リストで指定さ
れたウィジェットに親の異なるものが含まれる場合や、親ウィジェットが
compositeWidgetClass
のサブクラスでない場合に、エラーを出す。
- *
-
共通の親が破棄されようとしている場合は、即座に戻ってくる。
- *
-
CompositeClassExtension
が定義されていない場合、または
CompositeClassExtension
は定義されているが allows_change_managed_set フィールドの値が
False
であり、かつ
XtChangeManagedSet
が NULL でない post_unmanage_pre_manage_hook 手続きを指定して呼
び出された場合には、
XtChangeManagedSet
は以下の動作を行う:
-
- -
-
XtUnmanageChildren
(unmanage_children, num_unmanage_children)
を呼び出す。
- -
-
指定された post_unmanage_pre_manage_hook を呼び出す。
- -
-
XtManageChildren
(manage_children, num_manage_children)
を呼び出し、その後すぐに戻る。
- *
-
そうでない場合で、allows_change_managed_set の値が
True
である
CompositeClassExtension
が定義されている場合、または
CompositeClassExtension
が定義されておらず、かつ NULL である
post_unmanage_pre_manage_hook 手続きを使って
XtChangeManagedSet
が呼び出された場合には、以下の処理が行われる:
-
- -
-
unmanage_children リストの子ウィジェットそれぞれについて処理を行
う。この子ウィジェットが既にマネージ解除されているか破棄されようとして
いる場合には、これは無視される。そうでない場合には、マネージ解除のマー
クが付けられ、さらにリアライズされている場合は、アンマップされて不可視
にされる。
- -
-
post_unmanage_pre_manage_hook 手続きが NULL でない場合、この手続
きが指定されたように呼び出される。
- -
-
manage_children リストの子ウィジェットそれぞれに対して処理を行う。
子ウィジェットが既にマネージされているか、破棄されようとしている場合に
は、これは無視される。そうでない場合には、マネージされるものとしてマー
クが付けられる。
- *
-
親ウィジェットがリアライズされており、子ウィジェット全てにマークが付け
られた後ならば、まず親ウィジェットの change_managed 手続きが呼ばれ、続
いて以下の処理が行われることで、新しくマネージされた子ウィジェットの一
部が可視状態になる:
-
- -
-
以前にマネージ解除された子ウィジェットで、リアライズされていないものの
それぞれに対して
XtRealizeWidget
を呼ぶ。
- -
-
以前にマネージ解除された子ウィジェットで、map_when_managed が
True
であるものをそれぞれマップする。
関数
XtIsManaged
は、
指定されたウィジェットがクラス RectObj かそのサブクラスであり、かつマ
ネージされている場合に
True
を返し、そうでない場合には
False
を返す。
関連項目
XtMapWidget(3Xt),
XtRealizeWidget(3Xt)
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 15:56:32 GMT, February 12, 2001