XtSetArg(3) ArgList の設定・マージを行う

Other Alias

XtMergeArgLists

書式

XtSetArg(arg, name, value)

      Arg arg;

      String name;

      XtArgVal value;

ArgList XtMergeArgLists(args1, num_args1, args2, num_args2)

     ArgList args1;

     Cardinal num_args1;

     ArgList args2;

     Cardinal num_args2;

引き数

arg
設定する Arg 構造体を指定する。
args1
最初の ArgList を指定する。
args2
2 番目の ArgList を指定する。
num_args1
最初の引き数リストの引き数の数を指定する。
num_args2
2 番目の引き数リストの引き数の数を指定する。
name
リソース名を指定する。
value
リソースが XtArgVal の大きさ以下であればその値、逆に大きければアドレスを指定する。

説明

ミスを最小限に抑えるため、 XtSetArg 関数は極めて特定の形式で使用される。例えば:

Arg args[20];
int n;
n = 0;
XtSetArg(args[n], XtNheight, 100);n++;
XtSetArg(args[n], XtNwidth, 200);n++;
XtSetValues(widget, args, n);

また、引き数のリストを静的に宣言してから XtNumber を使用する方法もある:

static Args args[] = {
     {XtNheight, (XtArgVal) 100},
     {XtNwidth, (XtArgVal) 200},
};
XtSetValues(Widget, args, XtNumber(args));

自動インクリメントや自動デクリメントを XtSetArg の最初の引き数に使用してはならないことに注意しなければならない。 これは XtSetArg が最初の引き数を 2 回参照するマクロを実装しているためである。

XtMergeArgLists 関数は指定された 2 つの ArgList 構造体を含めることのできる十分な記憶領域を割り当て、その中にこの 2 つ をコピーする。 コピーされた内容についてはチェックされない事に注意すること。 新たに生成された ArgList が不要になったときは XtFree によって解放しなければならない。