xtAddAction(+ActionName) xtAddActions(+ActionList)
intrinsicsのXtAddAction(s)()に相当します。
xtAddAction/1は、widgetのトランスレ−ションを指定する場合に使用できる既存のアクションに、グロ−バルアクション述語を追加します。
xtAddAction/1は、アクション述語ActionName/2がすでに存在しているかどうかをチェックし、ない場合には例外を起こします。
最大で10個までのグロ−バルアクションをIF/Prologから定義できます。そのうちの2個は、あらかじめ定義してあります。これらはMainLoopを終了させるxtActionBreakと、IF/Prologを終了させるxtActionByeです。
xtAddActions/1は、ActionList中のすべてのアクション述語を、xtAddAction/1 の呼び出しによって追加します。
[user]. | write_action(WidgetName, Params) :- write('Action from widget '), write(WidgetName), write(' with params '), write(Params), nl. |EOF yes ?- xtAddAction(write_action).
yes
?- xtSetValue(command_1, translations('#augument \
Ctrl
yes ?- xtMainLoop. < ctrl A in window > action from widget command_1 with params params(p1,p2) < ctrl A in window > action from widget command_1 with params params(p1,p2) < ctrl B in window >
yes ?- _
too_many_actions グロ−バルアクションの最大数を越えている atom_expected ActionNameとActionListのメンバーがアトムでなければならない