ページ

2008年5月21日水曜日

ThinButton(その8)ボタンの部品化(クライアント)

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

コード解説の最後は ThinButtonBarを使うクライアントコード。サンプルでは AppControllerが ThinButtonBarを作り、ボタンを押した時のイベントを受け取っている。

サンプルコードでは、ThinButtonBarを作り、3つのボタンを登録する。その後、NSWindowのcontent viewのサブビューとして追加している。AppController.m

@implementation AppController

-(void)awakeFromNib
{
NSRect buttonBarFrame = NSMakeRect(50, 50, 0, 0);
ThinButtonBar *button_bar = [[ThinButtonBar alloc] initWithFrame:buttonBarFrame];

[button_bar addButtonWithImageResource:@"icon_cancel" tag:TAG_CANCEL];
[button_bar addButtonWithImageResource:@"icon_timer" tag:TAG_TIMER];
[button_bar addButtonWithImageResource:@"icon_record" tag:TAG_RECORD];
[button_bar setDelegate:self];

[[_window contentView] addSubview:button_bar];
[button_bar release];
}



サンプルではイベント処理の実装はログへ書き出すだけ。どのボタンが押されたのかは tag::NSNumber で判断できる。tag値は上で見たようにボタン登録時に AppController側で用意して渡してやる。
-(void)clickedAtTag:(NSNumber*)tag
{
NSLog(@" %@", tag);
}



- - - -
ボタンができた。次は RubberBandへ戻ってこのボタンを貼付けてみよう。