さて今度はメニューキャプチャにマウスカーソルを合成する。メニューキャプチャでは以前紹介した Windowクラスは使わずベタで CGWindowListCopyWindowInfo( )を使っていた。これに手をいれて Windowベースの実装へ変更する。こうすると CaptureController側のマウスカーソル画像合成はウィンドウほかの共通処理が使える。
早速修正処理に入るがコードがちょっとわかりづらい(自分で書いたのだが。。)。そこで一旦メニュー処理を整理してみた。
まずコードは何をやっているのかを追ってみた。
おおざっぱすぎてよくわからない。もう少し詳細に追って見る。
なんとなくやりたいことが見えてきた。つまり(当時自分で考えたことは)こういうこと。
メニューの種類によって、メインメニューバーやステータスバーを追加する処理を加えている。
例えばこんなのや、
こんなの、
そしてこんな感じ。
その為に処理が若干わかりづらくなっている。今回 Window対応するのに合わせてここをリファクタリングしてしまおう。
(続く)