widgetクラスによって提供される外部関数は、IF/Prologから呼び出しが行えるようにすべきです。これらの関数を呼び出す述語をIF/Prologに追加するには、標準のCインタフェ−スを使います。...
移動
次へ 前へ
上へ 最上
詳細
Widgetの名前の変換
C言語のクラスパラメータ
引数リストの変換
参考
新しいwidgetクラスの追加
新しいリソースの登録
コンバ−タ
外部関数の述語としての実現
新しいコールバックの理由の登録
新しいコールバック構造体のコンポーネントの登録
コンパイルとリンク
インスト−ル
イフコンピュータ > IF/Prolog > マニュアル > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > OSF/Motifインタフェースマニュアル > Motif IF/Prologの拡張 > Motif IF/PrologへのWidgetsの追加 > 新しいwidgetを追加するための作業 > 外部関数の述語としての実現

外部関数の述語としての実現

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/motif中のcbootxif.cを編集し、この呼び出しを追加して下さい。

例題:述語xmListDeselectPos/2を使用したXmListDeselectPos()の実現

static int IFXmListDeselectPos()

Widget list; unsigned int position;

if ( !XChk(IsWidget(IFArg(1),&list), IF_EXC_widget_exp) !XChk(IsUInt(IFArg(2), &position), IF_EXC_pos_int_exp)) return 0;

if (! XChk(XtIsSubclass(list), xmListWidgetClass), IF_EXC_list_exp)) return 0;

XmListDeselectPos(list, (int) position);

return 1;

. . . int CbootListExternals()

. . . CPRIM("xmListDeselectPos",2,IFXmListDeselectPos);

外部関数の実現については、例題のあるソ−ス $PROROOT/motif11/mtextext.cも参照して下さい。

続く..
Widgetの名前の変換
手続き呼び出しIsWidget()に注意して下さい。これは、Prologのwidget名からCのwidgetポインタへの変換を行います。...
C言語のクラスパラメータ
widgetクラスがC述語のパラメータでなければならない場合、Prologのクラス名からtoolkitクラスポインタへの変換がなされます。これは、Cにより次のように呼び出すことにより行なわれます。...
引数リストの変換
Prologの引数リストをtoolkitの引数リストに変換する場合には、IFXtSetArgs()を使用して下さい。...
IF/Prolog by Siemens
言語
English
Japanese
German
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/osf_motif/motifext/adwidget/incneww/impextf/home_jp.html
published 2008/9/8 update 1995/11/6 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS