IF/Prologは、Motif toolkitとOSF/Motif widget setに対するProlog言語バインディングを提供しています。
このwidgetsで広範囲にわたるアプリケ−ションを十分実現できます。しかし、C言語でのプログラミングやX11.3のwidgetの内部構造に通じているプログラマは、既存のwidgetsを拡張したり、あるいは特殊な機能によって新しいwidgetクラスを実現したいこともあるでしょう。
Prologによる新しいwidgetクラスの作成は、IF/Prolog言語バインディングによって行うことはできません。widgetは複雑なCデ−タ構造から成り、多くの場合Xlib関数を直接使用します。よって、widgetはCでプログラムされなければなりません。
しかし、IF/Prologを使えば、widgetの結合・widgetのパラメ−タの設定・コ−ルバックによるアプリケ−ションの実行を含むユ−ザインタフェ−スのプログラミングをよりエレガントに簡便に行うことができます。
上記の目的の為に、IF/Prologに最初から内蔵されているwidgetと同様に扱えるように、新しいwidgetをIF/Prologに結合する方法が必要となります。以下にプログラマが追加のwidget(あるいは全く新しいwidget)をPrologに含める場合の方法について説明します。