多くのリソースでは、Prolog表現はXtoolkit中の文字列表現に対応するアトムになります。これらの場合には、Xtoolkitあるいはwidgetクラスの初期化時に登録したコンバータが存在します。そしてこのコンバータは、文字列表現をwidgetによって要求されるリソースの表現に変換します。これらのコンバータは、Prolog-to-Xtoolkitコンバータによって使用されねばなりません。XtのルーチンXtConvert()を使って登録されたコンバータを呼び出し、その後にXtArgValへのキャストを行なうことができます。IFXtConvertAtom()は、XtConvert()を呼び出し、その変換結果をグローバル変数IFXttoに代入する便利なルーチンです。
XrmValue IFXtto; void IFXtConvertAtom(value, type) TERM value; String type; {
XrmValue from; char *string = AtStr(value);
from.size = strlen(string) + 1; from.addr = (caddr_t) string;
/* use built-in Resource converter function: */
XtConvert(IFWidget,XtRString,&from,type,&IFXtto); }
例題: 型"XmRBoolean"のリソースに対するコンバータ
void IFXtPTCvtBoolean(value, arg_val) TERM value; XtArgVal *arg_val; {
IFXtConvertAtom(value, XmRBoolean); if (IFXtto.addr == NULL) IFXtCvtError = "illegal_boolean_resource"; else *arg_val = (XtArgVal)*(Boolean *)IFXtto.addr; }