メタルウインドウで悩む
ShapeShifterというMac OS Xのアピアランスを変更するツール用のファイルであり、そのアピアランスのメニュー回りのカスタマイズを拡張するリソース群Menu Enhancerのサンプルテーマは、サンプルですので無茶なカスタマイズを施しておりまして、実は完成度があまり高くありません。
Mac OS X 10.3からのFinderにはアピアランスが2つ用意されておりまして、これらはツールバーで切り替える事が出来るのですが、SideBarが出ている状態がメタルアピアランス(計算機等で使われます)であり、そうでない方がアクアアピアランス(従来のMac OS XでのFinder)です。
そもそも、なんでメタルとアクアと使い分けるのか全く理解出来ませんけれども、ユーザーさんは結局それを強いらせられる訳でありまして、少なくとも私は使い辛いっていうか見辛くて仕方がなかったりです。
メタルアピアランスのカスタマイズについては、少々内容が古いのですけれどもこちらのエントリーを御覧戴くとしまして、非常に単純且つ無理の利かない仕様となっており、余談でありますがこれってiTunesとかの仕様を多少変更して流用したのではないかと思ってみたり。 該当するlayoリソースがExtras.rsrcに含まれておりませんのでカスタマイズが出来ません。 がーん。 layoがあれば、もしかしたらタイトルバー付近のFillをタイル貼りに出来るかも知れないんですけども...。
Menu Enhancerのサンプルテーマでは、Bevelリソースを用いて無理矢理にタイトルバーを表示させております。 ですが前述の通りメタルは単純な構造となっておりまして、ドキュメントウインドウとユーティリティーウインドウとが同じリソースを用いて描画されます。
右上の画像はInterface Builderでチェックしている様子です。 メタルのユーティリティーウインドウでコントロールがAppleの規定においてどの位上まで置けるかを試しているのですが、この時点でサンプルテーマは破綻してます。 そもそもタイトルバー(として使っているBevel)に食い込ませて配置出来るのではなく、本来のユーティリティーウインドウのタイトルバー位置にそってこれらコントロールが配置出来る事を示しておりまして、画像上のガイドラインがそれを物語ってます。
となればユーティリティーウインドウ用にタイトルバーのリソースを作れば良いのではないか、という結論に達しそうでもありますが、前述の通りメタルにはそのような仕様が為されておりませんので実現不可能です。
タイトルバー下部をグラデーション透過させれば良いのではないかと私は思い、そのようにリソースを作って試してみたところ、このようなグラデーション的な透過処理においては、システム側の問題かどうか不明でありますけれども、B85%当たりから下の値部分はBevelの透過処理は妙な事になってしまいます。 更にこれがユーティリティーウインドウですと更におかしな事になりますので、併せて考えてもこれは現実的なカスタマイズとは言えませんでした。
尚、このグラデーション的な透過処理は、上:白→下:黒という単純なもので、妙な事にB85%以上だと何となく処理が行われている風ではありました。 どちらにしても現実的ではありません。 余談ですが完全非透過は行えます。 もしかしたら、ですが、デフォルトのメタルと同じ(αチャンネル用のマスクリソースの)色使いならば問題無いのかも? 但しこのサンプルテーマの場合、例えば上部より10数pxを完全描画にさせ、残りを非描画にさせてコンテンツ(Texture)にお任せ描画させる事はデザイン的に無理があるので行えません。
と言う事でにっちもさっちも行きません。 面倒なのでBevelを全部非描画にしてTextureのみを描画させるというお手軽方法にしてしまおうかとも思いましたが、そうなると何の為のサンプルなのかわからなくなります(笑)。
視点を変えて、(Bevelでの)タイトルバーに、先にグラデーション透過を施した画像をペーストしておく、という方法も考えました。 が、BevelのFill部分の描画はストレッチ方式なので、コンテンツがTiledなのにタイトルバーがStretchという、何とも言えない無様な事になってしまいます。 このケースですとタイトルバーかコンテンツか、どちらかを横方向のストレッチにして更に両者を統一させなければならなくなります。
結論:現時点のThemeParkの仕様においてはこれ以上カスタマイズ出来ない。
ちなみにコントロールとの関係で申し上げますと、タイトルバーはコンテンツの上に乗っかっているのではなく、両者は独立した存在でありますので、コントロールがコンテンツよりも上に置かれる場合、タイトルバーの背面に潜り込みます。



