Next: Pointer Shape, Previous: Pop-Up Menus, Up: Frames [Contents][Index]
ダイアログボックスとはポップアップメニューの一種です。外見は多少異なり、常にフレーム中央に表示され、階層を1つしかもたず1つ以上のボタンがあります。ユーザーが“yes”、“no”、および別の少数の候補で応答ができる質問を尋ねるのが、ダイアログボックスの主な用途です。単一のボタンでは、ユーザーに重要な情報の確認を強いることもできます。関数y-or-n-p
およびyes-or-no-p
は、マウスのクリックにより呼び出されたコマンドから呼び出された際は、キーボードのかわりにダイアログボックスを使用します。
この関数は、ポップアップダイアログボックスを表示して、ユーザーが何を選択したかの指標をリターンする。引数contentsは、提供するための候補を指定する。これは、以下のフォーマットをもつ:
(title (string . value)…)
これは、x-popup-menu
にたいして単一paneを指定するリストのように見える。
リターン値は、選択された候補のvalueである。
x-popup-menu
の場合と同様、このリストの要素はコンスセル(string
. value)
のかわりに、単なる文字列かもしれない。これは、選択不可のボックスを作成する。
このリスト内にnil
がある場合、それは左手側と右手側のアイテムを分ける。つまり、nil
より前のアイテムは左、nil
より後のアイテムは右に表示される。リスト内にnil
を含めない場合は、およそ半数づつが両サイドに表示される。
ダイアログボックスは、常にフレームの中央に表示される。引数positionは、どのフレームかを指定する。可能な値はx-popup-menu
の場合と同様だが、正確な座標や個別のウィンドウは問題ではなく、フレームだけが問題となる。
headerが非nil
ならボックスのフレームタイトルは‘Information’、それ以外は‘Question’になる。前者はmessage-box
(see message-boxを参照)にたいして使用される(テキスト端末上ではボックスタイトルは表示されない)。
いくつかの構成では、Emacsは本当のダイアログボックスを表示できないので、かわりにフレーム中央のポップアップメニュー内に同じアイテムを表示する。
たとえばウィンドウマネージャーを使用して、有効な選択を行うことなくユーザーがダイアログボックスを取り除いた場合は、通常はquitしてx-popup-dialog
はリターンしない。