ページ

2008年12月20日土曜日

SimpleViewer(その1)

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

パネルの ContentViewへ ボタンバー(アイコン)とNSImageViewを張りつけてみる。
コントローラでパネル(NSWindowPanel)と各種ビュー(NSImageView, ButtonBar)を作成し、addSubView: で追加する。

_viewer_panel = [[SimpleViewerPanel alloc] init];

_image_view = [[[NSImageView alloc] initWithFrame:[_viewer_panel frame]] autorelease];
_button_bar = [[[ThinButtonBar alloc] initWithFrame:NSZeroRect] autorelease];
  :(アイコン追加)
[[_viewer_panel contentView] addSubview:_image_view];
[[_viewer_panel contentView] addSubview:_button_bar];


パネルのリサイズに合わせて NSImageViewの大きさも変える為、NSPanelへdelegateを設定して #windowDidResize: メッセージを処理する。

-(id)init {
 :
[_viewer_panel setDelegate:self];
 :
}
- (void)windowDidResize:(NSNotification *)notification
{
[_image_view setFrame:[[_viewer_panel contentView] frame]];
}



キャプチャ後にファイル名を受け取って表示する。これは NSImageを作成して NSImageViewへ渡すだけ。
- (void)showFile:(NSString*)filename
{
[_image_view setImage:[[[NSImage alloc] initWithContentsOfFile:filename] autorelease]];
[_viewer_panel makeKeyAndOrderFront:self];
}


こんな感じ。


それっぽくなってきた。
NSImageViewの画像が荒い気がする。またボタンバーの高さを考慮していないので縦位置が若干不自然。