Скролл-панели
Обычно параметр фрейма vertical-scroll-bars управляет тем, будут ли у окон в фрейме вертикальные скролл-панели и где они будут расположены (слева или справа). Параметр фрейма scroll-bar-width определяет их ширину (nil означает значение по умолчанию).
Параметр фрейма horizontal-scroll-bars управляет наличием горизонтальных скролл-панелей в окнах фрейма. Параметр фрейма scroll-bar-height определяет их высоту (nil означает значение по умолчанию). См. Параметры макета.
Горизонтальные скролл-панели недоступны на всех платформах. Функция horizontal-scroll-bars-available-p, которая не принимает аргументов, возвращает не-nil, если они доступны в вашей системе.
Следующие три функции принимают в качестве аргумента живой фрейм, по умолчанию - выбранный.
- Функция: frame-current-scroll-bars &optional frame
Эта функция сообщает о типах скролл-панелей для фрейма frame. Значение является ячейкой конс
(vertical-type . horizontal-type), где vertical-type может бытьleft,right, илиnil(что означает отсутствие вертикальной скролл-панели). horizontal-type может бытьbottomилиnil(что означает отсутствие горизонтальной скролл-панели).
- Функция: frame-scroll-bar-width &optional frame
Эта функция возвращает ширину вертикальных скролл-панелей фрейма frame в пикселях.
- Функция: frame-scroll-bar-height &optional frame
Эта функция возвращает высоту горизонтальных скролл-панелей фрейма frame в пикселях.
Вы можете переопределить настройки скролл-панелей для отдельных окон, используя следующую функцию:
- Функция: set-window-scroll-bars window &optional width vertical-type height horizontal-type persistent
-
Эта функция задает ширину и/или высоту и типы скролл-панелей для окна window. Если window равно
nil, используется выбранное окно.width задаёт ширину вертикальной скролл-панели в пикселях (
nilозначает использование ширины, заданной для фрейма). vertical-type задаёт наличие и расположение вертикальной скролл-панели. Возможные значения:left,right,t, что означает использование значения по умолчанию для фрейма, иnilдля отсутствия вертикальной скролл-панели.height задаёт высоту горизонтальной скролл-панели в пикселях (
nilозначает использование высоты, заданной для фрейма). horizontal-type задаёт наличие горизонтальной скролл-панели. Возможные значения:bottom,t, что означает использование значения по умолчанию для фрейма, иnilдля отсутствия горизонтальной скролл-панели. Обратите внимание, что для мини-окна значениеtимеет то же значение, что иnil, а именно не отображать горизонтальную скролл-панель. Для отображения горизонтальной скролл-панели в мини-окне необходимо явно указатьbottom.Если окно недостаточно велико для размещения скролл-панели желаемых размеров, соответствующая скролл-панель остаётся без изменений.
Установленные здесь значения могут быть переопределены позже вызовом
set-window-buffer(см. Буферы и окна) для window с аргументом keep-marginsnilили без него. Однако, если необязательный пятый аргумент persistent имеет значение, отличное отnil, а остальные аргументы обработаны успешно, заданные значения сохранятся безусловно после последующих вызововset-window-buffer.
Используя аргумент persistent функций set-window-scroll-bars и set-window-fringes (см. Размер/Позиция отступов), вы можете надёжно и постоянно отключить скролл-панели и/или отступы в любом окне минибуфера, добавив следующий фрагмент в ваш файл инициализации (см. Файл инициализации).
(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)))
Следующие четыре функции принимают в качестве аргумента живое окно, по умолчанию - выбранное.
- Функция: window-scroll-bars &optional window
-
Эта функция возвращает список вида
(width columns vertical-type height lines horizontal-type persistent).Значение width — это значение, заданное для ширины вертикальной скролл-панели (которое может быть
nil); columns — это (возможно, округленное) количество столбцов, занимаемых вертикальной скролл-панелью.Значение height — это значение, заданное для высоты горизонтальной скролл-панели (которое может быть
nil); lines — это (возможно, округленное) количество строк, занимаемых горизонтальной скролл-панелью.Значение persistent — это значение, заданное для window последним успешным вызовом
set-window-scroll-bars,nilесли такого вызова не было.
- Функция: window-current-scroll-bars &optional window
Эта функция сообщает о типе скролл-панелей для окна window. Значение является ячейкой cons
(vertical-type . horizontal-type). В отличие отwindow-scroll-bars, она сообщает о типе скролл-панели, фактически используемой после учёта значений по умолчанию фрейма иscroll-bar-mode.
- Функция: window-scroll-bar-width &optional window
Эта функция возвращает ширину вертикальной скролл-панели окна window в пикселях.
- Функция: window-scroll-bar-height &optional window
Эта функция возвращает высоту горизонтальной скролл-панели окна window в пикселях.
Если вы не задаёте настройки скролл-панелей окна через set-window-scroll-bars, локальные переменные буфера vertical-scroll-bar, horizontal-scroll-bar, scroll-bar-width и scroll-bar-height в отображаемом буфере управляют скролл-панелями окна. Функция set-window-buffer проверяет эти переменные. Если вы измените их в буфере, который уже отображается в окне, вы можете заставить окно учесть новые значения, вызвав set-window-buffer, указав тот же буфер, который уже отображается.
Вы можете управлять отображением скролл-панелей для конкретного буфера, задавая следующие переменные, которые автоматически становятся локальными для буфера при задании.
- Переменная: vertical-scroll-bar
Эта переменная задаёт расположение вертикальной скролл-панели. Возможные значения:
left,right,t, что означает использование значения по умолчанию для фрейма, иnilдля отсутствия скролл-панели.
- Переменная: horizontal-scroll-bar
Эта переменная задаёт расположение горизонтальной скролл-панели. Возможные значения:
bottom,t, что означает использование значения по умолчанию для фрейма, иnilдля отсутствия скролл-панели.
- Переменная: scroll-bar-width
Эта переменная задаёт ширину вертикальных скролл-панелей буфера в пикселях. Значение
nilозначает использование значения, заданного для фрейма.
- Переменная: scroll-bar-height
Эта переменная задаёт высоту горизонтальной скролл-панели буфера в пикселях. Значение
nilозначает использование значения, заданного для фрейма.
Наконец, вы можете переключать отображение скролл-панелей во всех фреймах, настраивая переменные scroll-bar-mode и horizontal-scroll-bar-mode.
- Параметр пользователя: scroll-bar-mode
Эта переменная управляет отображением и расположением вертикальных скролл-панелей во всех фреймах. Возможные значения:
nilдля отсутствия скролл-панелей,leftдля расположения скролл-панелей слева иrightдля расположения скролл-панелей справа.
- Параметр пользователя: horizontal-scroll-bar-mode
Эта переменная управляет отображением горизонтальных скролл-панелей во всех фреймах.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Scroll-Bars.html