22.7.11 События Xwidget

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

(xwidget-event kind xwidget arg)

Это событие отправляется всякий раз, когда происходит какое-либо обновление в xwidget. Существует несколько типов обновлений, определяемых их kind.

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

Вы можете добавить колбэк, установив свойство callback в списке свойств xwidget, которое должно быть функцией, принимающей xwidget и kind в качестве аргументов.

load-changed

Это событие xwidget указывает на то, что xwidget достиг определенной точки процесса загрузки страницы. Когда эти события отправляются, arg будет содержать строку, которая дополнительно описывает состояние виджета:

‘load-started’

Это означает, что виджет начал операцию загрузки страницы.

‘load-finished’

Это означает, что xwidget завершил обработку любой операции загрузки страницы, которую он выполнял ранее.

‘load-redirected’

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

‘load-committed’

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

download-callback

Это событие указывает на завершение загрузки чего-либо.

В вышеуказанных событиях могут быть аргументы после arg, где сам arg указывает URL, откуда был получен загружаемый файл: первый аргумент после arg указывает MIME-тип загрузки в виде строки, а второй аргумент содержит полное имя загруженного файла.

download-started

Это событие указывает на начало загрузки. В этих событиях arg содержит URL файла, который в настоящее время загружается.

javascript-callback

Это событие содержит данные колбэка JavaScript. Эти события используются внутренне функцией xwidget-webkit-execute-script.

(xwidget-display-event xwidget source)

Это событие отправляется всякий раз, когда xwidget запрашивает отображение другого xwidget. xwidget — это xwidget, который должен быть отображен, а source — это xwidget, который запросил отображение xwidget.

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

xwidget's буфер будет установлен в временный буфер. При отображении виджета следует позаботиться о замене буфера на тот, в котором будет отображен xwidget, используя set-xwidget-buffer (см. Встроенные нативные виджеты).