メニューアイテムの間隔を狭くする
Mac OS Xのメニューバーのアイテム間隔を狭くするカスタマイズ方法をエントリーします。 上の画像はデフォルトの状態で、Mac OS Xになってからというもの、文字級数は大きくなるし、間隔も広くなるしで、若干狭めのモニター解像度では窮屈で仕方有りません。
用意するもの(Aquaをカスタマイズする場合)
今回はMac OS Xのデフォルトアピアランスである「Aqua」をカスタマイズして結果をShapeshifterで表示させます。 勿論ShapeShifterを用いずに直接Extras.rsrcを書き換える事も可能ですし、またそちらの方が簡単なのですけれども、安全性を考慮し(それと関係者という事もあり)ShapeShifterを使ってアピアランスを切り替えます。
事前にShapeShifterをオフにしてアピアランスをAquaに戻して下さい。
ShapeShifterで切り替えられるアピアランスのファイル形式「guiKit」を作成するのがThemeParkというエディターです。 これを起動し、cmd + Nで新規ファイルを作成します。
「Theme」欄をクリックすると右に項目が表示されますので、下にある「Add」ボタンをクリックしますと、ThemeParkはシステムのデータを読み込みます。
次に「Option」ボタンをクリックし、出てきたシートにあるチェックボックスをオンにしてOkayボタンをクリックし、MenuEnhancerを組み込んで下さい。
ThemeParkでの作業は一先ず終了です。 保存して下さい(ちなみに拡張子は.taprkです)
保存したtparkファイルをProperty List Editor.app
/Developer/Applications/Utilities/Property List Editor.app
で開きます。 尚、Property List Editor.appはディペロッパーツールをインストールする事でインストールされるアプリケーションです。
上の画像のように
root > theme > themes > 00000 > elements > globalElements > layoResources
に「extras.rsrclayo260」がありますので、更に深く
extras.rsrclayo260 > value
という項目まで開いて下さい。 データ・クラスであるvalueは括弧括りでデータが収められてますので、ダブルクリックで編集可能モードにしてコピーして下さい。
コピーした内容はテキストエディタにペーストします。
このままではリソースエディターにペースト出来ませんので、先頭と末尾にある括弧を削除しておきます。
次にResEditを起動します。 ResEditはClassicアプリケーションですので、起動にはClassic環境が必要となります。
ResEditを起動したら、cmd + Nで新規ファイルを作成します。
続けてcmd + Kで新規リソースを差し込むのですが、左のようなダイアログが出ますので、空欄部分に「layo」とタイプしてOKボタンをクリックして下さい。
これでlayo ID128が新規作成されました。 また、これは開かれた状態になってますので、先ほどテキストエディターにペーストして編集しておいたデータをペーストして下さい。 そしてウインドウを閉じます。
今回のカスタマイズは、実はResEditすら必要ではない程簡単なものですけれども、ResEditやMenuEnhancerの練習にはもってこいのカスタマイズだと言えます。 さておき、
layoリソースは内容が非常に複雑ですので、データそのものを眺めていてもカスタマイズは先ず不可能です。 そこでMenuEnhancerのテンプレート・リソースを使います。 「layo260tmpl.rsrc」をResEditで開きますと、TMPLというリソースが1つだけ置かれてます。 これをコピーして作業中のファイルにコピーするだけです。
もう一度layo 128を開きますと、編集しやすいように内容が区切られているのに気付く筈です。
この中の上部にある「Interval」がメニューアイテムの間隔にあたる部分です。
左の画像のように、デフォルトは「8」です。 これを調整するのですが、今回は「1」にしてみました。 書き換えましたらウインドウを一端閉じます。
今度は編集したデータを再度テキストエディター経由でProperty List Editor.appへ貼り付けますが、ResEditにテンプレートを入れてしまったので、そのまま開くとテンプレート経由で表示されてしまいます。
そこで右の画像のように、開く時にoptionキーを押しながらダブルクリックしますと...
ダンプで表示されます。
ここで真ん中の16進数部分をコピーしてProperty List Editor.appにペーストするのですが、Property List Editor.appでのデータは括弧括りが原則ですので、一端テキストエディター上にペーストし、先頭と末尾に括弧を挿入し、その上でProperty List Editor.appにペーストします。
これでlayo 260のカスタマイズは完了しました。 次に、MenuEnhancerでは他にlayo 261と263のカスタマイズを標準で装備しておりますので、追加されたこれら2リソースを削除してしまいましょう。 「extras.rsrclayo261」なり「extras.rsrclayo263」を選択し「Detele」ボタンをクリックする事で削除出来ます。
最終的にはこのようにシンプルな構成となります。 これでProperty List Editor.app上での編集は完了です。 保存して終了して下さい。
もう一息です。 このままでもリソース構成の面から見れば問題はありませんけれども、MenuEnhancerは追加された画像リソースを領域が判別しやすいように色分けしておりますので、このままではそれがそのまま反映されてしまいます。
tparkファイルを再度ThemeParkで開いて下さい。
Themes > hogehoge > Element > Global Elements > Menubar and Menus
まで掘り進めますと右のようなリストが表示される筈です。
ここで画像データのコピー&ペーストを行います。
「Menubar Fill」にはNum1のみですので、これをペーストして「Aqua Root Menu Item (Caps)」のNum1と「Aqua Root Menu Item (Fill)」のNum1にペーストして下さい。 サイズが違うのでアラートが出ますけれども「Scale Other Images」ボタンをクリックしてリサイズしてペーストして下さい。
次に「Menu Title Selected - Blue」のNum1を「Aqua Root Menu Item (Caps)」のNum1と2、「Aqua Root Menu Item (Fill)」のNum1と2にペーストします。
これで作業は完了です。 保存し、メニューの
File > Export > For ShapeShifter
でguiKitファイルに書き出します。 そしてアピアランスを切り替えてみましょう。
間隔が狭まりました。 これはMenuEnhancerSample(mes)でも行っているカスタマイズですので、是非とも切り替えて参考にして下さい。
個人で使う分であればどのような設定にしても構わないと思われますが、今回のカスタマイズですとメニューアイテムを選択した場合に少々窮屈な印象を受けますので、Intervalの数値を調整してそれぞれのアピアランス(guiKit)に適したデザインにして下さい。
蛇足ですが、ThemeParkに組み込まれているMenuEnhancerについても質問等がありましたらpadma colorsで受け付けます。 ThemeParkの開発元では質問に答えられないと思いますので宜しくお願いします。




