2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>event</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<h1>event</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Определение виртуальных событий и генерация событий</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>event</strong> <em>параметр</em> ?<em>арг арг ...</em>?
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда <strong>event</strong> обеспечивает различные
|
|
|
|
|
возможности работы с событиями, включая определение виртуальных
|
|
|
|
|
событий и синтезирование событий. У команды есть несколько
|
|
|
|
|
различных форм, которые задаются первым аргументом. В настоящее
|
|
|
|
|
время поддерживаются следующие формы команды:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>event add</strong> <<<em>виртуальное</em>>>
|
|
|
|
|
<em>последовательность</em> ?<em>последовательность...</em>?</dt>
|
|
|
|
|
|
|
|
|
|
<dd>Связывает <em>виртуальное</em> событие с
|
|
|
|
|
последовательностями физических событий, указываемыми
|
|
|
|
|
аргументами <em>последовательность</em>; в результате
|
|
|
|
|
выполнение одной из указанных <em>последовательностей</em>
|
|
|
|
|
событий приводит к возникновению <em>виртуального</em>
|
|
|
|
|
события. Аргумент <em>виртуальное</em> может быть произвольной
|
|
|
|
|
строкой, а <em>последовательность</em> может принимать любое
|
|
|
|
|
значение, допустимое для аргумента <em>последовательность</em>
|
|
|
|
|
команды <a href=bind.html><strong>bind</strong></a>. Если
|
|
|
|
|
виртуальное событие уже определено, то новая
|
|
|
|
|
последовательность физических событий добавляется к списку уже
|
|
|
|
|
имеющихся последовательностей.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>event delete</strong>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<<<em>виртуальное</em>>> ?<em>последовательность
|
|
|
|
|
последовательность ..</em>?</dt>
|
|
|
|
|
|
|
|
|
|
<dd>Удаляет все указанные <em>последовательности</em> из списка
|
|
|
|
|
связанных с данным <em>виртуальным</em> событием. Аргумент
|
|
|
|
|
<em>виртуальное</em> может быть произвольной строкой, а
|
|
|
|
|
<em>последовательность</em> может принимать любое значение,
|
|
|
|
|
допустимое для аргумента <em>последовательность</em> команды
|
|
|
|
|
<a href=bind.html><strong>bind</strong></a>. Если
|
|
|
|
|
<em>последовательность</em> не связана с данным
|
|
|
|
|
<em>виртуальным</em> событием в текущий момент, то она
|
|
|
|
|
игнорируется. Если аргумент <em>последовательность</em>
|
|
|
|
|
отсутствует, то из списка удаляются все последовательности
|
|
|
|
|
физических событий и данное <em>виртуальное</em> событие не
|
|
|
|
|
может быть более осуществлено.</dd>
|
|
|
|
|
|
|
|
|
|
<dt> <strong>event generate</strong> <em>окно событие</em>
|
|
|
|
|
?<em>параметр значение параметр значение ...</em>?</dt>
|
|
|
|
|
|
|
|
|
|
<dd>Генерирует событие в окне и обеспечивает его обработку таким
|
|
|
|
|
образом, как если бы оно поступило из менеджера окон. Аргумент
|
|
|
|
|
<em>окно</em> задает имя пути окна, в котором будет
|
|
|
|
|
генерироваться событие; его значением может быть и
|
|
|
|
|
идентификатор окна (такой же, какой служит результатом команды
|
|
|
|
|
<strong>winfo id</strong>), если он относится к окну в текущем
|
|
|
|
|
приложении. Аргумент <em>событие</em> задает описание события,
|
|
|
|
|
например, в виде <strong><Shift-Button-2></strong> или
|
|
|
|
|
<strong><<Paste>></strong>. Аргумент
|
|
|
|
|
<em>событие</em> может принимать любое значение, допустимое
|
|
|
|
|
для аргумента <em>последовательность</em> команды <a
|
|
|
|
|
href=bind.html><strong>bind</strong></a>, за исключением
|
|
|
|
|
того, что он должен состоять из одного, а не из нескольких
|
|
|
|
|
событий. Пары <em>параметр-значение</em> можно использовать
|
|
|
|
|
для установки значений дополнительных параметров события,
|
|
|
|
|
например, координат курсора "Мыши" ниже
|
|
|
|
|
(см. "<a
|
|
|
|
|
href=event.html#ПОЛЯ_СОБЫТИЯ>ПОЛЯ СОБЫТИЯ</a>"). Если
|
|
|
|
|
параметр <strong>-when</strong> не задан, то событие
|
|
|
|
|
обрабатывается немедленно; все программы обработки события
|
|
|
|
|
будут выполнены до завершения команды <strong>event
|
|
|
|
|
generate</strong>. В противном случае момент обработки
|
|
|
|
|
определяется значением параметра <strong>-when</strong>.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>event info</strong>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
?<<<em>виртуальное</em>>>?</dt>
|
|
|
|
|
|
|
|
|
|
<dd>Возвращает информацию о виртуальных событиях. Если аргумент
|
|
|
|
|
<<<em>виртуальное</em>>> опущен, то возвращается
|
|
|
|
|
список всех виртуальных событий, определенных в текущий
|
|
|
|
|
момент. Если аргумент <<<em>виртуальное</em>>>
|
|
|
|
|
задан, то возвращаемое значение представляет собой список,
|
|
|
|
|
элементы которого являются последовательностями физических
|
|
|
|
|
событий, связанными с данным виртуальным событием; если
|
|
|
|
|
указанное виртуальное событие не определено, то команда
|
|
|
|
|
возвращает пустую строку.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=ПОЛЯ_СОБЫТИЯ></a>ПОЛЯ СОБЫТИЯ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда <strong>event generate</strong> поддерживает следующие
|
|
|
|
|
параметры, которые соответствуют расширению <strong>%</strong> в
|
|
|
|
|
скриптах привязки для команды <a
|
|
|
|
|
href=bind.html><strong>bind</strong></a>.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-above</strong> <em>окно</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Аргумент <em>окно</em> задает поле
|
|
|
|
|
<strong>above</strong> для события либо в виде имени
|
|
|
|
|
пути окна либо в виде целочисленного идентификатора
|
|
|
|
|
окна. Параметр имеет смысл для событий
|
|
|
|
|
<strong>Configure</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%a</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-borderwidth</strong> <em>размер</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>размер</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>border_width</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
|
|
|
|
<strong>Configure</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%B</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-button</strong> <em>число</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Значением параметра <em>число</em> должно быть целое число;
|
|
|
|
|
задает значение поля <em>detail</em> для события
|
|
|
|
|
<strong>ButtonPress</strong> или
|
|
|
|
|
<strong>ButtonRelease</strong>, подавляя номер кнопки,
|
|
|
|
|
задаваемый параметром события <strong>base</strong>. Параметр
|
|
|
|
|
соответствует подстановке <strong>%b</strong> для скриптов
|
|
|
|
|
привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-count</strong> <em>число</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Значением параметра <em>число</em> должно быть целое число;
|
|
|
|
|
задает значение поля <strong>count</strong> для
|
|
|
|
|
события. Параметр имеет смысл для событий
|
|
|
|
|
<strong>Expose</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%c</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-detail</strong> <em>детальность</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd><p>Параметр задает значение поля <strong>detail</strong> для
|
|
|
|
|
события и может принимать следующие значения:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><strong>NotifyAncestor</strong></li>
|
|
|
|
|
<li><strong>NotifyDetailNone</strong></li>
|
|
|
|
|
<li><strong>NotifyInferior</strong></li>
|
|
|
|
|
<li><strong>NotifyNonlinear</strong></li>
|
|
|
|
|
<li><strong>NotifyNonlinearVirtual</strong></li>
|
|
|
|
|
<li><strong>NotifyPointer</strong></li>
|
|
|
|
|
<li><strong>NotifyPointerRoot</strong></li>
|
|
|
|
|
<li><strong>NotifyVirtual</strong></li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Имеет смысл для событий <strong>Enter</strong>,
|
|
|
|
|
<strong>Leave</strong>, <strong>FocusIn</strong> и
|
|
|
|
|
<strong>FocusOut</strong>. Параметр соответствует
|
|
|
|
|
подстановке <strong>%d</strong> для скриптов привязки.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-focus</strong> <em>булевское</em></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Параметр <em>булевское</em> принимает булевские значения; он
|
|
|
|
|
задает значение поля <strong>focus</strong> для события. Имеет
|
|
|
|
|
смысл для событий <strong>Enter</strong> и
|
|
|
|
|
<strong>Leave</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%f</strong> для скриптов привязки.</dd>
|
|
|
|
|
|
|
|
|
|
<dt> <strong>-height</strong> <em>размер</em> </dt>
|
|
|
|
|
|
|
|
|
|
<dd>Параметр <em>размер</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>height</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
|
|
|
|
<strong>Configure</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%h</strong> для скриптов привязки.</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>-keycode</strong> <em>число</em></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Значением параметра <em>число</em> должно быть целое число;
|
|
|
|
|
задает значение поля <strong>keycode</strong> для
|
|
|
|
|
события. Параметр имеет смысл для событий
|
|
|
|
|
<strong>KeyPress</strong> и
|
|
|
|
|
<strong>KeyRelease</strong>. Параметр соответствует
|
|
|
|
|
подстановке <strong>%k</strong> для скриптов привязки.</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>-keysym</strong> <em>имя</em></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Значением параметра <em>имя</em> должно быть имя допустимого
|
|
|
|
|
символа клавиатуры, например, <strong>g</strong>,
|
|
|
|
|
<strong>пробел</strong> или <strong>Return</strong>; код этого
|
|
|
|
|
символа используется в качестве значения поля
|
|
|
|
|
<strong>keycode</strong> события, подавляя значение
|
|
|
|
|
детальности, заданное аргументом <strong>base</strong>
|
|
|
|
|
события. Имеет смысл для событий <strong>KeyPress</strong> и
|
|
|
|
|
<strong>KeyRelease</strong>. Параметр соответствует
|
|
|
|
|
подстановке <strong>%K</strong> для скриптов привязки.</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>-mode</strong> <em>уведомление</em></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Параметр <em>уведомление</em> задает значение поля
|
|
|
|
|
<strong>mode</strong> для события; он должен принимать одно из
|
|
|
|
|
значений <strong>NotifyNormal</strong>,
|
|
|
|
|
<strong>NotifyGrab</strong>, <strong>NotifyUngrab</strong> или
|
|
|
|
|
<strong>NotifyWhileGrabbed</strong>. Имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>FocusIn</strong> и <strong>FocusOut</strong>. Параметр
|
|
|
|
|
соответствует подстановке <strong>%m</strong> для скриптов
|
|
|
|
|
привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-override</strong> <em>булевское</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Значение параметра <em>булевское</em> должно быть булевским;
|
|
|
|
|
он задает значение поля <strong>override_redirect</strong> для
|
|
|
|
|
события. Имеет смысл для событий <strong>Map</strong>,
|
|
|
|
|
<strong>Reparent</strong> и
|
|
|
|
|
<strong>Configure</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%o</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-place</strong> <em>где</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>где</em> задает значение поля
|
|
|
|
|
<strong>place</strong> для события; может принимать значения
|
|
|
|
|
<strong>PlaceOnTop</strong> или
|
|
|
|
|
<strong>PlaceOnBottom</strong>. Имеет смысл для событий
|
|
|
|
|
<strong>Circulate</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%p</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-root</strong> <em>окно</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Аргумент <em>окно</em> задает поле <strong>root</strong> для
|
|
|
|
|
события либо в виде имени пути окна, либо в виде
|
|
|
|
|
целочисленного идентификатора окна. Имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong> и
|
|
|
|
|
<strong>Motion</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%R</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-rootx</strong> <em>коорд</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>коорд</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>x_root</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong> и
|
|
|
|
|
<strong>Motion</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%X</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-rooty</strong> <em>коорд</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>коорд</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>y_root</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong> и
|
|
|
|
|
<strong>Motion</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%Y</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-sendevent</strong> <em>булевское</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Значение параметра <em>булевское</em> должно быть булевским;
|
|
|
|
|
он задает значение поля <strong>send_event</strong> для
|
|
|
|
|
события. Имеет смысл для всех событий. Параметр соответствует
|
|
|
|
|
подстановке <strong>%E</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-serial</strong> <em>число</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Значение параметра должно быть целым числом; задает значение
|
|
|
|
|
поля <strong>serial</strong> для события. Имеет смысл
|
|
|
|
|
для всех событий. Параметр соответствует подстановке
|
|
|
|
|
<strong>%#</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-state</strong> <em>состояние</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр задает значение поля <strong>state</strong> для
|
|
|
|
|
события. Для событий <strong>KeyPress</strong>,
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyRelease</strong>, <strong>ButtonPress</strong>,
|
|
|
|
|
<strong>ButtonRelease</strong>, <strong>Enter</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Leave</strong> и <strong>Motion</strong> значение
|
|
|
|
|
параметра должно быть целым. Для событий
|
|
|
|
|
<strong>Visibility</strong> параметр может принимать одно из
|
|
|
|
|
значений <strong>VisibilityUnobscured</strong>,
|
|
|
|
|
<strong>VisibilityPartiallyObscured</strong> или
|
|
|
|
|
<strong>VisibilityFullyObscured</strong>. Этот параметр
|
|
|
|
|
подавляет любые модификаторы, например, <strong>Meta</strong>
|
|
|
|
|
или <strong>Control</strong>, указанные в основном
|
|
|
|
|
событии. Параметр соответствует подстановке
|
|
|
|
|
<strong>%s</strong> для скриптов привязки.</dd>
|
|
|
|
|
|
|
|
|
|
<dt> <strong>-subwindow</strong> <em>окно</em></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Аргумент <em>окно</em> задает поле
|
|
|
|
|
<strong>subwindow</strong> для события либо в виде имени пути
|
|
|
|
|
примитива event, либо в виде целочисленного идентификатора
|
|
|
|
|
окна. Имеет смысл для событий <strong>KeyPress</strong>,
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyRelease</strong>, <strong>ButtonPress</strong>,
|
|
|
|
|
<strong>ButtonRelease</strong>, <strong>Enter</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Leave</strong> и <strong>Motion</strong>. Аналогичен
|
|
|
|
|
подстановке <strong>%S</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-time</strong> <em>целое</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр должен иметь целое значение; задает значение поля
|
|
|
|
|
<strong>time</strong> для события. Имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Motion</strong> и <strong>Property</strong>. Параметр
|
|
|
|
|
соответствует подстановке <strong>%t</strong> для скриптов
|
|
|
|
|
привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <strong>-width</strong> <em>размер</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>размер</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>width</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
|
|
|
|
<strong>Configure</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%w</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>-when</strong> <em>когда</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd><p>Параметр <em>когда</em> задает момент обработки события;
|
|
|
|
|
должен принимать одно из следующих значений:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>now</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Событие обрабатывается немедленно, до завершения
|
|
|
|
|
выполнения команды. То же самое происходит и в случае,
|
|
|
|
|
если параметр <strong>-when</strong> опущен.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>tail</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Устанавливает событие в очередь событий Tcl вслед за
|
|
|
|
|
всеми стоящими в этой очереди событиями данного
|
|
|
|
|
приложения.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>head</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Устанавливает событие в начало очереди событий Tcl; оно
|
|
|
|
|
будет обработано перед остальными событиями, уже стоящими
|
|
|
|
|
в очереди.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>mark</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Устанавливает событие в начало очереди событий Tcl, но
|
|
|
|
|
вслед за всеми событиями, вставшими в очередь посредством
|
|
|
|
|
указания параметра <strong>-when</strong>. Такая
|
|
|
|
|
возможность полезна при генерации последовательности
|
|
|
|
|
событий, которые должны быть обработаны одно за другим, но
|
|
|
|
|
перед всеми событиями уже стоящими в очереди.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong><em>-x</em></strong> <em>коорд</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>коорд</em> представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>x</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong>,
|
|
|
|
|
<strong>Motion</strong>, <strong>Expose</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Configure</strong>, <strong>Gravity</strong> и
|
|
|
|
|
<strong>Reparent</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%x</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong><em>-y</em></strong> <em>коорд</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Параметр <em>коорд</em>представляет собой расстояние на
|
|
|
|
|
экране; задает значение поля <strong>y</strong>
|
|
|
|
|
события. Параметр имеет смысл для событий
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
|
|
|
|
|
<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
|
|
|
|
|
<strong>Enter</strong>, <strong>Leave</strong>,
|
|
|
|
|
<strong>Motion</strong>, <strong>Expose</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>Configure</strong>, <strong>Gravity</strong> и
|
|
|
|
|
<strong>Reparent</strong>. Параметр соответствует подстановке
|
|
|
|
|
<strong>%y</strong> для скриптов привязки.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Значением всякого параметра, не указанного при генерации
|
|
|
|
|
события, становится 0, за исключением параметра
|
|
|
|
|
<strong>serial</strong>, которому присваивается серийный номер
|
|
|
|
|
очередного X события.</p>
|
|
|
|
|
|
|
|
|
|
<h2><a name=ПРИМЕРЫ_ВИРТУАЛЬНЫХ_СОБЫТИЙ></a>ПРИМЕРЫ ВИРТУАЛЬНЫХ СОБЫТИЙ</h2>
|
|
|
|
|
|
|
|
|
|
<p>Для обращения к привязке к виртуальному событию необходимо
|
|
|
|
|
выполнение двух условий. Во-первых, это виртуальное событие
|
|
|
|
|
должно быть определено командой <strong>event
|
|
|
|
|
add</strong>. Во-вторых, к этому виртуальному событию должна
|
|
|
|
|
быть создана привязка с помощью команды <a href=
|
|
|
|
|
bind.html><strong>bind</strong></a>.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Рассмотрим следующие определения виртуальных событий:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
event add <<Paste>> <Control-y>
|
|
|
|
|
event add <<Paste>><Button-2>
|
|
|
|
|
event add <<Save>> <Control-X><Control-S>
|
|
|
|
|
event add <<Save>> <Shift-F12>
|
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>В команде <strong>bind</strong> привязка к виртуальным событиям
|
|
|
|
|
осуществляется так же, как и ко встроенным типам событий:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
bind Entry <<Paste>> {%W insert[selection get]}
|
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Двойные угловые скобки показывают, что выполняется привязка к
|
|
|
|
|
виртуальному событию. При нажатии клавиш
|
|
|
|
|
<strong>Control-y</strong> или кнопки 2 .Мыши. или при
|
|
|
|
|
синтезировании виртуального события
|
|
|
|
|
<strong><<Paste>></strong> командой <strong>event
|
|
|
|
|
generate</strong> будет выполнена привязка
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong><<Paste>></strong>.</p>
|
|
|
|
|
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если последовательность в виртуальном событии в точности
|
|
|
|
|
совпадает с последовательностью в другом физическом событии, то
|
|
|
|
|
преимуществом пользуется физическое событие. Рассмотрим
|
|
|
|
|
следующий пример:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
event add <<Paste>> <Control-y> <Meta-Control-y>
|
|
|
|
|
bind Entry <Control-y> {puts Control-y}
|
|
|
|
|
bind Entry <<Paste>> {puts Paste}
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>При нажатии на клавиши <strong>Control-y</strong> будет
|
|
|
|
|
выполнена привязка <strong><Control-y></strong>, так как
|
|
|
|
|
физическое событие считается более конкретным, чем виртуальное,
|
|
|
|
|
а в остальном все одинаково. Однако при нажатии клавиш
|
|
|
|
|
<strong>Meta-Control-y</strong> будет выполнена привязка
|
|
|
|
|
<strong><<Paste>></strong>, так как модификатор
|
|
|
|
|
<strong>Meta</strong> в физическом образце, связанном с
|
|
|
|
|
виртуальной привязкой, более конкретен, чем последовательность
|
|
|
|
|
<<strong>Control-y</strong>> для физического события.</p>
|
|
|
|
|
|
|
|
|
|
<p>Привязки к виртуальному событию можно создавать и до
|
|
|
|
|
определения самого события. На самом деле определение
|
|
|
|
|
виртуального события не является необходимым, например, на
|
|
|
|
|
платформах, где конкретное виртуальное событие может оказаться
|
|
|
|
|
бессмысленным или не генерируемым.</p>
|
|
|
|
|
|
|
|
|
|
<p>При изменении определения виртуального события в процессе
|
|
|
|
|
выполнения все окна немедленно переключаются на новое
|
|
|
|
|
определение. Если, в условиях предыдущего примера, выполнить
|
|
|
|
|
команды</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
bind <Entry> <Control-y> {}
|
|
|
|
|
event add <<Paste>> <Key-F6>
|
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>то поведение события изменится в двух направлениях. Во-первых,
|
|
|
|
|
всплывет подавленная привязка
|
|
|
|
|
<strong><<Paste>></strong>. Нажатие на клавиши
|
|
|
|
|
<strong>Control-y</strong> приведет теперь не к выполнению
|
|
|
|
|
привязки <strong><Control-y></strong>, а к выполнению
|
|
|
|
|
виртуального события <strong><<Paste>></strong>.
|
|
|
|
|
Во-вторых, нажатие на клавишу <strong>F6</strong> также приведет
|
|
|
|
|
к выполнению привязки <strong><<Paste>></strong>.
|
|
|
|
|
|
|
|
|
|
<p>Если <em>последовательность</em> не связана с данным
|
|
|
|
|
<em>виртуальным</em> событием в текущий момент, то она
|
|
|
|
|
игнорируется. Если аргумент <em>последовательность</em>
|
|
|
|
|
отсутствует, то из списка удаляются все последовательности
|
|
|
|
|
физических событий и данное <em>виртуальное</em> событие не
|
|
|
|
|
может быть более осуществлено.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>event generate</strong> <em>окно событие параметр значение параметр значение ...</em>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Генерирует событие в окне и обеспечивает его обработку таким
|
|
|
|
|
образом, как если бы оно поступило из менеджера окон. Аргумент
|
|
|
|
|
<em>окно</em> задает имя пути окна, в котором будет
|
|
|
|
|
генерироваться событие; его значением может быть и идентификатор
|
|
|
|
|
окна (такой же, какой служит результатом команды <strong>winfo
|
|
|
|
|
id</strong>), если он относится к окну в текущем
|
|
|
|
|
приложении. Аргумент <em>событие</em> задает описание события,
|
|
|
|
|
например, в виде <<strong>Shift-Button-2</strong>> или
|
|
|
|
|
<<<strong>Paste</strong>>>. Аргумент
|
|
|
|
|
<em>событие</em> может принимать любое значение, допустимое для
|
|
|
|
|
аргумента <em>последовательность</em> команды
|
|
|
|
|
<strong>bind</strong>, за исключением того, что он должен
|
|
|
|
|
состоять из одного, а не из нескольких событий. Пары
|
|
|
|
|
<em>параметр-значение</em> можно использовать для установки
|
|
|
|
|
значений дополнительных параметров события, например, координат
|
|
|
|
|
курсора "Мыши" ниже (см. "<a
|
|
|
|
|
href=event.html#ПОЛЯ_СОБЫТИЯ>ПОЛЯ СОБЫТИЯ</a>"). Если
|
|
|
|
|
параметр <strong>-when</strong> не задан, то событие
|
|
|
|
|
обрабатывается немедленно; все программы обработки события будут
|
|
|
|
|
выполнены до завершения команды <strong>event
|
|
|
|
|
generate</strong>. В противном случае момент обработки
|
|
|
|
|
определяется значением параметра <strong>-when</strong>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>event info</strong> <<<em>виртуальное</em>>>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Возвращает информацию о виртуальных событиях. Если аргумент
|
|
|
|
|
<strong><<</strong><em>виртуальное</em><strong>>></strong>
|
|
|
|
|
опущен, то возвращается список всех виртуальных событий,
|
|
|
|
|
определенных в текущий момент. Если аргумент
|
|
|
|
|
<strong><<</strong><em>виртуальное</em><strong>>></strong>
|
|
|
|
|
задан, то возвращаемое значение представляет собой список,
|
|
|
|
|
элементы которого являются последовательностями физических
|
|
|
|
|
событий, связанными с данным виртуальным событием; если
|
|
|
|
|
указанное виртуальное событие не определено, то команда
|
|
|
|
|
возвращает пустую строку.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|