ページ

2008年7月21日月曜日

SimpleCap (26) キャプチャ状態をステータスバーに反映

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

キャプチャ実行中は一目でわかるようにステータスバー上のアイコンを反転させることにした。


SimpleCapの実装は次のようになっている。

 メニュー選択(イベント発生)
   |処理開始
   ↓
 AppController ---> StatusBar管理
   |
   ↓
 CaptureContoller ---> キャプチャ処理(Handler)管理
   |
   ↓
    ----> キャプチャ処理(WindowHandler, ScreenHandler, ...)


キャプチャの開始と終了は各レイヤーで処理がしやすいように CaptureControllerが中心となって所定のメソッドを呼出すようになっている。

例えば、に対しては #start, #tearDownを呼出して開始前処理、終了後後始末の機会を与えている。同様に AppControllerに対しても #startCapture, #stopCaptureを呼出している。

 AppController <----CaptureController---->
  #startCapture    キャプチャ開始     #start
  #stopCapture    キャプチャ終了     #tearDown


ステータスバーは AppControllerが管理しているので、このコールバックメソッドを使いアイコンを入れ替えている。
こんな感じ。

AppContorller.m

- (void)startCapture
{
[self setIconStart];
}

- (void)exitCapture
{
[self setIconStop];
_state = SCStateNormal;
}