Next: , Previous: , Up: Frames   [Contents][Index]


29.7 フレームの削除

生きたフレーム(live frame)とは削除されていないフレームのことです。フレームが削除される際には、たとえそれへの参照元がなくなるまでLispオブジェクトとして存在し続けるとしても端末ディスプレイからは削除されます。

Command: delete-frame &optional frame force

この関数はフレームframeを削除する。引数frameは生きたフレーム(以下参照)を指定しなければならず、デフォルトは選択されたフレーム。

この関数はまずframeのすべての子フレーム(Child Framesを参照)とフレームパラメーターdelete-before (Frame Interaction Parametersを参照)がframeを指定するすべてのフレームを削除する。祖先としてframeをもつフレームが他に存在しないことを保証するために、このような削除はすべて再帰的に行われる。その後にframeがツールチップを指定していなければ、実際にフレームをkillする前にフックdelete-frame-functionsを実行する(フックの各関数は単一の引数としてframeを受け取る)。delete-frameは実際にフレームをkillしてフレームリストからフレームを削除した後にafter-delete-frame-functionsを実行する。

フレームのミニバッファーが別のフレームの代替えミニバッファー(Minibuffers and Framesを参照)の役割をもつかぎりフレームを削除できないことに注意。他のフレームすべてが不可視なら通常はフレームは削除できないが、forceが非nilなら削除が可能になる。

Function: frame-live-p frame

この関数はフレームframeが削除されていなければ非nilをリターンする。リターンされ得る非nilの値はframepと同様。Framesを参照のこと。

いくつかのウィンドウマネージャーはウィンドウを削除するコマンドを提供します。これらはそのウィンドウを操作するプログラムに特別なメッセージを送ることにより機能します。Emacsがそれらメッセージのいずれかを受け取ったときはdelete-frameイベントを生成します。このイベントの通常の定義は関数delete-frameを呼び出すコマンドです。Misc Eventsを参照してください。

Command: delete-other-frames &optional frame

このコマンドはframeの端末上からframe以外のすべてのフレームを削除する。frameが別のフレームのミニバッファーを使用している場合には、そのミニバッファーフレームは処理せずに残る。引数frameは生きたフレームを指定しなければならず、デフォルトは選択されたフレーム。このコマンドは内部的には削除するすべてのフレームにたいして、forcenilを指定してdelete-frameを呼び出すことにより機能する。

この関数はframeの子フレームは削除しない(Child Framesを削除)。frameが子フレームならframeの兄弟だけを削除する。