2011年4月17日日曜日

Cocoa なんちゃってtabbed interface

休日をのんびり過ごしながらtabbedインターフェイスについて引き続き調べる。

調べ方が悪いのと、xcode4ということもあってなかなか手軽に使わせてもらえそうなフレームワークが見つからない。

考えてみると、今つくっている「ファイルマネージャーのようなもの」はDocumentBaseではないので、「タブでDocumentを切り替える」ということまでは必要ない。タブをドラッグしたら別ウィンドウになる、なんていう高度な技も必要ではない。表示するディレクトリをぱっぱと切り替えることができたらそれでいいわけで、表示したいディレクトリ名をタブにして画面に置いておければいい。

それなら自分で作ってみるか、と始めたのがこの画面。


はっはっは、それっぽくは表示できた。やっていることはこれだけだけど。

    NSRect rect=NSMakeRect(10, 0, 100, 20);
    NSBezierPath *path=[NSBezierPath bezierPathWithRect:rect];
    [[NSColor colorWithDeviceRed:0.0 green:0.0 blue:0.0 alpha:1.0] set];
    [NSBezierPath setDefaultLineWidth:0.1];
    [path stroke];
    [[NSColor colorWithDeviceRed:0.8 green:0.8 blue:0.8 alpha:1.0] set];
    [path fill];
[[NSColor colorWithDeviceRed:0.8 green:0.8 blue:0.8 alpha:1.0] set];で下のViewと色を合わせているだけでなんとなくそれっぽくなる、と。
さらに続けて

NSRect rect2=NSMakeRect(112, 0, 100, 20);
    NSBezierPath *path2=[NSBezierPath bezierPathWithRect:rect2];
    [[NSColor colorWithDeviceRed:0.7 green:0.7 blue:0.7 alpha:1.0] set];
    [path2 fill];
    [[NSColor colorWithDeviceRed:0.0 green:0.0 blue:0.0 alpha:1.0] set];
    [path2 setLineWidth:0.3];
    [path2 stroke];
としてみたらこうなる。

色の具合はこっちのほうがいいかなあ。

マウスイベントを処理することを考えると、単なるNSBezirPathではなくてViewにするかCellにするかしたほうがいい感じ。これは明日以降。

0 件のコメント:

コメントを投稿