SimpleCap(スクリーンキャプチャソフト)の開発報告。基本機能の実装ができた。
・単一ウィンドウ
・選択範囲
・タイマー
ソース:SimpleCap-2.zip
クラス構成は試行錯誤の上、下図のようになった。
キャプチャの種類によってマウスイベントに対する処理が異なる。今回はNSViewのサブクラスで分けるのではなくイベント処理と描画を行なう別のクラスを作って、これを切り替えて使うことにした。Handlerという名前のついたクラス群がこの処理を行なう。マウスイベントと描画に関するメソッドを Handlerというプロトコルで切り出しておき、NSViewの mouseDown: や drawRect: などのメソッドから、このプロトコルを呼出すようにした。CaptureController が HandlerとNSViewやその他の調整を行なう。これによってキャプチャの種類を増やしたい場合は Handlerを追加するだけで良い(もちろんファクトリ、メニュー呼び出しなどにも追加が必要)。
- - - -
次は細部をきちんと作り込むのと、複数ウィンドウ対応や新機能を加えていく。