タイトル【Inside Mac OS X】Carbon Event Managerとは?カテゴリーCarbon/CF, Inside Mac OS X
作成日2000/6/13 13:7:49作成者新居雅行
Manager Preliminary API Reference
古くからMacintoshでプログラミングをやっている人は、MS-DOS全盛時代において「イベントドリブン」というプログラミング手法に出会い、感激した人も多いことと思う。単にぐるぐるとループを回してキースキャンすることに比べて、一歩進んだものとしてイベント処理は映ったものだ。しかし、WindowsというGUI世代となり、Visual Basicを始めイベントドリブンは当たり前となった。オリジナルのイベント処理はシステムが生成する固定されたイベントのみだったが、さらにその処理を行う部分は現在のMac OS用アプリケーションには必ず組み込まれている。さすがに、その部分は古いと感じる仕様だ。もっとも、AppleEvent Managerによってイベントを登録するという汎用的な手法がMac OSに組み込まれたが、Carbonによってさらにイベント処理は発展しそうだ。Carbon Event Managerという新しいイベント処理機能が組み込まれるが、その内容がドキュメントの公開によっていくらか明らかになってきた。
ウインドウやキーボードの処理などのイベントは、従来はシステムで固定されたものだった。それをWaitNextEventで取得してイベントの種類ごとに振り分けるのが基本だった。しかしながら、Carbon Event Managerでは、Toolboxのさまざまなオブジェクトに、イベントのディスパッチを登録できる。たとえば、メニュー選択作業時のクリック時などに、イベント処理ルーチンの呼び出しを行うようなことができる。システムで既定されたイベント処理を変更するようなことも可能なようだ。つまり、AppleEventのようなメカニズムで、ウインドウやメニュー、キー操作やマウス操作の各種イベントに対応したプログラムを記述することができるのである。
ドキュメントはまだ5ページと短いもので、概要が書いてあるだけだ。また、リファレンスはあるものの、解説がほとんどなく、関数や定数の説明があるだけである。なお、従来からのWaitNextEventによるイベント処理も、Carbonではサポートされているので、従来のソースコードはそのまま動く。しかしながらCarbonにより最適化するには、Carbon Event Managerを使うことも検討する必要があるだろう。
関連リンクIntroduction to the Carbon Event Manager and the Carbon Event