ページ

2008年2月6日水曜日

スクラップブックその2 - 選択枠を描く

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

選択された時に画像の周りに灰色の枠線を描く処理を入れてみる。

まず選択画像を表すメンバ変数をビューへ追加する。

WorkView.h


@interface WorkView : NSView {
   :
Item* _selected_item;
}

その上でマウスで画像が選択された時に上記変数へ入れておく。


drawRect: で選択画像の周りに枠線を描画する。
WorkView.m

- (void)drawRect:(NSRect)rect {
[[NSColor whiteColor] set];
NSRectFill(rect);

for (Item* item in [_controller items]) {
[item.image compositeToPoint:NSMakePoint([item.x floatValue], [item.y floatValue])
operation:NSCompositeSourceOver];

if (_selected_item == item) {
// draw selection
[[NSColor lightGrayColor] set];
NSRect rect = [item rect];
[NSBezierPath setDefaultLineWidth:1.5];
[NSBezierPath strokeRect:rect];
}
}
}


こんな感じ。