はじめに
Windows Vistaでは、デスクトップ上の右側(日本語版の既定の設定)に垂直のバーが表示されています。これは、「Windows Sidebar」と呼ばれる新しいツールで、この垂直バーの中で「ガジェット」という小さなプログラムを実行することができます。Windows Vistaには、時計やカレンダーなど、いくつかのガジェットが最初から組み込まれていますが、ユーザーは自由にガジェットを追加したり、解除することができます。Windows Vista標準では「RSSフィードのヘッドライン」「メモ」「時計」「カレンダー」「株価」「連絡帳」「天気予報」などが用意されていますが、さらにガジェットをダウンロードして、簡単に追加していくこともできます。ダウンロード可能なガジェットについては、以下のページを参照してください。
現在は、Windows Live用のガジェットとWindows Sidebarガジェットが提供されています。Windows VistaのSidebar上で動作させるには、Windows Sidebar用のガジェットをダウンロードしてください。
もちろん、ガジェットを新たに開発し、インターネットなどを通して配布することができます。ガジェットは、常にデスクトップ上に表示させておくことができるため、主に常駐させておくと便利なミニツールの開発に適しています。
ガジェット開発の準備
ガジェットの開発に必要なものは特にありません。Windows Vistaがインストールされているコンピュータであれば、メモ帳などのテキストエディタを使い、直ちにガジェットをプログラムして実行することができます。ガジェットはHTML+JavaScriptベースで動作するため、基本的な開発方法はWebページに似ています。ガジェットは、HTML、CSS、JavaScript、そして簡単なXMLの知識さえあれば開発できてしまいます。
ガジェットの実行方法
ガジェットの実行には2通りの方法があります。1つは、Windows Sidebarのガジェット用フォルダ内にHTMLファイルやXMLファイルなどの、ソースファイルを配置して実行する方法です。HTMLファイルやXMLファイルを容易に編集できるため、開発中はこの実行方法を利用します。
2つ目はフォルダごとZIPファイルにアーカイブし、拡張子を「zip」から「gadget」に変更する方法です。正しくアーカイブされた.gadget拡張子のZIPファイルは、アーカイブから直接実行することができます。こちらの実行方法は、主にガジェットを配布するときに使います。
ここではまず、開発用の実行方法について説明します。ガジェット用のフォルダは、ユーザープロファイルのホームディレクトリにある隠しフォルダ「AppData」内にあります。エクスプローラからは見えないので、アドレスバーから以下のフォルダまで直接移動してください。
%userprofile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets
%userprofile%
は、ログオンしているユーザーのユーザー情報を保存するフォルダです。上記のアドレスを入力すれば、例えば次のようなパスになるでしょう。
C:\Users\ユーザー名\AppData\Local\Microsoft\Windows Sidebar\Gadgets
このパスが表すGadgetsフォルダ内に、テスト用のガジェットを配置する新しいフォルダを作成します。このフォルダの名前の末尾は、必ず.gedgetで終わらせてください。Windows Sidebarは、.gedgetで終わるフォルダを発見するとガジェットであると認識してくれます。ここでは例として「Test.gadget」というフォルダを新しく作成します。
最低限、ガジェットを実行するために必要なファイルは、ガジェットとして表示されるHTMLファイルと、マニフェストと呼ばれるXMLファイルの2つです。マニフェストには、ガジェットの名前や説明、ガジェットとして実行するファイル、バージョン、作者などの情報をXML形式で保存します。HTMLファイルの名前は任意で構いませんが、マニフェストの名前はつねに「gadget.xml」で保存しなければなりません。この場では、テスト用のガジェットとして次のようにファイルを作成しました。
Test.gadgetフォルダ +----test.htmlファイル +----gadget.xmlファイル
たったこれだけで、ガジェットの開発の準備は整いました。後は、作成したHTMLファイルとXMLファイルをメモ帳などのテキストエディタで編集すれば、ガジェットを実行することができます。それではガジェットを作っていきましょう。
マニフェスト
ガジェットを実行するにはWindows Sidebarにガジェットを認識してもらい、Windows Sidebar上に開発したガジェットを追加しなければなりません。そのために、まず「マニフェスト」と呼ばれるガジェットの基本的な情報を持つXMLファイルを作成します。「gadget.xml」ファイルを開いて、メモ帳で次のように編集します。
<?xml version='1.0' encoding='utf-8' ?> <gadget> <name>Test Gadget</name> <version>1.0.0.0</version> <hosts> <host name='sidebar'> <base type='HTML' apiVersion='1.0.0' src='test.html' /> <permissions>Full</permissions> <platform minPlatformVersion='1.0' /> </host> </hosts> </gadget>
以下、順番に要素の説明をします。
xml宣言
「gadget.xml」は、正式には「Sidebar Gadget Manifest」と呼ばれています。マニフェストの役割は、ガジェットの実行環境に対してガジェットの基本的な情報を提供することです。マニフェストはXML文書なので、最初は必ずXML宣言から始めます。XML宣言は次のように記述してください。
<?xml version='1.0' encoding='utf-8' ?>
マニフェストは、encoding
属性に合わせて文字コードをUTF-8で保存しなければなりません。
gadget要素
次に、マニフェストのルート要素であるgadget
要素を指定します。ガジェットの情報は、すべてgedget
要素の内部に記述することになります。gadget
要素は、特に属性を持ちません。
<gadget>
gadget
要素には、必ずname
要素、version
要素、hosts
要素を指定しなければならないと定められています。name
要素は、ガジェットの名前を、version
要素はガジェットのバージョンを表します。こうした情報は、例えばWindows Sidebarでガジェットを追加する時に表示されるガジェットのリストなどで、ユーザーにガジェットの情報を伝えるために使われます。
name要素
name
要素は、ガジェットの名前を指定します。
<name>ガジェット名</name>
version要素
version
要素は、10進数の数値をピリオドで区切ったバージョン番号を指定します。最初の桁がメジャーバージョン、次がマイナーバージョン、その後はビルド番号やリビジョン番号などの振り分けに使うことができます。
<version>メジャー.マイナー.ビルド.リビジョン</version>
hosts要素
hosts
要素は、ガジェットを実行するコードそのものの情報を提供する要素です。hosts
要素には属性はありません。
<hosts>
host要素
hosts
要素には、必ず1つ以上のhost
要素を指定しなければならないと定められています。host
要素にはname
属性を指定しなければなりません。Windows Sidebarを対象とするガジェットの場合、host
要素のname
属性は必ず「sidebar」となります。
<host name='sidebar'>
さらに、host
要素の子要素には、必ずbase
要素、permissions
要素、platform
要素を指定しなければならないと定められています。
- base要素
- permissions要素
- platform要素
base
要素は、ガジェットとして実行されるファイルのパスや種類を指定します。ガジェットのファイルの種類はtype
属性で指定しますが、Windows Sidebarを対象とするがジェットの場合は常に「HTML」となります。ファイルのパスはsrc
属性で指定します。
<base type='HTML' src='ガジェットファイルのパス' />
permissions
要素に属性はありません。常に内容を「Full」と記述します。<permissions>Full</permissions>
platform
要素には、実行するガジェットが必要とする最小のWindows SidebarのバージョンをminPlatformVersion
属性で指定します。ここには、「このガジェットを実行するために、少なくともこのバージョン以上のWindows Sidebarで実行しなければならない」ということを指定することができます。本稿執筆時点でリリースされているWindows Sidebarのバージョンは1.0だけなので、現在では常に1.0を指定します。
<platform minPlatformVersion='1.0' />
以上が、マニフェストに必要な最低限の要素です。これでガジェットを実行する準備は整いました。次は「test.html」ファイルを編集し、ガジェットとして表示されるコードを記述してみましょう。