527 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			527 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>event</title>
 | ||
|   </head>
 | ||
|   <body>
 | ||
| 
 | ||
|     <h1>event</h1>
 | ||
| 
 | ||
|     <p>Определение виртуальных событий и генерация событий</p>
 | ||
| 
 | ||
|     <h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>event</strong> <em>параметр</em> ?<em>арг арг ...</em>?
 | ||
|     </pre>
 | ||
| 
 | ||
|     <h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
 | ||
| 
 | ||
|     <p>Команда <strong>event</strong> обеспечивает различные
 | ||
|       возможности работы с событиями, включая определение виртуальных
 | ||
|       событий и синтезирование событий. У команды есть несколько
 | ||
|       различных форм, которые задаются первым аргументом. В настоящее
 | ||
|       время поддерживаются следующие формы команды:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <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>
 | ||
| 
 | ||
|       <dt><strong>event delete</strong>
 | ||
| 	<<<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>
 | ||
| 
 | ||
|       <dt> <strong>event info</strong>
 | ||
| 	?<<<em>виртуальное</em>>>?</dt>
 | ||
| 
 | ||
|       <dd>Возвращает информацию о виртуальных событиях. Если аргумент
 | ||
| 	<<<em>виртуальное</em>>> опущен, то возвращается
 | ||
| 	список всех виртуальных событий, определенных в текущий
 | ||
| 	момент. Если аргумент <<<em>виртуальное</em>>>
 | ||
| 	задан, то возвращаемое значение представляет собой список,
 | ||
| 	элементы которого являются последовательностями физических
 | ||
| 	событий, связанными с данным виртуальным событием; если
 | ||
| 	указанное виртуальное событие не определено, то команда
 | ||
| 	возвращает пустую строку.</dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|     <h2><a name=ПОЛЯ_СОБЫТИЯ></a>ПОЛЯ СОБЫТИЯ</h2>
 | ||
| 
 | ||
|     <p>Команда <strong>event generate</strong> поддерживает следующие
 | ||
|       параметры, которые соответствуют расширению <strong>%</strong> в
 | ||
|       скриптах привязки для команды <a
 | ||
|       href=bind.html><strong>bind</strong></a>.</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>-above</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Аргумент <em>окно</em> задает поле
 | ||
| 	<strong>above</strong> для события либо в виде имени
 | ||
| 	пути окна либо в виде целочисленного идентификатора
 | ||
| 	окна. Параметр имеет смысл для событий
 | ||
| 	<strong>Configure</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%a</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-borderwidth</strong> <em>размер</em></dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>размер</em> представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>border_width</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>Configure</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%B</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-button</strong> <em>число</em></dt>
 | ||
| 
 | ||
|       <dd>Значением параметра <em>число</em> должно быть целое число;
 | ||
| 	задает значение поля <em>detail</em> для события
 | ||
| 	<strong>ButtonPress</strong> или
 | ||
| 	<strong>ButtonRelease</strong>, подавляя номер кнопки,
 | ||
| 	задаваемый параметром события <strong>base</strong>. Параметр
 | ||
| 	соответствует подстановке <strong>%b</strong> для скриптов
 | ||
| 	привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-count</strong> <em>число</em></dt>
 | ||
| 
 | ||
|       <dd>Значением параметра <em>число</em> должно быть целое число;
 | ||
| 	задает значение поля <strong>count</strong> для
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>Expose</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%c</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-detail</strong> <em>детальность</em></dt>
 | ||
| 
 | ||
|       <dd><p>Параметр задает значение поля <strong>detail</strong> для
 | ||
| 	  события и может принимать следующие значения:</p>
 | ||
| 
 | ||
| 	<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>
 | ||
| 
 | ||
| 	<p>Имеет смысл для событий <strong>Enter</strong>,
 | ||
| 	  <strong>Leave</strong>, <strong>FocusIn</strong> и
 | ||
| 	  <strong>FocusOut</strong>. Параметр соответствует
 | ||
| 	  подстановке <strong>%d</strong> для скриптов привязки.</p>
 | ||
|       </dd>
 | ||
| 
 | ||
|       <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>. Имеет смысл для событий
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong>,
 | ||
| 	<strong>FocusIn</strong> и <strong>FocusOut</strong>. Параметр
 | ||
| 	соответствует подстановке <strong>%m</strong> для скриптов
 | ||
| 	привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-override</strong> <em>булевское</em></dt>
 | ||
| 
 | ||
|       <dd>Значение параметра <em>булевское</em> должно быть булевским;
 | ||
| 	он задает значение поля <strong>override_redirect</strong> для
 | ||
| 	события. Имеет смысл для событий <strong>Map</strong>,
 | ||
| 	<strong>Reparent</strong> и
 | ||
| 	<strong>Configure</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%o</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt> <strong>-place</strong> <em>где</em> </dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>где</em> задает значение поля
 | ||
| 	<strong>place</strong> для события; может принимать значения
 | ||
| 	<strong>PlaceOnTop</strong> или
 | ||
| 	<strong>PlaceOnBottom</strong>. Имеет смысл для событий
 | ||
| 	<strong>Circulate</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%p</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-root</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Аргумент <em>окно</em> задает поле <strong>root</strong> для
 | ||
| 	события либо в виде имени пути окна, либо в виде
 | ||
| 	целочисленного идентификатора окна. Имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong> и
 | ||
| 	<strong>Motion</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%R</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt> <strong>-rootx</strong> <em>коорд</em> </dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>коорд</em> представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>x_root</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong> и
 | ||
| 	<strong>Motion</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%X</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-rooty</strong> <em>коорд</em></dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>коорд</em> представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>y_root</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong> и
 | ||
| 	<strong>Motion</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%Y</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-sendevent</strong> <em>булевское</em></dt>
 | ||
| 
 | ||
|       <dd>Значение параметра <em>булевское</em> должно быть булевским;
 | ||
| 	он задает значение поля <strong>send_event</strong> для
 | ||
| 	события. Имеет смысл для всех событий. Параметр соответствует
 | ||
| 	подстановке <strong>%E</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt> <strong>-serial</strong> <em>число</em> </dt>
 | ||
| 
 | ||
|       <dd>Значение параметра должно быть целым числом; задает значение
 | ||
| 	поля <strong>serial</strong> для события. Имеет смысл
 | ||
| 	для всех событий. Параметр соответствует подстановке
 | ||
| 	<strong>%#</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt> <strong>-state</strong> <em>состояние</em></dt>
 | ||
| 
 | ||
|       <dd>Параметр задает значение поля <strong>state</strong> для
 | ||
| 	события. Для событий <strong>KeyPress</strong>,
 | ||
| 	<strong>KeyRelease</strong>, <strong>ButtonPress</strong>,
 | ||
| 	<strong>ButtonRelease</strong>, <strong>Enter</strong>,
 | ||
| 	<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>,
 | ||
| 	<strong>KeyRelease</strong>, <strong>ButtonPress</strong>,
 | ||
| 	<strong>ButtonRelease</strong>, <strong>Enter</strong>,
 | ||
| 	<strong>Leave</strong> и <strong>Motion</strong>. Аналогичен
 | ||
| 	подстановке <strong>%S</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-time</strong> <em>целое</em></dt>
 | ||
| 
 | ||
|       <dd>Параметр должен иметь целое значение; задает значение поля
 | ||
| 	<strong>time</strong> для события. Имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong>,
 | ||
| 	<strong>Motion</strong> и <strong>Property</strong>. Параметр
 | ||
| 	соответствует подстановке <strong>%t</strong> для скриптов
 | ||
| 	привязки.</dd>
 | ||
| 
 | ||
|       <dt> <strong>-width</strong> <em>размер</em> </dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>размер</em> представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>width</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>Configure</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%w</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong>-when</strong> <em>когда</em></dt>
 | ||
| 
 | ||
|       <dd><p>Параметр <em>когда</em> задает момент обработки события;
 | ||
| 	  должен принимать одно из следующих значений:</p>
 | ||
| 	<dl>
 | ||
| 	  <dt><strong>now</strong></dt>
 | ||
| 
 | ||
| 	  <dd>Событие обрабатывается немедленно, до завершения
 | ||
| 	    выполнения команды. То же самое происходит и в случае,
 | ||
| 	    если параметр <strong>-when</strong> опущен.</dd>
 | ||
| 
 | ||
| 	  <dt><strong>tail</strong></dt>
 | ||
| 
 | ||
| 	  <dd> Устанавливает событие в очередь событий Tcl вслед за
 | ||
| 	    всеми стоящими в этой очереди событиями данного
 | ||
| 	    приложения.</dd>
 | ||
| 
 | ||
| 	  <dt><strong>head</strong></dt>
 | ||
| 
 | ||
| 	  <dd> Устанавливает событие в начало очереди событий Tcl; оно
 | ||
| 	    будет обработано перед остальными событиями, уже стоящими
 | ||
| 	    в очереди.</dd>
 | ||
| 
 | ||
| 	  <dt><strong>mark</strong></dt>
 | ||
| 
 | ||
| 	  <dd>Устанавливает событие в начало очереди событий Tcl, но
 | ||
| 	    вслед за всеми событиями, вставшими в очередь посредством
 | ||
| 	    указания параметра <strong>-when</strong>. Такая
 | ||
| 	    возможность полезна при генерации последовательности
 | ||
| 	    событий, которые должны быть обработаны одно за другим, но
 | ||
| 	    перед всеми событиями уже стоящими в очереди.</dd>
 | ||
| 	</dl>
 | ||
|       </dd>
 | ||
| 
 | ||
|       <dt><strong><em>-x</em></strong> <em>коорд</em> </dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>коорд</em> представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>x</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong>,
 | ||
| 	<strong>Motion</strong>, <strong>Expose</strong>,
 | ||
| 	<strong>Configure</strong>, <strong>Gravity</strong> и
 | ||
| 	<strong>Reparent</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%x</strong> для скриптов привязки.</dd>
 | ||
| 
 | ||
|       <dt><strong><em>-y</em></strong> <em>коорд</em></dt>
 | ||
| 
 | ||
|       <dd>Параметр <em>коорд</em>представляет собой расстояние на
 | ||
| 	экране; задает значение поля <strong>y</strong>
 | ||
| 	события. Параметр имеет смысл для событий
 | ||
| 	<strong>KeyPress</strong>, <strong>KeyRelease</strong>,
 | ||
| 	<strong>ButtonPress</strong>, <strong>ButtonRelease</strong>,
 | ||
| 	<strong>Enter</strong>, <strong>Leave</strong>,
 | ||
| 	<strong>Motion</strong>, <strong>Expose</strong>,
 | ||
| 	<strong>Configure</strong>, <strong>Gravity</strong> и
 | ||
| 	<strong>Reparent</strong>. Параметр соответствует подстановке
 | ||
| 	<strong>%y</strong> для скриптов привязки.</dd>
 | ||
|     </dl>
 | ||
|     
 | ||
|     <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>
 | ||
|     
 | ||
|     <p>Рассмотрим следующие определения виртуальных событий:</p>
 | ||
| 
 | ||
|     <pre>
 | ||
|       event add <<Paste>> <Control-y>
 | ||
|       event add <<Paste>><Button-2>
 | ||
|       event add <<Save>> <Control-X><Control-S>
 | ||
|       event add <<Save>> <Shift-F12>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <p>В команде <strong>bind</strong> привязка к виртуальным событиям
 | ||
|       осуществляется так же, как и ко встроенным типам событий:</p>
 | ||
| 
 | ||
|     <pre>
 | ||
|       bind Entry <<Paste>> {%W insert[selection get]}
 | ||
|     </pre>
 | ||
| 
 | ||
|     <p>Двойные угловые скобки показывают, что выполняется привязка к
 | ||
|       виртуальному событию. При нажатии клавиш
 | ||
|       <strong>Control-y</strong> или кнопки 2 .Мыши. или при
 | ||
|       синтезировании виртуального события
 | ||
|       <strong><<Paste>></strong> командой <strong>event
 | ||
|       generate</strong> будет выполнена привязка
 | ||
|       <strong><<Paste>></strong>.</p>
 | ||
|     
 | ||
| 
 | ||
|     <p>Если последовательность в виртуальном событии в точности
 | ||
|       совпадает с последовательностью в другом физическом событии, то
 | ||
|       преимуществом пользуется физическое событие. Рассмотрим
 | ||
|       следующий пример:</p>
 | ||
| 
 | ||
|     <p>
 | ||
|       event add <<Paste>> <Control-y> <Meta-Control-y>
 | ||
|       bind Entry <Control-y> {puts Control-y}
 | ||
|       bind Entry <<Paste>> {puts Paste}
 | ||
| 
 | ||
|     <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>
 | ||
| 
 | ||
|     <pre>
 | ||
|       bind <Entry> <Control-y> {}
 | ||
|       event add <<Paste>> <Key-F6>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <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>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>event generate</strong> <em>окно событие параметр значение параметр значение ...</em>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <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>.
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>event info</strong> <<<em>виртуальное</em>>>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <p>Возвращает информацию о виртуальных событиях. Если аргумент
 | ||
|       <strong><<</strong><em>виртуальное</em><strong>>></strong>
 | ||
|       опущен, то возвращается список всех виртуальных событий,
 | ||
|       определенных в текущий момент. Если аргумент
 | ||
|       <strong><<</strong><em>виртуальное</em><strong>>></strong>
 | ||
|       задан, то возвращаемое значение представляет собой список,
 | ||
|       элементы которого являются последовательностями физических
 | ||
|       событий, связанными с данным виртуальным событием; если
 | ||
|       указанное виртуальное событие не определено, то команда
 | ||
|       возвращает пустую строку.</p>
 | ||
|   </body>
 | ||
| </html>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | 
