XUL improvements in Firefox 3
Firefox 3 では、既存の要素の改善と共に、多くの新しい XUL 要素が提供されます。これらは、他の場所で詳細が文書化されていますが、この記事では、これらの改善の便利な一覧と詳細なドキュメントへのリンクを提供します。
新しい要素
- ある範囲の中で値を選択するのに使われるスライディングスケールを作成するために
<scale>
要素が追加されました。例えば、音量コントロールには特にこの要素が使われるでしょう。 - テキストボックスの
type
属性の新しい値number
は数値のみが入力されるテキストボックスを作ります。更に、値を段階的に増減させるための矢印ボタンが片側に表示されます。 数値入力用テキストボックスについての更なる情報 (バグ 345510) - XBL バインディングを使ったメニューのようなウィジットを作るときに便利な
<dropmarker>
要素が追加されました。 (バグ 348614) - XBL バインディングを使ったウィジットを作るときに使うことのできる
<spinbuttons>
要素が追加されました。 (バグ 155053) - 日付と時刻を入力するために
<datepicker>
と<timepicker>
の 2 つのウィジットが使うことができます。type
属性を設定すると、テキストボックスやカレンダのような日付ピッカの多くのスタイルが利用可能になります。日付ピッカについての更なる情報 Datepicker リファレンス Timepicker リファレンス - 新しい
<panel>
要素は、メニューではないポップアップのために設計されたもので、あらゆる種類のコンテンツをサポートできます。メニューには <menupopup> 要素を使ってください。メニューはキーボードナビゲーションを提供し、サブメニューの開閉をサポートしています。 - ガイド は、新機能として利用可能になったメニューとポップアップを説明するために作成されています。
ツリーの改善点
- ツリーは水平方向のスクロールをサポートするようになりました。水平方向のスクロールバーはコラムが利用可能な幅に収まらないときに表示されます。これは、コラムが利用可能な空間よりも多い幅を指定している場合におきます。 (バグ 212789)
- 新しい選択スタイルでは列全体ではなくセルを個々に選択できるようになります。これはツリーの
seltype
属性をcell
にすることで利用可能になります。(バグ 296040) - ツリーは個々のセルの編集をサポートするようになります。編集可能なセルをダブルクリックするとユーザがセルの内容を編集できるテキスト入力欄を表示します。詳細 (バグ 201499)
- <treecol> 要素がオーバーフロー属性をサポートしました。この属性を true にすると、カラム内のセルのテキストがセル内に収まりきらない場合、隣接する空白のセルに広がります。
メニューの改善点
<menu>
と <menulist>
要素でいくつかの改良が行われました (バグ 333023):
image
属性が画像の設定に一貫して使われます。<menulist>
要素はアイテムが選択されるとselect
イベントを発生させます。inputField
とeditable
プロパティが<menulist>
要素に追加されました。<menu>
と<menuitem>
、<menuseparator>
要素は<menulist>
要素内でそのアイテムが選択されているかどうかを取得するための読み込み専用のselected
プロパティをもつようになりました。<menu>
と<menuitem>
、<menuseparator>
要素はその要素を囲んでいる<menulist>
を返す、読み込み専用のcontrol
プロパティをもつようになりました。<menu>
と<menuitem>
、<menuseparator>
要素は対応する属性を設定するaccessKey
とdisabled
、crop
、image
、label
プロパティをサポートするようになりました。<menu>
要素に、<menuitem>
属性を追加、挿入、削除するメソッドが実装されました (バグ 372552)- 編集可能(editable="true")な <menulist> 要素のテキスト入力欄に対する内部的な nsIEditor を取得するための
edtior
プロパティのサポート。(バグ 312867) - 半透明をサポートしているプラットフォームではメニューは半透明になるかもしれません。 (バグ 70798)
textbox の改善点
- textbox の
spellcheck
属性をtrue
に設定するとテキストボックスのインラインスペルチェックが有効になります。(バグ 346787) <textbox>
要素は値を初期値にリセットするreset()
メソッドを持つようになりました。textbox のdefaultValue
プロパティを使って初期値の変更や取得を行うことができます。(バグ 312867)- テキスト入力欄の内部 nsIEditor を得るための
editor
プロパティのサポート。 (バグ 312867) - textbox は、テキストを貼り付ける際の改行の扱い方を指定するための
newlines
属性をサポートするようになりました。(バグ 253481) 取りうる値は以下の通りです:pasteintact
- すべてそのままの状態で貼り付けるpastetofirst
- (初期値) 最初の改行までを貼り付けるreplacewithspaces
- 改行を空白に置き換えるreplacewithcommas
- 改行をコンマで置き換えるstrip
- すべての改行を取り除く。stripsurroundingwhitespace
- すべての改行と先頭および末尾の空白を取り除く。
他の要素の改善点
<button>
要素のtype
属性をrepeat
とすることで、ボタンを押下している間 command イベントを繰り返し発生するようなボタンを作ることができます。(バグ 331055)<dialog>
要素のbuttondisabledaccept
属性を使うことによって、 accept (OK) ボタンを初期状態で無効にすることができるようになりました。 (バグ 247849)<titlebar>
要素が、子要素にイベントが渡るようにするallowevents
属性をサポートしました。(バグ 361425)<splitter>
要素が、collapse
属性の新しい値both
をサポートしました。これは、スプリッタをドラッグしたときに、両側の要素を伸縮できるようにするものです。要素の伸縮前または伸縮後にはsubstate
属性が設定されます。<richlistbox>
要素が複数選択に対応しました。seltype
属性をmultiple
にすることで複数選択が可能になります。<radio>
要素が、そのラジオボタンが属する<radiogroup>
要素の id を設定できるgroup
属性をサポートしました。これは、ラジオボタンを<radiogroup>
内に記述した場合とは異なる配置にしたい場合に利用できます。- メニューとパネル、ツールチップが、
openPopup()
とopenPopupAtScreen()
という 2 つの新しいメソッドをサポートしました。これらのメソッドは、使い方が分かりづらかったshowPopup
の代わりに使います。 - 非ラテン語キーボードレイアウト環境において、
<key>
要素によるキー操作の捕捉が改善されました。Geckoのkeypressイベントを参照してください。 - Mac OS X において、ルート要素(
<window>
、<dialog>
、<prefwindow>
および<wizard>
)の activetitlebarcolor 属性および inactivetitlebarcolor 属性によって、アクティブ時と非アクティブ時それぞれについてウィンドウのタイトルバーの色を指定できるようになりました。