42.19 Встроенные нативные виджеты

Emacs может отображать нативные виджеты, такие как виджеты GTK+ WebKit, в буферах Emacs, если он был собран с необходимыми поддерживающими библиотеками и работает на графическом терминале. Чтобы проверить, поддерживает ли Emacs отображение встроенных виджетов, убедитесь, что доступна возможность xwidget-internal (см. Возможности).

Чтобы отобразить встроенный виджет в буфере, вы должны сначала создать объект xwidget, а затем использовать этот объект в качестве спецификатора отображения в текстовом свойстве или свойстве наложения display (см. Свойство display).

Встроенные виджеты могут отправлять события, уведомляющие код Lisp об изменениях, происходящих внутри них (см. События xwidget).

Функция: make-xwidget тип заголовок ширина высота аргументы &optional буфер связанный

Эта функция создаёт и возвращает объект xwidget. Если буфер опущен или равен nil, по умолчанию используется текущий буфер. Если буфер указывает на буфер, который не существует, он будет создан. Аргумент тип определяет тип компонента xwidget; он может принимать одно из следующих значений:

webkit

Компонент WebKit.

Аргументы ширина и высота задают размер виджета в пикселях, а заголовок, строка, задаёт его заголовок. Аргумент связанный используется внутри виджета WebKit и указывает другой виджет WebKit, с которым создаваемый виджет должен разделять настройки и подпроцессы.

Возвращённый xwidget будет уничтожен вместе со своим буфером (см. Уничтожение буферов). Вы также можете уничтожить его с помощью kill-xwidget. После уничтожения xwidget может продолжать существовать как объект Lisp и действовать как свойство display, пока все ссылки на него не исчезнут, но большинство действий, которые можно выполнять над живыми xwidget, станут недоступны.

Функция: xwidgetp объект

Эта функция возвращает t, если объект является xwidget, и nil в противном случае.

Функция: xwidget-live-p объект

Эта функция возвращает t, если объект является xwidget, который не был уничтожен, и nil в противном случае.

Функция: kill-xwidget xwidget

Эта функция уничтожает xwidget, удаляя его из его буфера и освобождая удерживаемые им ресурсы оконной системы.

Функция: xwidget-plist xwidget

Эта функция возвращает список свойств xwidget.

Функция: set-xwidget-plist xwidget plist

Эта функция заменяет список свойств xwidget новым списком свойств, заданным аргументом plist.

Функция: xwidget-buffer xwidget

Эта функция возвращает буфер xwidget. Если xwidget был уничтожен, она возвращает nil.

Функция: set-xwidget-buffer xwidget буфер

Эта функция устанавливает буфер xwidget в буфер.

Функция: get-buffer-xwidgets буфер

Эта функция возвращает список объектов xwidget, связанных с буфером, который может быть задан как объект буфера или имя существующего буфера в виде строки. Возвращаемое значение равно nil, если буфер не содержит xwidget.

Функция: xwidget-webkit-goto-uri xwidget uri

Эта функция загружает указанный uri в заданном xwidget. Аргумент uri — это строка, задающая имя файла или URL.

Функция: xwidget-webkit-execute-script xwidget сценарий

Эта функция заставляет виджет браузера, заданный аргументом xwidget, выполнить указанный JavaScript-сценарий.

Функция: xwidget-webkit-title xwidget

Эта функция возвращает заголовок xwidget в виде строки.

Функция: xwidget-resize xwidget ширина высота

Эта функция изменяет размер указанного xwidget до размера ширина×высота пикселей.

Функция: xwidget-size-request xwidget

Эта функция возвращает желаемый размер xwidget в виде списка вида (ширина высота). Размеры указаны в пикселях.

Функция: xwidget-info xwidget

Эта функция возвращает атрибуты xwidget в виде вектора вида [тип заголовок ширина высота]. Атрибуты обычно определяются функцией make-xwidget при создании xwidget.

Функция: set-xwidget-query-on-exit-flag xwidget флаг

Эта функция позволяет вам организовать запрос подтверждения у пользователя перед выходом из Emacs или перед уничтожением буфера, с которым связан xwidget. Если флаг не равен nil, Emacs запросит подтверждение у пользователя, в противном случае — нет.

Функция: xwidget-query-on-exit-flag xwidget

Эта функция возвращает текущее значение флага запроса при выходе для xwidget: t или nil.

Функция: xwidget-perform-lispy-event xwidget событие фрейм

Отправляет событие ввода событие в xwidget. Точное выполняемое действие зависит от платформы. См. События ввода.

Вы можете опционально передать фрейм, на котором было сгенерировано событие, через аргумент фрейм. На X11 модификаторы в событиях клавиш не будут учитываться, если фрейм равен nil, а выбранный фрейм не является фреймом X-Windows.

На GTK поддерживаются только события клавиатуры и функциональных клавиш. События мыши, движения и нажатия отправляются в xwidget без участия кода Lisp и поэтому не требуют вызова этой функции.

Функция: xwidget-webkit-search запрос xwidget &optional без-учёта-регистра назад зацикливание

Запускает инкрементный поиск в виджете WebKit xwidget со строкой запрос в качестве запроса. Аргумент без-учёта-регистра указывает, учитывается ли регистр при поиске, назад определяет, выполняется ли поиск в обратном направлении к началу документа, а зацикливание определяет, завершается ли поиск в конце документа.

Если функция вызывается, когда поисковый запрос уже активен, то указанный запрос заменит существующий.

Чтобы остановить поиск, используйте xwidget-webkit-finish-search.

Функция: xwidget-webkit-next-result xwidget

Отображает следующий результат поиска в xwidget. Эта функция выдаст ошибку, если поисковый запрос ещё не был запущен в xwidget через xwidget-webkit-search.

Если аргумент зацикливание был не равен nil при вызове xwidget-webkit-search, то поиск будет перезапущен с начала документа при достижении его конца.

Функция: xwidget-webkit-previous-result xwidget

Отображает предыдущий результат поиска в xwidget. Эта функция выдаёт ошибку, если поисковый запрос ещё не был запущен в xwidget через xwidget-webkit-search.

Если аргумент зацикливание был не равен nil при вызове xwidget-webkit-search, то поиск будет перезапущен с конца документа при достижении его начала.

Функция: xwidget-webkit-finish-search xwidget

Завершает операцию поиска, запущенную с помощью xwidget-webkit-search в xwidget. Если в данный момент нет активного запроса, эта функция выдаёт ошибку.

Функция: xwidget-webkit-load-html xwidget текст &optional базовый-uri

Загружает текст (строку) в xwidget, который должен быть виджетом WebKit. Любая HTML-разметка в тексте будет обработана xwidget при рендеринге текста.

Необязательный аргумент базовый-uri, который должен быть строкой, задаёт абсолютное расположение веб-ресурсов, на которые ссылается текст, для разрешения относительных ссылок в тексте.

Функция: xwidget-webkit-goto-history xwidget относительная-позиция

Заставляет xwidget, виджет WebKit, загрузить элемент с индексом относительная-позиция в его истории навигации.

Если относительная-позиция равна нулю, текущая страница будет перезагружена.

Функция: xwidget-webkit-back-forward-list xwidget &optional предел

Возвращает историю навигации xwidget до предел элементов в каждом направлении. Если не указан, предел по умолчанию равен 50.

Возвращаемое значение — это список вида (назад здесь вперёд), где здесь — это текущий элемент навигации, а назад — это список элементов, содержащий элементы, записанные WebKit перед текущим элементом навигации, и вперёд — это список элементов, записанных после текущего элемента навигации. назад, здесь и вперёд могут все быть nil.

Когда здесь равен nil, это означает, что ещё не было записано ни одного элемента; если назад или вперёд равны nil, это означает, что история до или после текущего элемента отсутствует соответственно.

Элементы навигации сами являются списками вида (индекс заголовок uri). В этих списках индекс — это индекс, который может быть передан в xwidget-webkit-goto-history, заголовок — это человекочитаемый заголовок элемента, а uri — это URI элемента. Пользователю обычно нет причин загружать uri вручную для перехода к конкретному элементу истории. Вместо этого индекс следует передавать как индекс в xwidget-webkit-goto-history.

Функция: xwidget-webkit-estimated-load-progress xwidget

Возвращает оценку того, сколько данных осталось передать до полной загрузки страницы, отображаемой виджетом WebKit xwidget.

Возвращаемое значение — это число с плавающей точкой в диапазоне от 0.0 до 1.0.

Функция: xwidget-webkit-set-cookie-storage-file xwidget файл

Заставляет виджет WebKit xwidget хранить куки в файл.

файл должен быть абсолютным именем файла. Новый параметр также повлияет на любой xwidget, который был создан с xwidget в качестве аргумента связанный для make-xwidget, а также на связанные с ними виджеты.

Если эта функция не была вызвана хотя бы один раз для xwidget или связанного с ним виджета, xwidget вообще не будет сохранять куки на диске.

Функция: xwidget-webkit-stop-loading xwidget

Прекращает любую передачу данных, всё ещё выполняющуюся в виджете WebKit xwidget в рамках операции загрузки страницы. Если страница не загружается, эта функция ничего не делает.