イフコンピュータ > IF/Prolog > マニュアル > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > Athena インタフェースマニュアル > X11.4 Toolkit によるプログラミング > Prolog言語バインディングによるXtプログラムの例題

Prolog言語バインディングによるXtプログラムの例題

IF/Prolog by Siemens
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).

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/athena/xtprog/example/print_jp.html
published 2008/11/17 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