Next: , Up: Defining Menus   [Contents][Index]


21.17.1.1 Simple Menu Items

メニューアイテムを定義する単純(かつ初歩的)な方法は、何らかのイベント型(何のイベント型かは問題にならない)を以下のようにバインドすることです:

(item-string . real-binding)

CARitem-stringは、メニュー内で表示される文字列です。これは短いほうがよく、1から3の単語が望ましいでしょう。この文字列は、対応するコマンドの動作を説明します。すべてのグラフィカルツールキットが非ASCIIテキストを表示できる訳ではないことに注意してください(キーボードメニューとGTK+ツールキットの大部分では機能するだろう)。

以下のように、ヘルプ文字列と呼ばれる2つ目の文字列を与えることもできます:

(item-string help . real-binding)

helpは、マウスがそのアイテム上にあるときに、help-echoテキストプロパティ(Help displayを参照)と同じ方法で表示される“help-echo”文字列を指定します。

define-keyに関する限り、item-stringhelp-stringは、そのイベントのバインディングの一部です。しかし、lookup-keyは単にreal-bindingだけをリターンし、そのキーの実行にはreal-bindingだけが使用されます。

real-bindingnilの場合、メニューにitem-stringは表示されまづが、選択できなくなります。

real-bindingがシンボルで、menu-enableプロパティが非nilの場合、そのプロパティはメニューアイテムが有効か無効かを制御する式です。メニュー表示にキーマップが使用されるたびに、Emacsはその式を評価して、式の値が非nilの場合だけ、そのメニューのメニューアイテムを有効にします。メニューアイテム無効なとき、そのアイテムは“fuzzy”形式で表示され、選択できなくなります。

メニューバーはメニューを調べる際に、どのアイテムが有効なのか再計算しません。これは、Xツールキットが事前にメニュー全体を要求するからです。メニューバーの再計算を強制するには、force-mode-line-updateを呼び出してください(Mode Line Formatを参照)。