ポップアップとメニュー
作成できるポップアップの種類には様々なものがあります。ポップアップとは、メニュー、もしくは、タイトルバーやボーダーなどのメインウィンドウの外郭を拡張する装飾のないフローティングウィンドウの事です。
ポップアップの種類
XUL では、ポップアップメニューや他の種類のポップアップウィジェットを作成するのに、要素に取り付けられる方法や開かれる方法によって異なる様々な種類の要素が利用できます。ここではそれぞれの種類の概要を紹介します。詳細はリンク先を参照して下さい。
このガイドでは、「ポップアップ」という用語は全ての種類のポップアップを指すのに対して、「メニュー」という用語はポップアップの特定の種類を指します。具体的には、下の一覧の初めの 2 種類がメニューです。
- メニュー
- メニューは、ユーザによって実行される一連のコマンドがあり、それぞれのコマンドに対してボタンを設置するスペースを使いたくない時に使用されます。メニューは普段は隠されており、選択されるとコマンドの一覧が格納されたポップアップが現れます。ユーザがコマンドを選択すると、メニューは再び見えなくなります。
- メニューは
menupopup
要素を使って作成します。menupopup
要素はアイテムを一覧で表示し、サブメニューを表示でき、アイテム間でのキーボードによるナビゲーションを可能にします。メニューにはメニューに関係する要素しか格納してはいけません。 - コンテキストメニュー
- コンテキストメニューは普通のメニューに似ていますが、ユーザがコンテキストメニューを開く時にクリックした対象に対して、格納されたコマンドが適用されるという点で異なります。大抵は、クリックされた要素に対して適用できないようなコマンドは隠されます。
- パネル
- パネルにはどんな内容でも格納する事ができます。パネルは既存の UI の上に一時的に何らかのコントロールを表示したい時に便利です。例えば、検索用のフィールドをポップアップで表示して、検索語句が入力されたらポップアップを消すといった事ができます。
- パネルは
panel
要素を使って作成します。 - ツールチップ
- マウスがある UI コントロールの上に置かれると、ツールチップはそのコントロールについて説明するヘルプが書かれた小さなボックスを表示します。マウスがそのコントロールから離れると、ツールチップは自動的に消えます。
- ツールチップは、要素に
tooltiptext
属性を設定するか、tooltip
要素を使う事によって作成できます。
ポップアップを取り扱う
以下の追加情報はメニューやポップアップの操作に関するものです。
- メニューやポップアップを開く
- ほとんどのメニューやポップアップは、要素に結び付けられていれば自動的に開かれます。スクリプトを使ってポップアップを開くには、
openPopup
メソッドかopenPopupAtScreen
を使います。ポップアップの開き方についてのより詳しい情報はポップアップを開くもしくはメニューを開くを参照して下さい。 - メニューやポップアップを閉じる
- ポップアップの閉じ方に関する情報はポップアップを閉じるもしくは メニューを閉じるを参照して下さい。
- ポップアップの配置方法
- ポップアップのスクリーン上の位置を決定する方法や、ポップアップの位置を他の要素に揃える方法は、ポップアップの配置を参照して下さい。
- ポップアップが開かれているかどうか確かめる
- ポップアップやメニューが開かれているかどうかを確認するには、ポップアップが開いているかどうか判別するを参照して下さい。
- ポップアップを移動する
- ポップアップは
moveTo
メソッドを使って移動する事ができます。ポップアップの移動を参照して下さい。 - ポップアップをリサイズする
sizeTo
メソッドを使うとポップアップの大きさを調整する事ができます。ポップアップのリサイズを参照して下さい。- メニューをボタンに取り付ける
- ボタンが押された時にメニューを表示させる方法を知りたければ、メニューボタンを参照して下さい。
- メニューのアイテムの機能
- メニュー上のアイテムの様々な機能を学ぶには、menuitem 要素の機能をご覧下さい。
- メニューのアイテムを変更する
- メニューに要素を追加、挿入、削除するにはメニューの変更をご覧下さい。
- ポップアップ開閉時のイベント
- ポップアップが開かれる時には popupshowing イベントと popupshown イベントが発生します。ポップアップが閉じられる時には popuphiding イベントと popuphidden イベントが発生します。これらのイベントに関する情報はポップアップイベントをご覧下さい。
- ポップアップ内部でのキーの扱い
- メニューやパネル内部でどのようにしてキーが扱われるかについての情報はポップアップ内部でのキーの扱いを参照してください。
- メニューに関するプラットフォーム固有の注意事項
- Macintosh で Application メニューを作成する方法など、特定のプラットフォームでメニューを扱うときの注意事項については、プラットフォームごとの特殊なメニューに関する考察を参照して下さい。
拡張機能でポップアップを使う
拡張機能では、メニューバーのメニューやコンテキストメニューにメニューアイテムを追加する事が出来ます。さらに、全く新しいメニューを追加する事も可能です。例えば、拡張機能専用のダイアログを開くための新しいコマンドをツールメニューに追加したいことがあるかもしれません。また、ブラウザのコンテキストメニューにアイテムを追加する拡張機能の作成もよく行われます。詳しくは拡張機能におけるメニューとポップアップの使用を参照して下さい。