イベント構造体とイベントコード

STRUCTURE


Macintosh でのイベント構造体と、そのイベントコード表です。

このイベント情報は、gotEvent := WaitNextEvent(everyEvent, myEvent, 15 NIL) みたいな感じでタスク制御をほかに移すと同時に待って、取得したイベント情報を、イベントコードで分岐処理する…。それの半無限ループによって、イベントループを行うようです。

 

イベントの構造体

typedef UInt16 EventKind;

struct EventRecord

{

EventKind what; // イベントコード

UInt32 message; // イベントメッセージ

UInt32 when; // Mac が起動してからの経過 Tick 数

Point where; // マウスの位置

EventModifiers modifiers; // modifier flags

};

 

イベントコード

enum

{

nullEvent = 0; // 保持しているイベントなし

mouseDown = 1; // マウスダウンイベント

mouseUp = 2; // マウスアップイベント

keyDown = 3; // キーボードが押された

keyUp = 4; // キーボードが離された

autoKey = 5; // キーボードが押され続けている(リピート中?)

updateEvt = 6; // ウィンドウにアップデート処理が必要(再描画?)

diskEvt = 7; // ディスクが挿入された(マウント時?)

activateEvt = 8; // ウィンドウに、アクティベート/ディアクティベートが発生

osEvt = 15; // OS イベント

kHighLevelEvent = 23; // ハイレベルイベント

};