Размеры окна
Emacs предоставляет различные функции для определения высоты и ширины окна. Значение возвращаемое многими из этих функций, может быть указано в пикселях или в строках и столбцах. На графическом дисплее последнее фактически соответствует высоте и ширине стандартного символа, заданного шрифтом по умолчанию фрейма, возвращаемого frame-char-height и frame-char-width (см. Шрифт фрейма). Таким образом, если окно отображает текст с другим шрифтом или размером, высота строки и ширина столбца, указанные для этого окна, могут отличаться от фактического количества строк или столбцов текста, отображаемых в нём.
Полная высота окна — это количество строк, составляющих его тело и верхнее и нижнее украшения (см. Основные окна).
- Функция: window-total-height &optional window round
-
Эта функция возвращает полную высоту окна window в строках. Если window опущена или
nil, она по умолчанию устанавливается на выбранное окно. Если window является внутренним окном, возвращаемое значение — это полная высота, занимаемая его дочерними окнами.Если высота окна в пикселях не является целым кратным высоте символа по умолчанию фрейма, количество строк, занимаемых окном, округляется внутри. Это делается таким образом, что, если окно является родительским окном, сумма высот всех его дочерних окон внутри равна полной высоте их родителя. Это означает, что, хотя два окна имеют одинаковую высоту в пикселях, их внутренние полные высоты могут отличаться на одну строку. Это также означает, что если окно объединено вертикально и имеет следующего брата, самая верхняя строка этого брата может быть вычислена как сумма самой верхней строки этого окна и полной высоты (см. Координаты и окна)
Если необязательный аргумент round равен
ceiling, эта функция возвращает наименьшее целое число, большее, чем высота window в пикселях, делённая на высоту символа фрейма; если он равенfloor, возвращает наибольшее целое число, меньшее указанного значения; при любом другом значении round возвращается внутреннее значение полной высоты окна windows.
Полная ширина окна — это количество столбцов, составляющих его тело и левое и правое украшения (см. Основные окна).
- Функция: window-total-width &optional window round
-
Эта функция возвращает полную ширину окна window в столбцах. Если window опущена или
nil, она по умолчанию устанавливается на выбранное окно. Если window является внутренним, возвращаемое значение — это общая ширина, занимаемая его дочерними окнами.Если ширина окна в пикселях не является целым кратным ширине символа фрейма, количество столбцов, занимаемых окном, округляется внутри. Это делается таким образом, что, если окно является родительским окном, сумма общих ширин всех его дочерних окон внутри равна общей ширине их родительского окна. Это означает, что, хотя два окна имеют одинаковую ширину в пикселях, их внутренние полные ширины могут отличаться на один столбец. Это также означает, что если это окно объединено горизонтально и имеет следующего брата, самый левый столбец этого брата может быть вычислен как сумма самого левого столбца этого окна и полной ширины (см. Координаты и окна). Необязательный аргумент round работает так же, как и для
window-total-height.
- Функция: window-total-size &optional window horizontal round
Эта функция возвращает полную высоту в строках или полную ширину в столбцах окна window. Если horizontal опущена или
nil, это эквивалентно вызовуwindow-total-heightдля window; в противном случае это эквивалентно вызовуwindow-total-widthдля window. Необязательный аргумент round работает так же, как и дляwindow-total-height.
Следующие две функции могут быть использованы для возвращения общего размера окна в единицах пикселей.
- Функция: window-pixel-height &optional window
-
Эта функция возвращает общую высоту окна window в пикселях. window должно быть допустимым окном и по умолчанию устанавливается на выбранное.
Возвращаемое значение включает высоты верхних и нижних украшений window. Если window является внутренним окном, его высота в пикселях — это высота в пикселях областей экрана, охватываемых его дочерними окнами.
- Функция: window-pixel-width &optional window
-
Эта функция возвращает ширину окна window в пикселях. window должно быть допустимым окном и по умолчанию устанавливается на выбранное.
Возвращаемое значение включает ширины левого и правого украшений window. Если window является внутренним окном, его ширина в пикселях — это ширина областей экрана, охватываемых его дочерними окнами.
Следующие функции могут быть использованы для определения наличия у данного окна соседних окон.
- Функция: window-full-height-p &optional window
Эта функция возвращает не-
nil, если у window нет другого окна над или под ним в фрейме. Более точно, это означает, что полная высота window равна полной высоте корневого окна в этом фрейме. Окно минибуфера в этом случае не учитывается. Если window опущена илиnil, она по умолчанию устанавливается на выбранное окно.
- Функция: window-full-width-p &optional window
Эта функция возвращает не-
nil, если у window нет другого окна слева или справа в его фрейме, т.е. его полная ширина равна полной ширине корневого окна в этом фрейме. Если window опущена илиnil, она по умолчанию устанавливается на выбранное окно.
Высота тела окна — это высота его тела, которая не включает ни одного из его верхних или нижних украшений (см. Основные окна).
- Функция: window-body-height &optional window pixelwise
-
Эта функция возвращает высоту тела окна window в строках. Если window опущена или
nil, она по умолчанию устанавливается на выбранное окно; в противном случае это должно быть активное окно.Если необязательный аргумент pixelwise отличен от
nil, эта функция возвращает высоту тела window в пикселях.Если pixelwise равно
nil, возвращаемое значение округляется вниз до ближайшего целого числа, если необходимо. Это означает, что если строка в нижней части текстовой области видна только частично, эта строка не учитывается. Это также означает, что высота тела окна никогда не может превышать его полную высоту, возвращаемуюwindow-total-height.
Ширина тела окна — это ширина его тела и текстовой области, которая не включает ни одного из его левых или правых украшений (см. Основные окна).
Обратите внимание, что когда одна или обе рамки удалены (установив их ширину в ноль), движок отображения резервирует две ячейки символов по обе стороны от окна для отображения символов продолжения и усечения, что на 2 столбца сокращает пространство для отображения текста. (Функция window-max-chars-per-line, описанная ниже, учитывает эту особенность).
- Функция: window-body-width &optional window pixelwise
-
Эта функция возвращает ширину тела окна window в столбцах. Если window опущена или
nil, она по умолчанию устанавливается на выбранное окно; в противном случае это должно быть активное окно.Если необязательный аргумент pixelwise отличен от
nil, эта функция возвращает ширину тела window в пикселях.Если pixelwise равно
nil, возвращаемое значение округляется вниз до ближайшего целого числа, если необходимо. Это означает, что если столбец справа от текстовой области виден только частично, этот столбец не учитывается. Это также означает, что ширина тела окна никогда не может превышать его полную ширину, возвращаемуюwindow-total-width.
- Функция: window-body-size &optional window horizontal pixelwise
Эта функция возвращает высоту или ширину тела window. Если horizontal опущена или
nil, она эквивалентна вызовуwindow-body-heightдля window; в противном случае она эквивалентна вызовуwindow-body-width. В любом случае необязательный аргумент pixelwise передаётся вызываемой функции.
Высоты в пикселях строки состояния, строки вкладок и заголовка окна можно получить с помощью функций, указанных ниже. Их возвращаемое значение обычно точно, если только окно не отображалось ранее: в этом случае возвращаемое значение основано на оценке шрифта, используемого для фрейма окна.
- Функция: window-mode-line-height &optional window
Эта функция возвращает высоту строки состояния window в пикселях. window должно быть активным окном и по умолчанию устанавливается на выбранное. Если у window нет строки состояния, возвращаемое значение равно нулю.
- Функция: window-tab-line-height &optional window
Эта функция возвращает высоту строки вкладок window в пикселях. window должно быть активным окном и по умолчанию устанавливается на выбранное. Если у window нет строки вкладок, возвращаемое значение равно нулю.
- Функция: window-header-line-height &optional window
Эта функция возвращает высоту строки заголовка window в пикселях. window должно быть активным окном и по умолчанию устанавливается на выбранное. Если у window нет строки заголовка, возвращаемое значение равно нулю.
Функции для получения высоты и/или ширины разделителей окна (см. Разделители окна), рамок (см. Рамки), полос прокрутки (см. Полосы прокрутки) и полей отображения (см. Поля отображения) описаны в соответствующих разделах.
Если вашей программе Lisp нужно принимать решения о макете, вам будет полезна следующая функция:
- Функция: window-max-chars-per-line &optional window face
-
Эта функция возвращает количество символов, отображаемых в указанном шрифте face в указанном окне window (которое должно быть активным). Если face был переназначен (см. Переназначение шрифтов), информация возвращается для переназначенного шрифта. Если face опущен или
nil, по умолчанию используется шрифт по умолчанию, а window — активное окно.В отличие от
window-body-width, эта функция учитывает фактический размер шрифта face, а не работает с единицами стандартной ширины символа рамки окна window (см. Шрифт рамки). Она также учитывает пробелы, используемые глифом продолжения, если у окна window отсутствует одна или обе рамки.
Команды, изменяющие размер окон (см. Изменение размеров окон), или их разделение (см. Разделение окон), подчиняются переменным window-min-height и window-min-width, которые определяют минимальную разрешенную высоту и ширину окна. Они также подчиняются переменной window-size-fixed, которая позволяет фиксировать размер окна (см. Сохранение размеров окон).
- Пользовательский параметр: window-min-height
Этот параметр задаёт минимальную общую высоту любого окна в строках. Его значение должно быть достаточно для размещения хотя бы одной строки текста и любых верхних или нижних декораций.
- Пользовательский параметр: window-min-width
Этот параметр задаёт минимальную общую ширину любого окна в колонках. Его значение должно быть достаточно для размещения хотя бы двух столбцов текста и любых левых или правых декораций.
Следующая функция показывает, насколько маленьким может стать конкретное окно, учитывая размеры его областей и значения window-min-height, window-min-width и window-size-fixed (см. Сохранение размеров окон).
- Функция: window-min-size &optional window horizontal ignore pixelwise
-
Эта функция возвращает минимальный размер окна window. window должно быть действительным окном, по умолчанию используется активное. Необязательный аргумент horizontal с не-
nilзначением означает возвращение минимального количества колонок окна window; в противном случае возвращается минимальное количество строк окна window.Возвращаемое значение гарантирует, что все компоненты окна window останутся полностью видимыми, если размер окна window будет действительно установлен на это значение. С аргументом horizontal
nilучитываются любые верхние или нижние декорации. С аргументом horizontal не-nilучитываются любые левые или правые декорации окна window.Необязательный аргумент ignore, если он имеет значение не-
nil, означает игнорирование ограничений, накладываемых окнами с фиксированным размером,window-min-heightилиwindow-min-widthнастройками. Если ignore равноsafe, активные окна могут быть уменьшены доwindow-safe-min-heightстрок иwindow-safe-min-widthколонок. Если ignore является окном, игнорируются ограничения только для этого окна. Любое другое значение, отличное отnil, означает игнорирование всех вышеперечисленных ограничений для всех окон.Необязательный аргумент pixelwise со значением не-
nilозначает возвращение минимального размера окна window в пикселях.
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/Window-Sizes.html