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);
}
例題:型"XtJustify"のリソ−スに対するコンバ−タ
void IFXtPTCvtJustify(value, arg_val)
TERM value;
XtArgVal *arg_val;
{
IFXtConvertAtom(value, XtRJustify);
if (IFXtto.addr == NULL)
IFXtCvtError = "illegal_justify_resource";
else
*arg_val = (XtArgVal)*(XtJustify *)IFXtto.addr;
}
|