2011年4月23日土曜日

Cocoa Tabbed Interface NSView(2)

Tab本体もNSViewにしてTabbedInterfaceの作り直し。

本日はここまで。

エディタ「kod」にはChromeライクなtabが実装されていて、Chromeのコードも使われている。で、kodのプロジェクトをダウンロードしてあったので、そこからtab関連のソースを眺めてみた。

Chromeのタブは台形なわけだが、これはどうやらNSAffineTransformというクラスを使って変形しているようだ。とかなんとか調べているうちにあっという間に時間がたって、今日は複数のtabをアクティブ、非アクティブに切り替えて表示するところまで。tabのタイトルをtruncateさせるのはすでにCellの時にやっていたのでコピペですんだ。

マウスをトラッキングしてクローズボタンを表示するのは、せっかくtab本体がNSViewなので自前でやるつもり。つまりクローズボタンをさらにNSButtonなりNSViewで実装しない、と。

それができたらクローズ処理、タブが多すぎるときのOverflowMenu、という感じかな。ドラッグアンドドロップでtabの表示入れ替え、もやってみたいなあ。

tabがクリックされてアクティブなtabが切り替わる処理は、tabを管理しているTabBar側でやっている。しかし現在は[self superView]でTabBarを呼び出し、そこからchangeActiveTabIndexとかなんとか直接呼び出しているのがダサい、と自分でも思う。これはやはり、近い将来のためにもNotificationでいくべきだろうなあ。

とかなんとか、Cocoaプログラミングのことばっかり考えている毎日。楽しいなあ。

0 件のコメント:

コメントを投稿