| ||||||||||
| MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008. 多くのリソースでは、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; }
| ||||||||||
|
| 戻る> |
|