moz-iconスキームによるLinuxネイティブなアイコンの呼び出し方
Linux版Firefox3では、OSと統合された外観を持つ為に、GTK2テーマで指定されたアイコンを「moz-icon」スキームで表示させることが出来るようになった。
moz-iconスキームについて検索で調べたところめぼしい情報を得ることが出来ず、やむなくソースコードをgrep検索してみたところ、mozilla/modules/libpr0n/decoders/icon/nsIIconURI.idlファイルに解説が書かれているのを発見した。
Web上では、Mozilla Cross-Referenceで閲覧できる。
以下、解説部分のみ引用。
What *is* a moz-icon URI you ask? Well, it has the following syntax: moz-icon://[| | ]? ['?'[ ]] is a legal file: URI spec. You only need to specify a file: URI inside the icon if the file you want the icon for actually exists. is any filename with an extension, e.g. "dummy.html". If the file you want an icon for isn't known to exist, you can omit the file URI, and just place a dummy file name with the extension or content type you want: moz-icon://dummy.html. is of the format: stock/ is a valid icon name, such as 'ok', 'cancel', 'yes', 'no'. XXXcaa Should these considered platform dependent or can we share and document them? Legal parameter value pairs are listed below: Parameter: size Values: [ | button | toolbar | toolbarsmall | menu | dialog] Description: If integer, this is the desired size in square pixels of the icon Else, use the OS default for the specified keyword context. Parameter: state Values: [normal | disabled] Description: The state of the icon. Parameter: contentType Values: Description: The mime type we want an icon for. This is ignored by stock images.
以下に示すURIの例は、実際にロケーションバーに打ち込んで試すことが出来る。
GTKのstockアイコンを呼び出すには、例えば以下のURIを打ち込む。
moz-icon://stock/gtk-about
「gtk-about」の部分に指定できるアイコン名の一覧はGNOME ドキュメントライブラリから閲覧できる。
拡張子に対応したアイコンを呼び出すには、例えば.zipの場合
moz-icon://.zip
と打ち込む。「hoge.zip」などでも良い。Windowsとは違ってLinux版Firefox2では、この方法でアイコンを呼び出すことが出来なかった。
MIME Typeに対応するアイコンを表示するには、contentTypeパラメータを使って、
moz-icon://goat?contentType=text/html
と打ち込む。ここで「goat」の部分はダミーで、「hoge」や「fuga」でも良い。*1しかし、ピリオドを含んだ「hoge.txt」などでは、拡張子「.txt」に対応したアイコンが優先され、contentTypeパラメータは無視される。
パラメータを含んだ例として、上の階層に上がるアイコンを16pxの大きさ、disable状態で表示するには
moz-icon://stock/gtk-go-up?size=16&state=disable
と入力することになる。
Firefoxのバージョン:3.0beta5
関連記事:moz-iconスキームのsizeパラメータに文字列を指定する