Next: , Previous: , Up: Input Events   [Contents][Index]


20.7.10 Miscellaneous System Events

他にもシステム内での出来事を表現するイベント型が少数あります。

(delete-frame (frame))

このイベントの種類は、ユーザーがウィンドウマネージャーに特定のウィンドウを削除するコマンドを与えたことを示し、Emacsのフレームにたいして発生する。

フレーム削除(delete-frame)イベントの標準的な定義は、frameを削除する。

(iconify-frame (frame))

このイベントの種類は、ウィンドウマネージャーを使用してユーザーがframeをアイコン化したことを示す。標準的な定義はignoreである。これは、そのフレームがすでにアイコン化されているので、Emacsが行う必要のことは何もないからである。このイベント型の目的は、望むならこのようなイベントの追跡を可能にしておくためである。

(make-frame-visible (frame))

このイベントの種類は、ウィンドウマネージャーを使用してユーザーがframeを非アイコン化したことを示す。標準的な定義はignoreである。これは、そのフレームがすでに可視化されているので、Emacsが行う必要のことは何もないからである。

(wheel-up position)
(wheel-down position)

この種類のイベントは、マウスホイールを移動したことにより発生する。position要素は、そのイベント発生時のマウスカーソル位置を指定するマウス位置リスト(Click Eventsを参照)である。

この種類のイベントは、ある種のシステムでのみ発生する。いくつかのシステムでは、かわりにmouse-4mouse-5が使用される。可搬性のあるコードとするためには、マウスホイールにたいしてどのイベント型が期待されるかを決定するためにmwheel.el内で定義されている変数mouse-wheel-up-eventおよびmouse-wheel-down-eventを使用する。

(drag-n-drop position files)

この種類のイベントは、Emacs外部アプリケーション内でファイルグループが選択され、それがEmacsフレーム内にドラッグアンドドロップされたときに発生する。

要素positionは、そのイベント位置を記述しマウスクリックイベントで使用されるフォーマット(Click Eventsを参照)と同じである。要素filesはドラッグアンドドロップされたファイル名のリストである。通常は、それらのファイルをvisitすることにより、このイベントは処理される。

この種類のイベントは、現在のところある種のシステムでのみ生成される。

help-echo

この種類のイベントは、テキストプロパティhelp-echoをもつバッファーテキスト部分上にマウスポインターが移動したときに生成される。生成されるイベントは以下の形式をもつ:

(help-echo frame help window object pos)

イベントパラメーターの正確な意味と、ヘルプテキストを表示するためにこれらのパラメーターを使用する方法は、Text help-echoで説明されているか

sigusr1
sigusr2

これらのイベントは、EmacsプロセスがシグナルSIGUSR1およびSIGUSR2を受け取ったときに生成される。シグナルは追加情報を運搬しないので、追加データは含まれない。これらのシグナルはデバッグに有用である(Error Debuggingを参照)。

ユーザーシグナルをcatchするためには、special-event-map(Active Keymapsを参照)内で対応するイベントにバインドする。そのコマンドは引数なしで呼び出され、last-input-event内の特定のシグナルイベントが利用できる。たとえば:

(defun sigusr-handler ()
  (interactive)
  (message "Caught signal %S" last-input-event))

(define-key special-event-map [sigusr1] 'sigusr-handler)

シグナルハンドラーをテストするために、自身でEmacsにシグナルを送信できる:

(signal-process (emacs-pid) 'sigusr1)
language-change

この種類のイベントは、MS-Windows上で入力言語が変更されたときに生成される。これは通常、キーボードキーが異なる言語の文字でEmacsに送られることを意味する。生成されるイベントは、以下の形式をもつ:

(language-change frame codepage language-id)

ここでframeは言語が変更されたときカレントだったフレームであり、codepageは新たなコードページ番号(codepage number)、language-idは新たな入力言語の数値IDである。codepageに対応するコーディングシステム(Coding Systemsを参照)は、cpcodepageまたはwindows-codepageである。language-idを文字列に変更する(たとえばset-language-environmentのようなさまざまな言語依存機能にたいしこれを使用する)には、以下のようにw32-get-locale-info関数を使用する:

;; 英語にたいする"ENU"のような言語の省略形を取得する
(w32-get-locale-info language-id)
;; "English (United States)"のような
;; その言語の完全な英語名を取得する
(w32-get-locale-info language-id 4097)
;; その言語の完全なローカライズ名を取得する
(w32-get-locale-info language-id t)

キーシーケンスの途中、つまりプレフィクスキーの後にこれらのイベントの1つが到着した場合、複数イベントキー内ではなくその前または後にそのイベントが到着するように、Emacsはそのイベントを記録する。