XtSetValues(3Xt) — UNIX Programmer’s Manual
名称
XtSetValues, XtSetSubvalues, XtGetValues, XtGetSubvalues − ウィジェットのリソースの取得および設定をする
シンタックス
void XtSetValues(w, args, num_args)
Widget w;
ArgList args;
Cardinal num_args; void XtSetSubvalues(base, resources, num_resources, args, num_args)
caddr_t base;
XtResourceList resources;
Cardinal num_resources;
ArgList args;
Cardinal num_args; void XtGetValues(w, args, num_args)
Widget w;
ArgList args;
Cardinal num_args; void XtGetSubvalues(base, resources, num_resources, args, num_args)
caddr_t base;
XtResourceList resources;
Cardinal num_resources;
ArgList args;
Cardinal num_args;
引数
argsリソース名およびリソース値をストアするアドレスか あるいはそれらの新しい値のどちらかを含む名前/アドレスのペアの引数リストを指定します。
baseリソースを検索したり書き込んだりすべきサブパートのデータ構造体のベースアドレスを指定します。
num_args引数リストにおける引数の数を指定します。
resourcesウィジェットでないリソースのリストあるいは値を指定します。
num_resources
リソースリスト内のリソースの数を指定します。
wウィジェットを指定します。
解説
XtSetValues 関数は、 Core ウィジェットフィールドに対して指定されたリソースで開始され、サブクラス 連鎖をたどってウィジェットまで進みます。 これは、各段階において、新しい値(引数のいずれかで指定された場合) あるいは既存の値(新しい値が指定されない場合)を新しいウィジェット データレコードに書き込みます。 XtSetValues は次にスーパークラスからサブクラスへの順番でウィジェットに 対する set_values プロシージャを呼び出します。 ウィジェットが、ナルでない set_values_hook フィールドをもっている 場合は、それらは対応する set_values プロシージャの直後に呼び出されます。 このプロシージャで、サブクラスは、 XtSetValues に対してウィジェットでないデータを設定することができます。 ウィジェットの親が constraintWidgetClass のサブクラスである場合は、 XtSetValues はウィジェットの制約も更新します。 これは、 constraintWidgetClass に対して指定された制約リソースから開始し、サブクラス連鎖をたどって 親クラスまで進みます。 各段階において、これは新しい値あるいは既存の値を新しい制約レコードに 書き込みます。 これは次に constraintWidgetClass から順番に親クラスまで制約 set_values プロシージャを呼び出します。 制約 set_values プロシージャは、widget 引数で呼び出されます。 あらゆる set_values プロシージャに関する限りでは、それは制約レコード 引数ではないので、それらはウィジェットに関する完全な情報に 基づいて希望する値に調整することができます。 XtSetValues は、現在のウィジェットと新しいウィジェットを比較することによって、 ジオメトリリクエストが必要か否かを決定します。 ジオメトリリクエストが必要な場合は、これはリクエストを出し、ジオメトリ マネージャは XtGeometryYes、 XtGeometryAlmost、 あるいは XtGeometryNo を返します。 XtGeometryYes の場合は、 XtSetValues はウィジェットのサイズ変更プロシージャを呼び出します。 XtGeometryNo の場合は、 XtSetValues は、ジオメトリフィールドを元の値にリセットします。 XtGeometryAlmost の場合は、 XtSetValues は、set_values_almost プロシージャを呼び出し、何をなすべきかを決定し、 ジオメトリフィールドに対する新しい値をウィジェットに書き込みます。 XtSetValues はこのプロセスを繰り返して、ジオメトリマネージャを呼び出すべきか否かを もう1度判断します。 最後に、set_values プロシージャのいずれかで 真 が返された場合は、 XtSetValues は、ウィジェットのウィンドウ上に Xlib XClearArea 関数を呼び出すことによって、ウィジェットのエクスポーズプロシージャが 呼び出します。 XtSetSubvalues 関数は、リソースを基数によって識別される構造体内にストアします。 XtGetValues 関数は、コアウィジェットフィールドに対して指定されたリソースから 開始し、サブクラス連鎖をたどってウィジェットまで進みます。 渡された引数リストの値フィールドには、対応するリソース値をストアする アドレスが含まれていなければなりません。 この記憶領域を、ウィジェット内で使用されるリソース表現のタイプの サイズに応じて割当てしたり割当てを解除したりするのは、呼び出し側の 仕事です。 ウィジェットの親が constraintWidgetClass のサブクラスである場合は、 XtGetValues は、要求されたリソースに対する値を取り出します。 これは、 constraintWidgetClass に対して指定された制約リソースから開始し、サブクラス連鎖をたどって 親の制約リソースまで進みます。 引数リストに、検索されたリソースリストのどれにもなかったリソース名が 含まれる場合は、対応するアドレスにある値は修正されません。 最後に、get_values_hook プロシージャがナルでない場合は、それらは、 すべてのリソース値が XtGetValues によって取り出された後で、スーパークラスからサブクラスへの順序で 呼び出されます。 これによって、サブクラスは widget でないリソースデータを XtGetValues に提供することができます。 XtGetSubvalues 関数は、基数によって識別された構造体からリソースを得ます。
関連事項
X Toolkit Intrinsics − C Language Interface
Xlib − C Language X Interface
NEWS-OSRelease 3.3