Home > ツールバー > ツールバー作成奮闘記 第二話

ツールバー作成奮闘記 第二話 このエントリーを含むはてなブックマーク

今回は見た目を指定する方法について.XULというXML系の言語がでてきます.あまり身構えずに読むとすんなり読めるはずです.今回は24*24のロゴをクリックするとHello world!をアラートで表示するというのを目標にします.

オーバーレイを作成する

今回は一気に5つほどファイルを増やします.全て表示に必要な物たちです.

+- attoolbar/
  +- install.rdf
  +- chrome.manifest
    +- chrome/
      +- content/
        +- overlay.xul
        +- overlay.js
      +- locale/
        +- ja-JP/
          +- locale.dtd
      +- skin/
        +- main.css
        +- logo16.png — 16*16のロゴファイルを作成してください
        +- logo24.png — 24*24のロゴファイルを作成してください

overlay.xulの設定

まずはoverlay.xulを作りましょう.ボタンは一つですので,以下のようなXULファイルとなります.

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://attoolbar/skin/main.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://attoolbar/locale/locale.dtd">
<overlay id="attoolbar-overlay"
 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript" src="chrome://attoolbar/content/overlay.js" />
  <toolbox id="navigator-toolbox">
    <toolbarpalette id="BrowserToolbarPalette">
      <toolbaritem id="attoolbar"
       tooltiptext="&attoolbar_tooltip;" title="&attoolbar_title;">
        <toolbarbutton id="attoolbar-menu" type="button" tooltiptext="&attoolbar_menu;"
         oncommand="attoolbar.onClick(); event.preventBubble();" />
      </toolbaritem>
    </toolbarpalette>
  </toolbox>
</overlay>

どこにボタンを出せと書いているのかわからないかもしれませんが,toolbarbuttonで定義しています.利用が可能なコントロールについてはXUL controls - MDCを参照してください.ちなみにtoolbarpaletteが戻るや更新と同じ位置のボタンであることを指定しており,対して独立したツールバーにする場合はここをtoolbarにします.今回は場所を取る気はないのでtoolbarpaletteを採用します.idには基本的にコード名を頭につけるのがマナー(他のアドオンと衝突すると良くない)のようですので面倒でもつけましょう.

locale.dtdの設定

次はlocale.dtdを作ります.このファイルは言語の差異を埋めるためのもので,もちろんのことながら言語毎に作る必要があります.とは言え全世界の人に使ってもらう予定がなければ日本語だけで良いかもしれません.実はこれは前のoverlay.xulの中にあった謎のアンパサンドで始まる部分の実体です.

<!ENTITY id "body">

という形式で書きます.これでidにbodyという内容を関連づけることができ,DOCTYPEで読み込みさえすればその内容を&id;の代わりに表示することができます.実はoverlayに直接書くこともできたのですが,他言語化するときに言語毎にXULファイルを作り変える手間を省くため分割しているのです.ここでoverlay.xulで不足していた部分を補いましょう.

<!ENTITY attoolbar_title "@toolbar">
<!ENTITY attoolbar_tooltip "@toolbar">
<!ENTITY attoolbar_menu "@toolbarメニュー">

main.css

次はmain.cssを作ります.このファイルは画像の配置やその他諸々の見た目を指定します.

#attoolbar-menu {
    -moz-box-align: center;
    list-style-image:
     url("chrome://attoolbar/skin/logo24.png");
}

toolbar[iconsize="small"] #attoolbar-menu {
    -moz-box-align: center;
    list-style-image:
     url("chrome://attoolbar/skin/logo16.png");
}

toolbar[iconsize="small"]の設定はブックマークツールバーなど細いツールバーの時に適用されます.

overlay.js

最後にoverlay.jsを作ります.overlay.xulのボタンはクリックした時にoncommandというイベントが発生します.この時にalertを出すことが目標なのでこの中身について完成させましょう.(もちろんのことながらoncommand内にalertを書いても良いのですが,今後のことを考えて外部ファイルに書きます.)

var attoolbar = {
    onClick: function() {
        alert("Hello world!");
    }
};

仕上げ

ここまで来て目標のものはできました.しかしどのように実行すれば良いの?ときっと思うでしょう.では今からその方法についてお教えします.まずzip圧縮ソフトウェアを用意しcontentとlocaleとskinを圧縮し,その圧縮ファイルの名前をコード名.jarというファイル名に変えてchromeの下に置いてください.次にchromeとchrome.manifestとinstall.rdfを圧縮しコード名.xpiというファイル名に変えてください.そうすれば出来上がりです.あとはそのxpiファイルをFirefoxに投げインストールしてみてください.(もし見つからなければメニューの表示>ツールバー>カスタマイズから見つけることができます.)

今回の時点でできあがってるものは以下から手に入れられます.内容を見る場合はxpiの拡張子をzipに変えて解凍してください.
toolbar02

今回で見えるものができました.次回はツールバーからブラウザの操作をします.

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://imoz.jp/2008/11/toolbar02/trackback/
Listed below are links to weblogs that reference
ツールバー作成奮闘記 第二話 from 超現実いもす(imos)の日記

Home > ツールバー > ツールバー作成奮闘記 第二話

Search
Feeds
Meta

Return to page top