ToolkitからPrologへの変換は、xtGetValues/2を使用する場合にのみ必要となります。この述語は、各リソースに対する変換手続きを呼び出す手続きとして実現されています。これらのコンバータは、リソース名とその値が必要とされるwidgetを取得します。リソース値は、コンバータがXtのルーチンXtGetValues()を呼び出すことによってwidgetから直接取り出されます。そして、必要とされるProlog表現への変換が行なわれ、その結果が返されます。
void FromToolkitToPrologConverter(name, widget, value_ptr) char *name; Widget widget; TERM *value_ptr;
Prolog表現への変換では扱い易くするために、整数定数をアトムに置き換えることがあります。
例題: 型"Boolean"のリソースに対するコンバータ
void IFXtTPCvtBoolean(name, widget, value_ptr) char *name; Widget widget; TERM *value_ptr; { Arg arg 1 ; Boolean bool;
IFXtCvtError = NULL; XtSetArg(arg 0 , name, &bool ); XtGetValues(widget, arg, 1 ); *value_ptr = (bool ? StrAt("true") : StrAt("false")); }