Oct 17, 2007
タブのツリー表示
ようやく手を着けることにしました。TBEの機能を分割してFirefox 2向けに移植する作業の続きの中で一番めんどくさそうな、タブのツリー表示。Tab KitとかTab Treeとか、すでに新しくて素晴らしい物がどんどん出てきてるんだけど、まあ、マイペースで行くことにします。
サムネイルは情報化タブのもの。タブの縦置きは現在はVertigo任せ。公開版ではもちろん自前で縦置きするようにする予定だけど、今は「ツリー表示」のための部分に集中して開発するために敢えて放置してる。
親子関係の構築にあたっては、TBEでは「タブを開く」処理を乗っ取って引数でゴチャゴチャやってたんだけど、Tab Treeの発想が物凄くシンプルだったので、試しにそれベースで実装してみている。
TODO(優先順位が高い物から順に):
→実装したtarget
やwindow.open()
で開かれたタブも親子関係の中に組み入れるタブを閉じた時の、次にフォーカスするタブの制御→実装したタブの親子関係をセッションをまたいで保持する(開き直したタブについても親子関係を自動的に復元する)→実装した(多分)ツリーの折り畳み→実装した畳まれたツリーを閉じたら子孫のタブも全部閉じる→実装した開かれたツリーで親のタブを閉じたら、子孫のタブのレベルを一つ繰り上げる→実装したWindowsエクスプローラのツリーのような自動開閉→実装したマルチプルタブハンドラとの連携(畳まれたツリーに対応するために特別な処理を書かないといけない)→実装した畳まれたツリーについて、子孫に含んでいるタブの数を表示する→実装したドラッグ&ドロップでの、ツリーの動的な変更→実装したタブの縦置きの自前提供(動的な幅変更も含む)→実装したタブを右に表示する機能→実装したインデント幅の設定機能→実装した:ユーザがいちいち人力で変更するなんてあほらしいので、インデント幅を自動調整するようにした(初期値は変更可能)画面外にタブが開かれた場合の自動スクロール→実装した- ウィンドウをまたいだタブのドラッグ&ドロップ
TBEに存在した、別のドメインのページを読み込んだ時にタブの親子関係を自動的に破棄するとかの細かい部分については、実装してみてはいたものの自分が使ってる限りでは全然役に立ったことがないので、サクッと省略の方向で。
wikieditish message: Ready to edit this entry.