Next: Process Internals, Previous: Buffer Internals, Up: Object Internals [Contents][Index]
ウィンドウのフィールドには以下が含まれます(完全なリストはwindow.hのstruct windowを参照):
frameそのウィンドウがあるフレーム。
mini_pそのウィンドウがミニバッファーウィンドウなら非nil。
parentEmacsは内部的にウィンドウをツリーにアレンジする。ウィンドウの兄弟グループは、そのエリアがすべての兄弟を含むような親ウィンドウをもつ。このフィールドはウィンドウの親を指す。
親ウィンドウはバッファーを表示せず子ウィンドウ形成を除いて表示では少ししか役割を果たさない。Emacs Lispプログラムからは通常は親ウィンドウへのアクセスがない。Emacs Lispプログラムでは実際にバッファーを表示するツリーの子ノードのウィンドウにたいして操作を行う。
hchildvchildこれらのフィールドはウィンドウの左端の子と上端の子を含む。子ウィンドウによりウィンドウが分割される場合にはhchild、垂直に分割される場合にはvchildが使用される。生きたウィンドウではhchild、vchild、bufferのいずれか1つだけが非nilになる。
nextprevそのウィンドウの次の兄弟と前の兄弟。自身のグループ内でそのウィンドウが右端か下端ならnextはnil。自身のグループ内でそのウィンドウが左端か上端ならprevはnil。
left_colそのウィンドウの左端をフレームの最左列(列0)から相対的に数えた列数。
top_lineそのウィンドウの上端をフレームの最上行(行0)から相対的に数えた行数。
total_colstotal_lines列数と行数で数えたウィンドウの幅と高さ。幅にはスクロールバーとフリンジおよび/または(もしあれば)ウィンドウ右側のセパレーターラインが含まれる。
bufferそのウィンドウが表示しているバッファー。
startそのウィンドウ内に表示されるバッファーでウィンドウに最初に表示される文字の位置を指すマーカー。
pointmこれはウィンドウが選択されているときのカレントバッファーのポイント値。選択されていなければ前の値が保たれる。
force_startこのフラグが非nilならLispプログラムによりそのウィンドウが明示的にスクロールされたことを示す。これはポイントがスクリーン外にある場合の次回再表示に影響を与える。影響とはポイント周辺のテキストを表示するためにウィンドウをスクロールするかわりに、スクリーン上にある位置にポイントを移動するというものである。
frozen_window_start_pこのフィールドは再表示にたいして、たとえポイントが不可視になったとしてもウィンドウのstartを変更するべきではないことを示すために一時的に1にセットされる。
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非nil値は、そのウィンドウが最後に更新されたとき、そのウィンドウのバッファーが“変更”されたことを意味する。
vertical_scroll_barそのウィンドウの垂直スクロールバー。
left_margin_colsright_margin_colsそのウィンドウの左マージンと右マージンの幅。値nilはマージンがないことを意味する。
left_fringe_widthright_fringe_widthそのウィンドウの左フリンジと右フリンジの幅。値nilとtはフレームの値の使用を意味する。
fringes_outside_margins非nil値はディスプレーマージン外側のフリンジ、それ以外ならフリンジはマージンとテキストの間にあることを意味する。
window_end_posこれはzからウィンドウのカレントマトリクス内の最後のグリフのバッファー位置を減じて算出される。この値はwindow_end_validが非nilのときだけ有効。
window_end_byteposwindow_end_posに対応するバイト位置。
window_end_vposwindow_end_posを含む行のウィンドウに相対的な垂直位置。
window_end_validこのフィールドはwindow_end_posが真に有効なら非nil値にセットされる。これは重要な再表示が先に割り込んだ場合には、window_end_posを算出した表示がスクリーン上に出現しなくなるのでnilとなる。
cursorそのウィンドウ内でカーソルがどこにあるかを記述する構造体。
last_cursor完了した最後の表示でのcursorの値。
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。
vscrollピクセル単位での垂直スクロール量。これは通常は0。
dedicatedそのウィンドウがそれのバッファー専用(dedicated)なら非nil。
display_tableそのウィンドウのディスプレーテーブル、何も指定されていなければnil。
update_mode_line非nilはウィンドウのモードラインの更新が必要なことを意味する。
base_line_numberそのバッファーの特定の位置の行番号かnil。これはモードラインでポイントの行番号を表示するために使用される。
base_line_pos行番号が既知であるバッファー位置、未知ならnil。これがバッファーならウィンドウがバッファーを表示するかぎり行番号は表示されない。
column_number_displayedそのウィンドウのモードラインに表示されているカレント列番号、列番号が表示されていなければnil。
current_matrixdesired_matrixそのウィンドウのカレント、および望まれる表示を記述するグリフ。