| ||||||||||
| 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. widgetクラスによって提供される外部関数は、IF/Prologから呼び出しが行えるようにすべきです。これらの関数を呼び出す述語をIF/Prologに追加するには、標準のCインタフェ−スを使います。 XとIF/Prologの間の"Arg"名の衝突を避けるためには、ファイルcpred.hの代わりにファイルxcpred.hをインクル−ドし、C述語に対するパラメ−タを取得するために、Arg()の代わりにIFArg()を使って下さい。 新しい述語は、Cboot()と同様の手続き、たとえばCbootNewExternals()中でPrologに登録しなければなりません。この手続きは、主手続きCbootXif()から呼び出されなければなりません。$PROROOT/x11r4中のcbootxif.cを編集し、この呼び出しを追加して下さい。 例題:述語xawListHighlight/2を使用したXawListHighlight()の実現 外部関数の実現については、例題のあるソ−ス $PROROOT/x11/list_ext.cも参照して下さい。 static int IFXtListHighlight() { Widget list; int index; if ( !XChk(IsWidget(IFArg(1),&list), IF_EXC_widget_exp) || !XChk(IsInt(IFArg(2)), IF_EXC_int_exp)) { return 0; } if (! XChk(XtClass(list) == listWidgetClass, "list_widget_expected")) return 0; index = IntPC(IFArg(2)); XtListHighLight(list,index); return 1; } . . . int CbootListExternals() { . . . CPRIM("xtListHighlight",2,IFXtListHighlight); } | ||||||||||
|
| Back> |
|