ウィンドウのフィールド(完全な一覧については、window.h 内の struct window の定義を参照)には以下が含まれます:
frameこのウィンドウが配置されているフレームを、Lispオブジェクトとして。
miniこのウィンドウがミニバッファウィンドウ、すなわちミニバッファまたはエコーエリアを表示するウィンドウである場合に非ゼロとなります。
pseudo_window_p ¶このウィンドウが擬似ウィンドウである場合は0以外となります。擬似ウィンドウとは、メニューバーやツールバーを表示するためのウィンドウ(Emacsが独自のメニューバーやツールバーを表示しないツールキットを使用している場合)、あるいはタブバー、またはツールチップフレーム上にツールチップを表示するウィンドウのことです。一般に、擬似ウィンドウはLispコードからアクセスできません。
parentEmacs内部では、ウィンドウはツリー構造で配置されており、兄弟ウィンドウの各グループには、その領域にすべての兄弟ウィンドウを含む親ウィンドウが存在します。このフィールドは、そのツリーにおけるウィンドウの親をLispオブジェクトとして指します。ツリーのルートウィンドウおよびミニバッファウィンドウの場合、この値は常に
nil となります。
親ウィンドウはバッファを表示せず、子ウィンドウの形状を規定する以外、表示においてほとんど役割を果たしません。Emacs Lispプログラムは親ウィンドウを直接操作することはできず、実際にバッファを表示するツリーの葉ノードにあるウィンドウを操作します。
contentsリーフウィンドウやツールチップを表示するウィンドウの場合、これはそのウィンドウが表示しているバッファ(Lispオブジェクト)となります。内部(「親」)ウィンドウの場合は、その最初の子ウィンドウとなります。メニューやツールバーを表示する擬似ウィンドウの場合は、nilとなります。また、削除されたウィンドウの場合はnilとなります。
nextprevこのウィンドウの次および前の兄弟ウィンドウをLispオブジェクトとして表します。ウィンドウがグループ内で最右端または最下端にある場合、nextはnilとなり、最左端または最上端にある場合はprevがnilとなります。兄弟ウィンドウが左右か上下かは、当該兄弟ウィンドウの親のhorizontalフィールドによって決定されます。この値が0以外の場合、兄弟ウィンドウは水平方向に配置されます。
特殊なケースとして、フレームのルートウィンドウの next
は、そのフレームがミニバッファ専用またはミニバッファなしのフレームでない限り、当該フレームのミニバッファウィンドウを指します。このようなフレームでは、ミニバッファウィンドウの
prev がそのフレームのルートウィンドウを指します。それ以外の場合は、ルートウィンドウの
next および(存在する場合の)ミニバッファウィンドウの prev フィールドは nil となります。
left_colウィンドウのネイティブフレームの最左列(列0)を基準とした、列単位で計測したウィンドウの左端。
top_lineウィンドウの元のフレームの最上行(行0)を基準とした、行単位で計測したウィンドウの上端。
pixel_leftpixel_topこのウィンドウの左端および上端のエッジを、ウィンドウのネイティブフレームの左上隅 (0, 0) を基準としてピクセル単位で測定したもの。
total_colstotal_linesウィンドウの全幅および全高(それぞれ列数と行数で表記)。これらの値には、スクロールバーやフリンジ、区切り線、および/またはウィンドウ右側の区切り線(ある場合)が含まれます。
pixel_width;pixel_height;ピクセル単位で計測したウィンドウの全幅と全高。
startウィンドウに表示される最初の文字(論理順、双方向表示を参照)に対応するバッファ内の位置を指し示すマーカー。
pointm ¶このウィンドウが選択されているときの現在のバッファにおけるポイントの値で、選択されていないときは前回の値を保持します。
old_pointm前回の再表示時の pointm の値。
force_startこのフラグが nil 以外の場合、ウィンドウが Lisp
プログラムによって明示的にスクロールされ、再表示時に反映されるようウィンドウの start
の値が設定されたことを示します。これは、point が画面外にある場合の次回の再表示の動作に影響します。具体的には、point
周辺のテキストを表示するためにウィンドウをスクロールするのではなく、point を画面内の位置に移動させます。
optional_new_startこれは force_start
と同様ですが、次の再表示でこれが反映されるのは、ポイントが表示されたままの場合に限られます。
start_at_line_begNon-nilは、startが選択された時点での値が行頭であったことを意味します。
use_timeウィンドウが選択されたのはこれが最後です。関数 get-lru-window
はこのフィールドを使用します。
sequence_numberこのウィンドウが作成された際に割り当てられた一意の番号。
last_modifiedこのウィンドウで最後に再表示が完了した時点における、ウィンドウバッファのmodiffフィールド。
last_overlay_modifiedこのウィンドウで最後に再表示が完了した時点における、ウィンドウバッファのoverlay_modiffフィールド。
last_pointこのウィンドウで最後に再表示が完了した時点における、バッファのpointの値。
last_had_star0以外の値は、ウィンドウが最後に更新された際にバッファが変更されたことを意味します。
vertical_scroll_bar_typehorizontal_scroll_bar_typeこのウィンドウの垂直および水平スクロールバーの種類。
scroll_bar_widthscroll_bar_heightこのウィンドウの垂直スクロールバーの幅と水平スクロールバーの高さ(ピクセル単位)。
left_margin_colsright_margin_colsこのウィンドウの左右の余白の幅。値がゼロの場合は余白がないことを意味します。
left_fringe_widthright_fringe_widthこのウィンドウにおける左右のフリンジのピクセル幅。−1 の値は、フレームの値を使用することを意味します。
fringes_outside_margins0以外の値は表示領域外のフリンジを意味し、それ以外の値は領域とテキストの間に位置します。
window_end_posこれは、zからウィンドウの現在のマトリクスにおける最後のグリフのバッファ位置を引いた値として計算されます。この値は、window_end_validが0でない場合にのみ有効です。
window_end_byteposwindow_end_pos に対応するバイト位置。
window_end_vposwindow_end_pos を含む行のウィンドウ相対的な垂直位置。
window_end_validwindow_end_pos と window_end_vpos が真に有効である場合、このフィールドには 0
以外の値が設定されます。非自明な再表示がプリエンプトされた場合は 0 となります。これは、その場合 window_end_pos の計算対象となった表示が画面に出力されなかったためです。
cursorこのウィンドウ内でカーソルがどこにあるかを記述する構造体。
last_cursor_vpos最後に完了した再表示時点での、カーソルを示す線のウィンドウ相対的な垂直位置。
phys_cursorこのウィンドウのカーソルが物理的にどこにあるかを示す構造。
phys_cursor_typephys_cursor_heightphys_cursor_widthこのウィンドウに最後に表示されたカーソルの種類、高さ、および幅。
phys_cursor_on_pカーソルが物理的に位置している場合、このフィールドは0以外になります。
cursor_off_p0以外は、このウィンドウ内のカーソルが論理的にオフであることを意味します。これはカーソルの点滅に使用されます。
last_cursor_off_pこのフィールドには、前回の再表示時点における cursor_off_p の値が格納されています。
must_be_updated_pこのウィンドウを更新する必要がある場合の再表示時に、これが1に設定されます。
hscrollこれは、ウィンドウ内の表示が水平方向に左へスクロールした列数です。通常、この値は0になります。現在の行のみが水平スクロールされている場合、この値は現在の行がどの程度スクロールされているかを示します。
min_hscrollset-window-hscroll でユーザーが設定した hscroll の最小値(水平スクロール
を参照)。現在の行のみが水平スクロールされる場合、これは現在の行以外の行の水平スクロールを表します。
vscroll垂直スクロール量(ピクセル単位)。通常は0です。
dedicatedこのウィンドウがバッファ専用である場合は Non-nil。
combination_limitこのウィンドウの組み合わせ制限は、親ウィンドウに対してのみ有効です。これが t
の場合、このウィンドウを削除し、その子ウィンドウをこのウィンドウの他の兄弟ウィンドウと再結合することは許可されません。
window_parametersこのウィンドウのパラメータ一覧。
display_tableウィンドウの表示テーブル、または指定されていない場合は nil。
update_mode_line0以外は、このウィンドウのモードラインを更新する必要があることを意味します。
mode_line_heightheader_line_heightモードラインおよびヘッダーラインの高さ(ピクセル単位)。不明な場合は −1。
base_line_numberバッファ内のある位置の行番号、または0。これはモードライン上のポイントの行番号を表示する際に使用されます。
base_line_posバッファ内で行番号が既知である位置。0 の場合は既知でないことを示す。−1 の場合は、ウィンドウがそのバッファを表示している限り、行番号を表示しない。
column_number_displayedこのウィンドウのモードラインに現在表示されている列番号。列番号が表示されていない場合は −1。
current_matrixdesired_matrixこのウィンドウの現在の表示および表示予定を記述するグリフ行列。