Здесь prWidget - объект, ресурсы которого
устанавливаются, второй и третий аргументы содержат список пар: "имя
ресурса/его значение" и число таких пар соответственно. Например, следующий
фрагмент кода позволяет установить ширину и высоту widget класса Core:
. . . . . . .
Arg aReserv[5]; /* Используется для задания ресурсов */
int i = 0;
Widget prShellParent; /* Родительский объект */
Widget prCoreWidget; /* Идентификатор объекта */
. . . . . . .
prCoreWidget = XtCreateWidget ("core", widgetClass,
prShellParent, NULL, 0);
XtSetArg (aReserv[i], XtNwidth, 100);
i++;
XtSetArg (aReserv[i], XtNheight, 150);
i++;
XtSetValues (prCoreWidget, aReserv, i);
. . . . . . .
X11R4 и выше поддерживает также функцию
void XtVaSetValues (Widget prWidget, . . . );
При ее вызове вместо многоточия должен стоять
завершающийся нулем список пар: "имя ресурса, его значение". Приведенный выше
пример с использованием XtVaSetValues( ) выглядит следующим образом:
Здесь prWidget - это объект, значения ресурсов
которого будут получены. Второй аргумент содержит список пар, каждая из
которых задает имя ресурса и адрес, по которому будет сохранено его
значение. Третий аргумент есть число таких пар. Например, приводимый ниже
фрагмент кода позволяет получить текущее значение высоты созданного объекта.
В результате в переменную nHeight будет
скопировано текущее значение высоты для созданного widget. Переменная, в
которую копируется значение ресурса должна иметь соответствующий ему тип.
Начиная с X11R4 можно использовать
процедуру
void XtVaGetValues (Widget prWidget, . . .);
При ее вызове вместо многоточия должен стоять
завершающийся нулем список пар, задающих имена ресурсов и адреса, по которым
будут сохранены их значения. Приведенный выше пример с использованием
XtVaGetValues( ) выглядит следующим образом: