グラフィカルディスプレイ上のフレームは、可視、不可視、またはアイコン化の状態になります。可視状態であれば、その内容は通常の方法で表示されます。アイコン化状態であれば、内容は表示されませんが、フレームを再び表示させるための小さなアイコンがどこかに配置されます(一部のウィンドウマネージャでは、この状態をアイコン化ではなく最小化と呼びますが、Emacsの視点からは両者は同じものです)。不可視状態であれば、フレームは全く表示されません。
テキスト端末では、フレームが表示されているか、あるいは非表示であるかのいずれかとなります。端末の最上部フレーム(Framesを参照)は、非表示になることはありません。
グラフィカルディスプレイにおいて、可視性の概念は(非)マップ済みフレームの概念と密接に関連している。フレーム(より正確には、そのウィンドウシステム上のウィンドウ)は、初めて表示されたとき、および可視性の状態をiconifiedまたはinvisibleからvisibleに変更するたびにマップ済みとなり、またそうなる。逆に、フレームは状態をvisibleからiconifiedまたはinvisibleに変更するたびに非マップ済みとなり、またそうなる。
本節で説明するすべての関数において、オプション引数 frame にはライブフレームを指定する必要があり、デフォルトでは選択済みのフレームが使用されます。
この関数は、フレーム frame の表示状態を返します。frame が表示されている場合は t、非表示の場合は
nil、アイコン化されている場合は icon
となります。
なお、この関数(および visibility フレームパラメータ、フレーム相互作用パラメータ
を参照)によって報告されるフレームの可視状態は、必ずしもそのフレームが実際にディスプレイ上に表示されていることを意味するわけではない点に注意してください。このようなフレームは、同一のグラフィカル端末上の他のウィンドウマネージャウィンドウによって、部分的または完全に遮蔽されることがあります。フレームが完全に隠れるかどうかは、遮蔽しているウィンドウの透明度に依存する場合があります。また、フレームが現在のものとは異なる仮想デスクトップ上に存在し、そのデスクトップを現在のものにした場合にのみ表示されることもあります。子フレームに関しては、一つの顕著な制限があります(子フレーム
を参照)。子フレームが表示されるのは、この関数が、フレーム自身およびそのルートフレームを含むすべての祖先フレームに対して true
を返す場合に限られます。
テキスト端末においては、その端末の最上位フレームとその子フレームのみが実際に表示されます。その他のルートフレームおよびその子フレームは、本関数によって可視と判定されていても表示されません。
この関数はフレーム frame をアイコン化します。frame を省略すると、選択中のフレームがアイコン化されます。また、この関数は frame の子フレーム(子フレーム を参照)およびその子孫を非表示にします。frame 自体が子フレームである場合、その動作は変数 iconify-child-frame の値によって決まります。frame がテキスト端末の最上位フレーム(フレーム を参照)である場合、この関数は効果を持ちません。
この関数はフレーム frame を表示します。frame
を省略すると、選択中のフレームが表示されます。これによりフレームが上昇することはありませんが、必要に応じて raise-frame で上昇させることも可能です(フレームの上昇、下降、および再スタック を参照してください)。
フレームを可視状態にすると、祖先が可視状態にあるそのすべての子フレームも再び表示されるようになります(子フレームを参照)。
この関数は、フレーム frame を非表示にします。frame を省略すると、選択中のフレームが非表示になります。通常、これにより frame のすべての子フレーム(およびその子孫)も非表示になります(子フレーム を参照)。
Unless force is non-nil,
this function refuses to make frame invisible if all
other frames are invisible. On a text terminal this will make frame invisible if and only if it is a child frame (see Child Frames). In this case, if
frame is selected, it will select the first visible
ancestor of frame instead. In addition, it will
remove all child frames with frame as their ancestor
from display.
フレームの可視状態は、フレームパラメータとしても利用可能です。これにより、状態の読み取りや変更が行えます。フレーム操作パラメータを参照してください。また、ユーザーはウィンドウマネージャを用いてフレームをアイコン化・解除することもできます。これはEmacsが制御できるレベルより下位で発生しますが、Emacsはこうした変更を追跡するために利用できるイベントを提供しています。その他のシステムイベントを参照してください。
この関数は、frame が現在ダブルバッファリングでレンダリングされている場合に non-nil を返します。frame
のデフォルト値は選択中のフレームです。