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.
以下のプログラムは、Athena widgetsを用いたX11 toolkitの概念のいくつかを示しています。これは、ディレクトリ $PROROOT/x11r4/demos 中のファイル dialogd.pro にあります。また、別の例題もここに含まれています。
プログラムの概要:
・xtInitialize/5 によるtoolkitの初期化
・xtCreateManagedWidget/5 によるmanaged widgetの生成
・xtSetValues/2 によるリソ−スの変更
・xtAddCallback/4 によるコ−ルバックの追加
・アクションのトランスレ−ションや使用法の変更
・ユ−ザとの対話処理において生じるイベントによる、手続きの呼び出し
まず、タイトル 'Hello, Please type input:'、テキスト用入力ウインドウ、ユ−ザによるテキストの入力が終了した時に押す2つのボタンからなる、ダイアログwidgetが作られます。テキストの入力は、リタ−ンキ−、あるいは'^C'を入力することによっても終えることができます。この振る舞いはユ−ザ定義のアクションによって起こるもので、テキストwidgetのトランスレ−ションテ−ブルに含まれています。
program :-
program_parameters(Pars),
xtInitialize(Toplevel, Toplevel, demo, [], Pars),
xtSetValues(Toplevel, [ allowShellResize(true),
input(true)
]),
xtAddAction(action),
xtCreateManagedWidget(dialog, dialog,
dialogWidgetClass, Toplevel,
[ label('Hello, please type input:'),
value('')
]),
xtCreateManagedWidget(Confirm, Confirm,
commandWidgetClass, dialog,
[ label('Confirm')
]),
xtAddCallback(Confirm, callback, confirm, dialog),
xtCreateManagedWidget(Cancel, Cancel,
commandWidgetClass, dialog,
[ label('Cancel')
]),
xtAddCallback(Cancel, callback, cancel, _),
xtNameToWidget(dialog, value, TextWidget),
xtSetValues(TextWidget, [ translations(
'#override\n Return: action(confirm)\
Ctrl C: action(cancel)')]),
xtRealizeWidget(Toplevel),
xtMainLoop.
confirm(Widget, Dialog, _) :-
xawDialogGetValueString(Dialog, String),
write('String "'), write(String), write('" entered\n').
cancel(Widget, CallData, AppDate) :-
exit(0).
action(Widget, params(confirm)) :-
xawDialogGetValueString(dialog, String),
write('String "'), write(String), write('" entered\n').
action(Widget, params(cancel)) :-
exit(0).
|