IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > OSF/Motifインタフェースマニュアル > OSF/Motifによるプログラミング > xtGetEventComponents/1, xtGetEventComponent/1

xtGetEventComponents/1, xtGetEventComponent/1

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.

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 要求されたイベントのコンポーネントは、インタフェースに登録されていない

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/osf_motif/motifprog/xtgetec/print_en.html
published 2008/11/17 update 1995/11/6 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS