May 29, 2008

Firefox 3 on Mac OS Xのタイトルバーの新機能

誰も書いてないようだったので、activetitlebarcolor属性inactivetitlebarcolor属性についての説明を勝手に書き加えた。どこにも説明がなかったってことは、これは本当は触っちゃいけないって事なのかもしれんけど、そんなこと知ったこっちゃねえな!(ひどい)

以下、具体的な利用シーンについてちょっと解説。

Mac OS X上では、FinderやSafari、iTunesなどいくつかのアプリケーションで、ウィンドウのタイトルバーとツールバーが結合されたような見た目になっている。これを真似するためにFirefox 3で実装されたのが、activetitlebarcolor属性とinactivetitlebarcolor属性だ。実際には、OS X用デフォルトテーマのバインディングで利用されている。

通常、Mac OS Xではウィンドウのタイトルバーはグラデーションがかかってるんだけど、この属性で #FFF とか #FEFEFE とか gray とかの形で色を指定しておくと、ウィンドウがアクティブな時と非アクティブな時のそれぞれで、タイトルバーの背景がその色一色で塗りつぶされるようになる。と同時に、タイトルバーとウィンドウ内容との間の境界線が表示されなくなる。あとはウィンドウの背景やツールバーの背景をタイトルバーに指定した色と同じ色もしくはそれにつながるグラデーションにしておけば、タイトルバーとツールバーがくっついたデザインのように見えるようになる、というわけ。(逆に、これらの属性をremoveAttribute()で取っ払ってやれば、タイトルバーの表示を強制的に今まで通りの物に戻すことができる)

なお、これらの属性値を変更した場合、ウィンドウのフォーカスが移動するとかウィンドウの大きさが変わるとかしてタイトルバーが再描画されるまでは、見た目は変化しない。動的に変更する時は、属性値を変えた後に window.resizeBy(-1, 0); window.resizeBy(1, 0); とかいう感じで強制的に再描画させるといいと思う。

この機能の残念なところは、グラデーションや半透明や背景色といった派手な指定ができない点。あくまで背景を一色で塗りつぶすことしかできない。CSSのbackgroundプロパティと同等の機能をフル機能で使えれば良かったんだけどなあ。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能