Next: , Previous: , Up: ウィンドウ   [Contents][Index]


29.22 割り合いによる垂直スクロール

垂直フラクショナルスクロール(vertical fractional scrolling)とは、指定された値を行に乗ずるることによりウィンドウ内のテキストを上下にシフトすることを意味します。たとえばEmacsはウィンドウより高さが大きいイメージやスクリーン行でこれを使用します。ウィンドウはそれぞれ決して0より小さくなることはない、垂直スクロール位置(vertical scroll position)という数値をもっています。これはコンテンツを表示しているウィンドウにたいして、コンテンツをどこから表示開始(raise)するかを指定します。ウィンドウのコンテンツの表示開始により一般的には上端の何行かのすべて、または一部が表示されなくなり他の何行かのすべて、または一部が下端に表示されるようになります。通常の値は0です。

垂直スクロール位置は行の通常高さ(デフォルトフォントの高さ)の単位で数えられます。したがって値が.5なら、それはウィンドウのコンテンツが通常行の半分の高さで上にスクロール、3.3なら通常行の3倍を若干超える高さで上にスクロールされていることを意味します。

垂直スクロールが覆い隠す(cover)のがどれほどの行断片(fraction of a line)なのか、あるいは行数かはそれらの行に何が含まれるかに依存します。3.3という値により高い行やイメージの一部だけを画面外にスクロールできることもあれば、.5という値が非常に小さい高さの行を画面外にスクロールできることもあります。

Function: window-vscroll &optional window pixels-p

この関数はwindowのカレントの垂直スクロール位置をリターンする。windowのデフォルトは選択されたウィンドウ。pixels-pが非nilならリターン値は通常行高さ単位ではなくピクセル単位で測定される。

(window-vscroll)
     ⇒ 0
Function: set-window-vscroll window lines &optional pixels-p preserve-vscroll-p

この関数はwindowの垂直スクロール位置をlinesにセットする。windownilなら選択されたウィンドウが使用される。引数linesは0または正であること。それ以外は0として扱われる。

実際の垂直スクロール位置は常にピクセルの整数に対応しなければならないため、指定した値はそれに応じて丸められる。

この丸め結果がリターン値となる。

(set-window-vscroll (selected-window) 1.2)
     ⇒ 1.13

pixels-pが非nilならlinesはピクセル数を指定する。この場合にはリターン値はlines

vscrollは通常はminibuffer-scroll-window、あるいはミニバッファーウィンドウのリサイズ時に選択されているウィンドウ(ミニバッファーのウィンドウを参照)のいずれでもないウィンドウには効果がない。この“凍結された挙動”は、preserve-vscroll-pパラメーターが非nilの場合には無効になる。これはvscrollを通常のようにセットすることを意味する。

Variable: auto-window-vscroll

この変数が非nilなら関数line-movescroll-upscroll-downは、たとえば大きなイメージが存在する等でウィンドウ高さより高いディスプレイ行をスクロールするために垂直スクロール位置を自動的に変更するだろう。