ページ

2008年12月10日水曜日

吹き出しウィンドウ(7)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

ステータスバー(NSStatusBar)内の位置を取得したい。NSStatusBar や NSStatusItem のAPIには用意されていない。ネットを調べても決定的な方法を見つけられなかった。

CocoaBuilderではカスタムビューを NSStatusBarへセットし、そこから座標を得る方法が検討されていた。
Cocoabuilder - Position of NSStatusItem


WindowListで調べてみるとステータスバー上のアイコンが一つのウィンドウとして割り当てられているのが分かる。下の図では一番上がステータスバー上の SimpleCapのアイコン領域を表している。


このウィンドウが取得できれば位置が得られる。


正攻法でウィンドウを取る手段がみつからないとなると、ウィンドウリストから得るしかないか。
例えば、自分と同じ PID を持っていて origin.y == 0 のウィンドウ、といった方法で狙い撃ちする。
場当たり的な感じもするが、これで十分かも。