Emacsバッファー内にボタンの配置や操作を行うコマンドや関数が存在します。
push-button
はユーザーが実際にボタンを押下(push)するために使用するコマンドであり、そのボタンのオーバーレイプロパティかテキストプロパティを使用することにより、そのボタンのRETとmouse-2にデフォルトでバインドされます。ボタン自身の外部で有用なforward-button
やbackward-button
のようなコマンドは、button-buffer-map
に格納されたキーマップ内で追加で利用可能です。ボタンを使用するモードはそのキーマップの親キーマップとしてbutton-buffer-map
の使用を望むかもしれません。かわりにbutton-mode
をオンに切り替えれば、ほぼ同様の効果を得ることができます。これはマイナーモードキーマップとしてbutton-buffer-map
をインストールするだけのマイナーモードです。
ボタンが非nil
のfollow-link
プロパティをもち、かつmouse-1-click-follows-link
がセットされている場合には、素早いmouse-1クリックによりpush-button
コマンドもアクティブになるでしょう。クリック可能なテキストの定義を参照してください。
位置posにあるボタンが指定するアクションを行う。posはバッファー位置、またはマウスイベントのいずれか。use-mouse-actionが非nil
、またはposがマウスイベントならaction
のかわりにそのボタンのmouse-action
プロパティの呼び出しを試みて、ボタンにmouse-action
プロパティがなければ通常のようにaction
を使用する。push-button
がマウスイベントの結果としてインタラクティブに呼び出されたときはそのマウスイベントの位置、それ以外ではポイントの位置がposのデフォルトになる。posにボタンがなければ何もせずにnil
をリターンして、それ以外ならt
をリターンする。
次のn番目、nが負なら前のn番目のボタンに移動する。nが0ならポイント位置にある任意のボタンの開始に移動する。wrapが非nil
ならバッファーの先頭または終端を超えてもう一方の端へ移動を継続する。display-messageが非nil
ならボタンのhelp-echo文字列が表示される。非nil
のskip
プロパティをもつボタンはすべてスキップされる。見つかったボタンをリターンするか、ボタンが見つからなければエラーをシグナルする。no-errorが非nil
なら、エラーをシグナルするかわりにnil
をリターンする。
前のn番目、nが負なら次のn番目のボタンに移動する。nが0ならポイント位置にある任意のボタンの開始に移動する。wrapが非nil
ならバッファーの先頭または終端を超えて、もう一方の端へ移動を継続する。display-messageが非nil
ならボタンのhelp-echo文字列が表示される。非nil
のskip
プロパティをもつボタンはすべてスキップされる。見つかったボタンをリターンするか、ボタンが見つからなければエラーをシグナルする。no-errorが非nil
なら、エラーをシグナルするかわりにnil
をリターンする。
カレントバッファー内の位置posの次(next-button
の場合)、または前(previous-button
の場合)のボタンをリターンする。count-currentが非nil
なら、次のボタンから検索を開始するかわりにposにある任意のボタンを考慮する。