Next: , Previous: , Up: Emacsのディスプレー表示   [Contents][Index]


40.14 スクロールバー

フレームパラメーターvertical-scroll-barsはそのフレーム内のウィンドウが垂直スクロールバーをもつべきかと、それらが左か右のいずれかに配置されるべきかを通常は制御します。フレームパラメーターscroll-bar-widthはそれらの幅を指定します(nilはデフォルトを意味する)。

フレームパラメーターhorizontal-scroll-barsはフレーム内のウィンドウが水平スクロールバーをもつかどうかを制御します。フレームパラメーターscroll-bar-heightはそれらの高さを指定します(nilはデフォルトを意味する)。レイアウトのパラメーターを参照のしてください。

水平スクロールバーはすべてのプラットフォームで利用可能ではありません。引数を受け取らない関数horizontal-scroll-bars-available-pは、システム上で水平スクロールバーが利用可能なら非nilをリターンします。

以下の3つの関数は引数として生きたフレームを受け取り、デフォルトは選択されたフレームです。

Function: frame-current-scroll-bars &optional frame

この関数はフレームframeのスクロールバーのタイプを報告する。値はコンスセル(vertical-type . horizontal-type)。ここでvertical-typeleftright、またはnil (スクロールバーなしを意味する)のいずれか。horizontal-typebottomnil (水平スクロールバーなしを意味する)のいずれか。

Function: frame-scroll-bar-width &optional frame

この関数はウィンドウwindowにたいして垂直スクロールバーの幅をピクセル単位でリターンする。

Function: frame-scroll-bar-height &optional frame

この関数はframeの水平スクロールバーの高さをピクセル単位でリターンする。

以下の関数を使用することにより、特定のウィンドウにたいするフレーム固有のセッティングをオーバーライドできます:

Function: set-window-scroll-bars window &optional width vertical-type height horizontal-type persistent

この関数はウィンドウwindowのスクロールバーの幅および/または高さ、およびタイプをセットする。windownilなら選択されたウィンドウが使用される。

widthはピクセル単位で垂直スクロールバーの幅を指定する(nilはそのフレームにたいして指定された幅の使用を意味する)。vertical-typeは垂直スクロールバーをもつかどうか、もつ場合にはその位置を指定する。可能な値はleftrightt (フレームのデフォルトの使用を意味する)、垂直スクロールバーなしならnilのいずれか。

heightはピクセル単位で水平スクロールバーの高さを指定する(nilはそのフレームにたいして指定された高さの使用を意味する)。horizontal-typeは水平スクロールバーをもつかどうかを指定する。可能な値はbottomt (フレームのデフォルトの使用を意味する)、水平スクロールバーなしならnilのいずれか。ミニウィンドウにたいして値tnil、すなわち水平スクロールバーを表示しないことを意味することに注意。ミニウィンドウで水平スクロールバーを表示するためには、明示的にbottomを指定する必要がある。

期待するサイズのスクロールバーを収容するのにwindowが十分大きくなければ、windowのスクロールバーは未変更のままになる。

ここで指定した値はwindowにたいする引数keep-marginsnilか省略したset-window-buffer (バッファーとウィンドウを参照)の呼び出しにより後からオーバーライドされるかもしれない。しかしオプションの1つ目の引数persistentが非nil、かつ他の引数が成功裏に処理されたなら、ここで指定された値は後続のset-window-buffer呼び出しに引き継がれる。

set-window-scroll-barsおよびset-window-fringes (フリンジのサイズと位置を参照)のpersistent引数を使用すれば、以下のスニペットを早期initファイル(early init file)に追加することにより、すべてのミニバッファーウィンドウでスクロールバーおよび/またはフリンジを信頼性をもって永続的にオフにすることができます(initファイルを参照)。

(add-hook 'after-make-frame-functions
          (lambda (frame)
            (set-window-scroll-bars
             (minibuffer-window frame) 0 nil 0 nil t)
            (set-window-fringes
             (minibuffer-window frame) 0 0 nil t)))

以下の4つの関数は引数として生きたウィンドウを受け取り、デフォルトは選択されたウィンドウです。

Function: window-scroll-bars &optional window

この関数は(width columns vertical-type height lines horizontal-type persistent)という形式のリストをリターンする。

widthは垂直スクロールバーの幅に指定された値(nilもあり得る)。columnsは垂直スクロールバーが実際に占有する列数(丸められているかもしれない)。

heightは水平スクロールバーの高さに指定された値(nilもあり得る)。linesは水平スクロールバーが実際に占有する行数(丸められているかもしれない)。

persistentの値は最後に成功裏にset-window-scroll-barsを呼び出した際にwindowに指定した値、そのような呼び出しがなければnil

Function: window-current-scroll-bars &optional window

この関数はウィンドウwindowにたいするスクロールバータイプを報告する。値はコンスセル(vertical-type . horizontal-type)window-scroll-barsとは異なりフレームのデフォルトとscroll-bar-modeを考慮して実際に使用されているスクロールバータイプを報告する。

Function: window-scroll-bar-width &optional window

この関数はwindowの垂直スクロールバーの幅をピクセル単位でリターンする。

Function: window-scroll-bar-height &optional window

この関数は、windowの水平スクロールバーの高さをピクセル単位でリターンする。

set-window-scroll-barsでウィンドウのスクロールバーのセッティングを指定しない場合には、表示されようとするバッファーのバッファーローカル変数vertical-scroll-barhorizontal-scroll-barscroll-bar-widthscroll-bar-heightがウィンドウのスクロールバーを制御します。set-window-bufferはこれらの変数を調べる関数です。あるウィンドウですでに可視なバッファーでこれらを変更した場合には、すでに表示されているのと同じバッファーを指定してset-window-bufferを呼び出すことにより、そのウィンドウに新たな値を記録させることができます。

以下の変数をセット(セットにより自動的にバッファーローカルになる)することにより、特定のバッファーのスクロールバーの外観を制御できます。

Variable: vertical-scroll-bar

この変数は垂直スクロールバーの配置を指定する。可能な値はleftright、そのフレームのデフォルトの使用を意味するt、スクロールバーなしのnilのいずれか。

Variable: horizontal-scroll-bar

この変数は水平スクロールバーの配置を指定する。可能な値はbottom、そのフレームのデフォルトの使用を意味するt、スクロールバーなしのnilのいずれか。

Variable: scroll-bar-width

この変数はそのバッファーの垂直スクロールバーをピクセル単位で量った幅を指定する。値nilはフレームにより指定された値の使用を意味する。

Variable: scroll-bar-height

この変数はそのバッファーの水平スクロールバーをピクセル単位で量った高さを指定する。値nilはフレームにより指定された値の使用を意味する。

最後に変数scroll-bar-modehorizontal-scroll-bar-modeをカスタマイズすることにより、すべてのフレームでのスクロールバーの表示を切り替えることができます。

User Option: scroll-bar-mode

この変数はすべてのフレームに垂直スクロールバーを配置するべきかと、その場所を制御する。可能な値は、スクロールバーなしのnil、左にスクロールバーを配置するleft、右にスクロールバーを配置するrightのいずれか。

User Option: horizontal-scroll-bar-mode

この変数はすべてのフレームに水平スクロールバーを表示するかどうかを制御する。