XUL との遭遇
元日は実家にいてサーバーの作業ができなかったので、暇つぶしに XUL の勉強をしました。XML を書くだけで手軽にユーザーインターフェースの構築ができるし、普通に必要そうなウィジェットは揃っているので、けっこういい感じです。
申し遅れましたが、この記事は Firefox の共通テーマにも投稿させていただいております。Firefox テーマの皆さん、初めまして。いつもは GentooLinux に関する blog を書いている歩行者と申します。XUL アプリケーションのプログラミングにも興味がありますので、ときどきお邪魔すると思います。以後、よろしくお願いいたします m(_ _)m
さて、XUL について一応説明しておきますと、Firefox をはじめとする Gecko アプリケーションのために Mozilla Foundation が開発した、XML ベースのユーザーインターフェース記述言語です。考え方は HTML に似ていますが、タグにはほとんど互換性はありません。HTML よりもリッチな UI を構築できるように、さまざまな機能が用意されています。以下に主なウィジェットをリストアップしておきます。
| タグ | 機能 | 
|---|---|
| label | 固定テキスト | 
| description | 固定テキスト | 
| textbox | 編集可能テキスト | 
| button | 各種プッシュボタン | 
| checkbox | チェックボックス | 
| radio | ラジオボタン | 
| listbox | リストボックス | 
| menulist | コンボボックス | 
| tree | ツリービュー | 
| menubar | メニューバー | 
| toolbar | ツールバー | 
| tabbox | タブコントロール | 
Firefox などは、XUL で記述された UI が DOM イベントの形でロジックを駆動することで全体が動作しています。今回は、その XUL の部分だけを利用して、基本的なウィジェットを並べた XUL ページを作ってみました。 Firefox をお使いなら、こちらで見れます。
ネイティブコードで記述された GUI ツールキットにもひけをとらない UI が、Web ページを書くようにすらすら書けてしまうのは驚きです。
このサンプルには入れられませんでしたが、Web ページを表示するためのブラウザーウェジェットやより高度なテキスト編集を行うエディターウィジェットなどがあるようです。CSS で表示スタイルをさまざまにコントロールできることを考えれば、XUL の標準機能だけでかなり見栄えの良い UI が構築できそうな気がします。
また、そのほかに興味深い機能としては、コマンド定義やブロードキャストの定義などとして、各コントロールのラベル設定や無効状態の制御などを自動化する機構が備わっている点です。普通の GUI ツールキットでは各メニューアイテムやツールバーボタンなどのステータス制御はかなり面倒な作業ですが、それらが XUL の記述だけで完結できるような感じです。たぶん(^^;
クロスプラットフォームへの対応の容易さ(というか、特別なことをしなければ嫌でもクロスプラットフォームになってしまう)なども考えると、GUI アプリケーションの RAD 環境として Firefox を利用するのは、なかなか興味深い選択だと思います。サーバーの構築が一段落したら、本格的に取り組んでみたい課題です。
詳しくはこちらの記事をどうぞ!



この記事にコメントする