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.
xtGetEventComponents(?EventComponentList)
xtGetEventComponent(?EventComponent)
最近、あるいは現在ディスパッチされているイベントの指定したコンポーネントを問い合わせます。
イベント構造体のコンポーネントは明示的に問い合わせなければなりません。したがって、イベント構造体は要求された場合にだけProlog表現に変換されます。
多くの場合、アプリケーションがイベントコンポーネントを問い合わせる必要はありません。なぜならば特定のコールバック述語が呼び出された事実や、それに引き渡されたデータに、すでにイベントに関する多くの情報が含まれているからです。
EventComponentListは、次の形をした要素のリストです。
component(?Value)
ここで、'component'は問い合わせるコンポーネントを指定し、Valueはコンポーネントの値と単一化されます。
eventTypeは、最初にアプリケーションによってチェックされなければなりません。正しいイベント構造体のコンポーネントは、それに依存するからです。Prologのイベントコンポーネントの指定子は、'event'の後にCのイベント構造体のコンポーネント名を続け、アンダースコアの代わりに大文字によって単語を区切ったものです。しかし、構造体名が例題のdetailのようにあいまいに使用されると、コンポーネントの指定子はそれらのあいまい性をなくすように変更されます。
x --> eventX
detail --> detail or eventInOutDetail
eventTypeがnoEventの場合には、その時点までにディスパッチされたイベントがないか、あるいは最後のコールバックがタイマーイベントのような特殊な非Xイベントによって引き起こされたということです。
索引に正しいイベント構造体のコンポーネントの一覧表があるので参照して下さい。
?- [user].
| breakCallback(_,_,Reason) :-
| write(Reason), nl, break.
| EOF
?- xtAddCallback(pushButton, activateCallback,
breakCallback, _).
yes
?- xtMainLoop.
< click to push button >
(2) ?- xtGetEventComponents(
[eventType(Type),
eventButton(Button)]).
Type = keyPress
Button = buttonX
yes
?-
list_expected EventComponentListはリストでなければならない
illegal_component_list_element EventComponentListの要素は、アリティ1の項でなければならない
illegal_type_component 要求されたコンポーネントはこのイベントの構造体には存在せず、このイベントの型に対して有効でない
illegal_event_component 要求されたイベントのコンポーネントは、インタフェースに登録されていない
|