Spec-Zone.ru › Elisp

Положение рамки

В графических системах положение обычной рамки верхнего уровня задаётся как абсолютное положение её внешней рамки (см. Геометрия рамки). Положение дочерней рамки (см. Дочерние рамки) задаётся смещениями в пикселях её внешних краёв относительно исходного положения родительской рамки.

Получить или изменить положение рамки можно с помощью параметров рамки left и top (см. Параметры положения). Ниже приведены две дополнительные функции для работы с положениями существующей видимой рамки. Для обеих функций аргумент frame должен обозначать существующую рамку; по умолчанию используется выбранная рамка.

Функция: frame-position &optional frame

Для обычной рамки, не являющейся дочерней, эта функция возвращает пару координат в пикселях её внешнего положения (см. Компоновка рамки) относительно начала координат (0, 0) её дисплея. Для дочерней рамки (см. Дочерние рамки) эта функция возвращает координаты в пикселях её внешнего положения относительно начала координат (0, 0), расположенного в исходном положении родительской рамки frame.

Отрицательные значения никогда не обозначают смещение от правого или нижнего края дисплея рамки frame или её родительской рамки. Вместо этого они означают, что внешнее положение рамки frame находится левее и/или выше начала координат её дисплея либо исходного положения родительской рамки. Обычно это означает, что рамка frame видна лишь частично (или совсем не видна). Однако в системах, где начало координат дисплея не совпадает с его верхним левым углом, рамка может быть видна на дополнительном мониторе.

Для рамки в текстовом терминале оба значения равны нулю для корневых рамок (см. Дочерние рамки).

Функция: set-frame-position frame x y

Эта функция задаёт внешнее положение рамки frame равным (x, y). Последние аргументы задаются в пикселях и обычно отсчитываются от начала координат в положении (0, 0) дисплея рамки frame. Для дочерних рамок отсчёт ведётся от исходного положения родительской рамки frame.

Отрицательные значения параметров задают положение правого края внешней рамки на -x пикселей левее правого края экрана (или исходного прямоугольника родительской рамки), а нижнего края — на -y пикселей выше нижнего края экрана (или исходного прямоугольника родительской рамки).

Обратите внимание, что отрицательные значения не позволяют точно совместить правый или нижний край рамки frame с правым или нижним краем её дисплея либо родительской рамки. Они также не позволяют задать положение за пределами краёв дисплея или родительской рамки. Параметры рамки left и top (см. Параметры положения) позволяют это сделать, но для начальной или новой рамки они всё же могут не дать хорошего результата.

Эта функция не действует на рамки в текстовом терминале.

Переменная: move-frame-functions

Этот хук задаёт функции, которые вызываются, когда оконная система или оконный менеджер перемещает рамку Emacs (задаёт ей новое положение). Функции вызываются с одним аргументом — перемещённой рамкой. Для дочерней рамки (см. Дочерние рамки) функции вызываются только при изменении положения рамки относительно её родительской рамки.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Frame-Position.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API