ウィンドウのフィールドには以下が含まれます(完全なリストはwindow.hのstruct windowを参照):
frameそのウィンドウがあるフレーム(Lispオブジェクト)。
miniそのウィンドウがミニバッファーウィンドウ、ミニバッファーかエコーエリアを表示しているウィンドウなら非0。
pseudo_window_p ¶そのウィンドウが疑似ウィンドウ(pseudo window)なら非0。疑似ウィンドウとはメニューバーかツールバーの表示に使用されているウィンドウ(自身のメニューバーやツールバーを表示しないツールキットをEmacsが使用している場合)、タブバー、またはツールチップフレーム上でツールチップを表示しているウィンドウのいずれか。一般的には疑似ウィンドウはLispコードからアクセスできない。
parentEmacsは内部的にウィンドウをツリーにアレンジする。ウィンドウの兄弟グループは、そのエリアがすべての兄弟を含むような親ウィンドウをもつ。このフィールドはツリー内でのウィンドウの親をLispオブジェクトとして指す。これはツリーのルートウィンドウとミニバッファーウィンドウでは常にnil。
親ウィンドウはバッファーを表示せず、子ウィンドウ形成を除いて表示では少ししか役割を果たさない。Emacs Lispプログラムは親ウィンドウを直接操作できない。Emacs Lispプログラムでは実際にバッファーを表示するツリーの子ノードのウィンドウにたいして操作を行う。
contentsリーフウィンドウ(leaf
window)およびツールチップを表示中のウィンドウでは、そのウィンドウが表示している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の値がセットされる。これはポイントがスクリーン外の場合の次回再表示に影響を与える。影響とはポイント周辺のテキストを表示するためにウィンドウをスクロールするかわりに、スクリーン上にある位置にポイントを移動するというものである。
optional_new_startこれはforce_startと同様だが、次回表示ではポイントが可視の場合のみしたがう。
start_at_line_beg非nilはstartのカレント値がウィンドウ選択時に先頭行だったことを意味する。
use_timeこれはウィンドウが最後に選択された時刻。関数get-lru-windowはこの値を使用する。
sequence_numberそのウィンドウ作成時に割り当てられた一意な番号。
last_modified前回のそのウィンドウの再表示完了時のウィンドウのバッファーのmodiffフィールド。
last_overlay_modified前回のウィンドウの再表示完了時のウィンドウのバッファーのoverlay_modiffフィールド。
last_point前回のウィンドウの再表示完了時のウィンドウのバッファーのポイント値。
last_had_star非0値はウィンドウが最後に更新されたとき、そのウィンドウのバッファーが変更されたことを意味する。
vertical_scroll_bar_typehorizontal_scroll_bar_typeそのウィンドウの垂直スクロールバーおよび水平スクロールバーのタイプ。
scroll_bar_widthscroll_bar_heightそのウィンドウの垂直スクロールバーの幅および水平スクロールバーの高さ(ピクセル単位)。
left_margin_colsright_margin_colsそのウィンドウの左マージンと右マージンの幅。値0はマージンがないことを意味する。
left_fringe_widthright_fringe_widthそのウィンドウの左フリンジと右フリンジのピクセル幅。値−1はフレームの値の使用を意味する。
fringes_outside_margins非0値はディスプレイマージン外側のフリンジ、それ以外ならフリンジはマージンとテキストの間にあることを意味する。
window_end_posこれはzから、そのウィンドウのカレントマトリクス内の最後のグリフのバッファー位置を減じて算出される。この値はwindow_end_validが非0のときだけ有効である。
window_end_byteposwindow_end_posに対応するバイト位置。
window_end_vposwindow_end_posを含む行のウィンドウに相対的な垂直位置。
window_end_validThis field is set to a non-zero value if window_end_pos and
window_end_vpos are truly valid. This is zero if nontrivial
redisplay is preempted, since in that case the display that
window_end_pos was computed for did not get onto the screen.
cursorそのウィンドウ内でカーソルがどこにあるかを記述する構造体。
last_cursor_vpos最後の再表示完了時にカーソルを表示していた行の、ウィンドウに相対的な垂直位置。
phys_cursorそのウィンドウのカーソルが物理的にどこにあるかを記述する構造体。
phys_cursor_typephys_cursor_heightphys_cursor_widthそのウィンドウの最後の表示でのカーソルのタイプ、高さ、幅。
phys_cursor_on_pこのフィールドはカーソルが物理的にオンなら非0。
cursor_off_p非0はそのウィンドウのカーソルが論理的にオフであることを意味する。これはカーソルの点滅に使用される。
last_cursor_off_pこのフィールドは最後の再表示時のcursor_off_pの値を含む。
must_be_updated_pこれはウィンドウを更新しなければならないとき、再表示の間は1にセットされる。
hscrollこれはウィンドウ内の表示が左へ水平スクロールされている列数。通常は0。カレント行だけが水平スクロールされている際には、カレント行がどれだけ左へ水平スクロールされているかを示す。
min_hscrollset-window-hscrollを通じてユーザーがセットするhscrollの最小値(水平スクロールを参照)。カレント行だけが水平スクロールされている際には、カレント行以外の行がどれだけ左へ水平スクロールされているかを示す。
vscrollピクセル単位での垂直スクロール量。これは通常は0。
dedicatedそのウィンドウがそれのバッファー専用(dedicated)なら非nil。
combination_limitこのウィンドウの組み合わせ限界は親ウィンドウにとってのみ意味がある。これがtならそのウィンドウの削除は許されず、そのウィンドウの他の兄弟と子ウィンドウを再組み合わせする。
window_parametersそのウィンドウのパラメーターのalist。
display_tableそのウィンドウのディスプレイテーブル、何も指定されていなければnil。
update_mode_line非0はウィンドウのモードラインの更新が必要なことを意味する。
mode_line_heightheader_line_heightモードラインおよびヘッダーラインのピクセル高さ、不明なら−1。
base_line_numberそのバッファーの特定の位置の行番号か0。これはモードラインでポイントの行番号を表示するために使用される。
base_line_pos行番号が既知であるバッファー位置、不明なら0。これが−1なら、そのウィンドウがバッファーを表示するかぎり行番号は表示されない。
column_number_displayedそのウィンドウのモードラインに表示されているカレント列番号、列番号が表示されていなければ−1。
current_matrixdesired_matrixそのウィンドウのカレント、および望まれる表示を記述するグリフ。