Next: , Previous: , Up: Mac OS / GNUstep   [Contents][Index]


F.3 Mac OSおよびGNUstepでのウィンドウシステムイベント

Nextstepアプリケーションは、Xでは同等なものがない、特別なイベントを受け取ります。これらは、対応するキーストロークのシーケンスとしてではなく、特別に定義された“キー”として送られます。Emacsでは、これらの“キー”イベントを、通常のキーストロークのように、関数にバインドできます。以下はこのようなイベントのリストです。

ns-open-file

このイベントは、他のNextstepアプリケーションがEmacsにファイルを開くよう要求したときに発生します。これの典型的な理由としては、ユーザーがFinderアプリケーションでファイルをダブルクリックしたときなどです。デフォルトでは、Emacsはこのイベントにたいして、新しいフレームを開いて、そのフレームでファイルをvisitして応答します(ns-find-file)。例外として、選択されたバッファーが*scratch*バッファーの場合、Emacsは選択されたフレームでファイルをvisitします。

Emacsがns-open-fileイベントにたいしてどのように応答するかは、ns-pop-up-framesを変更することにより、変えることができます。デフォルト値は‘fresh’で、これは上で説明したとおりの動作を行ないます。値tは、ファイルを常に新しいフレームでvisitすることを意味します。値nilは、ファイルを常に既存のフレームでvisitすることを意味します。

ns-open-temp-file

このイベントは、他のアプリケーションがEmacsに一時ファイルを開くように要求したとき発生します。デフォルトでは、単にns-open-fileイベントを生成することにより処理され、結果は上で説明したとおりになります。

ns-open-file-line

ProjectBuilderやgdbのようないくつかのアプリケーションは、特定のファイルだけではなく、そのファイルの特定の行、または一連の行を要求します。Emacsはそのファイルをvisitして要求された行をハイライトすることにより、これを処理します(ns-open-file-select-line)。

ns-drag-file

このイベントは、ユーザーが他のアプリケーションから、Emacsフレームにファイルをドラッグしたとき発生します。デフォルトの動作は、カレントバッファーにドラッグされたファイルのすべての内容を挿入します(ns-insert-files)。ドラッグされたファイルのリストは、変数ns-input-fileに格納されます。

ns-drag-color

このイベントは、ユーザーがcolor well(または他のソース)からカラーをドラッグしたとき発生します。デフォルトの動作では、その領域のフォアグラウンドカラーを、ドラッグされたカラーに変更します(ns-set-foreground-at-mouse)。このイベントがShift修飾キーとともに発行された場合、Emacsはかわりにバックグラウンドカラーを変更します(ns-set-background-at-mouse)。ドラッグされたカラーの名前は、変数ns-input-colorに格納されます。

ns-change-font

このイベントは、ユーザーがNextstep font panel(これはCmd-tで開くことができます)でフォントを選択したとき発生します。デフォルトの動作は、選択されたフレームのフォントを変更します(ns-respond-to-changefont)。選択されたフォントの名前とサイズは、変数ns-input-fontns-input-fontsizeに格納されます。

ns-power-off

このイベントは、ユーザーがEmacsを実行中にログアウトしたとき、またはアプリケーションメニューから‘Quit Emacs’を選択したとき発生します。デフォルトの動作は、ファイルをvisitしているすべてのバッファーを保存します。

Emacsはユーザーに、‘ns-service-’で始まりサービス名で終わるコマンドを通じて、Nextstepサービスを使用することも可能にします。M-x ns-service-TABとタイプして、これらのコマンドをリストを見ることができます。これらの関数は、マークされたテキストを処理(結果でそれを置き換える)したり、文字列を引数として結果を文字列で返します。Lisp関数ns-perform-serviceを使用して、任意の文字列を任意のサービスに渡して、結果を受けとることもできます。新たに利用可能になったサービスにアクセスするには、Emacsの再起動が必要なことに注意してください。