ページ

2008年6月26日木曜日

タイマーダイアログ(その5)

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

数字でカウントダウンを表示してみる。TimerView からTimerController を参照するようにし、1秒毎に再描画させる。

描画コード。
TimerWindowView.m


- (void)drawRect:(NSRect)rect
{
    :
    :
int count = [_controller lastCount];
NSPoint p;

NSMutableAttributedString* str =
[[NSMutableAttributedString alloc]
initWithString:[NSString stringWithFormat:@"%d", count]];
[str addAttribute:NSFontAttributeName value:[NSFont fontWithName:@"Arial" size:72]
range:NSMakeRange(0, 1)];
[str addAttribute:NSForegroundColorAttributeName value:[NSColor whiteColor]
range:NSMakeRange(0, 1)];
NSSize str_size = [str size];
p.x = (wb.size.width - str_size.width) /2;
p.y = (wb.size.height - str_size.height) /2 - COUNT_STR_OFFSET;

[[NSColor whiteColor] set];

[NSGraphicsContext saveGraphicsState];
[_shadow set];
[str drawAtPoint:p];
[NSGraphicsContext restoreGraphicsState];

Arialフォント 72pt で数字を描く。描画位置はウィンドウの(おおまか)中心にくるように計算してある。

するとこんな感じになる。


- - - -
まずは最低限のものができた。次は現在別々になっている開始・一時停止ボタンをまとめてみよう。