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 件のコメント:
コメントを投稿