127 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>focus</title>
 | ||
|   </head>
 | ||
|   <body>
 | ||
|     <h1>focus</h1>
 | ||
|       
 | ||
|       <p>Управление фокусом ввода.</p>
 | ||
| 
 | ||
| 
 | ||
|     <h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>focus</strong>
 | ||
|       <strong>focus</strong> <em>окно</em>
 | ||
|       <strong>focus</strong> <em>параметр арг арг ...</em>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
 | ||
| 
 | ||
|     <p>Команда <strong>focus</strong> используется для управления
 | ||
|       фокусом ввода Tk. В любой момент времени одно из окон на каждом
 | ||
|       экране находится в фокусе ввода; всякое событие нажатия или
 | ||
|       отпускания клавиши интерпретируются в этом окне. Обычно
 | ||
|       переключение фокуса между окнами верхнего уровня на экране
 | ||
|       осуществляется менеджером окон. Например, некоторые менеджеры
 | ||
|       окон автоматически переключают фокус на окно верхнего уровня,
 | ||
|       как только на него попадает курсор Мыши; другие устанавливают
 | ||
|       фокус только при щелчке на окне. Обычно менеджер окон
 | ||
|       устанавливает фокус только на окнах верхнего уровня, а
 | ||
|       переключением фокуса между подчиненными окнами занимается
 | ||
|       конкретное приложение.</p>
 | ||
| 
 | ||
|     <p>Для каждого верхнего уровня Tk запоминает одно окно в фокусе
 | ||
|       (последнего наследника данного верхнего уровня, в которое попал
 | ||
|       фокус); когда менеджер окон переключает фокус на данный верхний
 | ||
|       уровень, Tk автоматически устанавливает его на запомненное
 | ||
|       окно. Внутри конкретного верхнего уровня Tk использует явное
 | ||
|       моделирование фокуса по умолчанию. Обычно перемещение курсора
 | ||
|       "Мыши" без изменения верхнего уровня не приводит к переключению
 | ||
|       фокуса; переключение происходит, лишь если его запросил примитив
 | ||
|       (например, в результате щелчка по кнопке "Мыши" ) или если
 | ||
|       пользователь нажал, например, клавишу <strong>Tab</strong>.
 | ||
|     </p>
 | ||
| 
 | ||
|     <p>Неявная модель фокусировки создается процедурой <strong>Tcl
 | ||
|       tk_focusFollowsMouse;</strong> она меняет параметры конфигурации
 | ||
|       Tk таким образом, чтобы фокус устанавливался на окно при
 | ||
|       попадании на него курсора "Мыши".Процедуры
 | ||
|       <strong>Tcl</strong> <strong>tk_focusNext</strong> и
 | ||
|       <strong>tk_focusPrev</strong> устанавливают порядок переключения фокуса
 | ||
|       между окнами верхнего уровня. Эти процедуры определяют, помимо
 | ||
|       прочего, привязки по умолчанию к клавишам <strong>Tab</strong> и
 | ||
|       <strong>Shift-Tab</strong>.</p>
 | ||
| 
 | ||
|     <p>Команда <strong>focus</strong> может принимать одну из
 | ||
|       следующих форм:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
| 
 | ||
|       <dt> <strong>focus</strong></dt>
 | ||
| 
 | ||
|       <dd>Возвращает имя пути окна в фокусе на дисплее, содержащем
 | ||
| 	главное окно приложения, или пустую строку, если никакое окно
 | ||
| 	данного приложения не находится в фокусе. Замечание: дисплей
 | ||
| 	лучше указать явно с помощью параметра
 | ||
| 	<strong>-displayof</strong> (см.ниже); в этом случае команда
 | ||
| 	сможет работать и в приложениях, использующих несколько
 | ||
| 	дисплеев.</dd>
 | ||
| 
 | ||
|       <dt><strong>focus</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Если одно из окон данного приложения находится в фокусе на
 | ||
| 	дисплее окна, то команда устанавливает фокус ввода на
 | ||
| 	<em>окно</em> и возвращает пустую строку. Если же у приложения
 | ||
| 	не было фокуса ввода на дисплее окна, то окно будет запомнено
 | ||
| 	как окно в фокусе для данного верхнего уровня. При попадании
 | ||
| 	фокуса на данный верхний уровень в очередной раз Tk установит
 | ||
| 	его на окно. Если аргументом является пустая строка, то
 | ||
| 	команда не выполняет никаких действий.</dd>
 | ||
| 
 | ||
|       <dt> <strong>focus -displayof</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Возвращает имя <em>окна</em> в фокусе на дисплее, содержащем
 | ||
| 	окно. Если <em>окно</em> в фокусе на дисплее окна не
 | ||
| 	принадлежит данному приложению, то команда возвращает пустую
 | ||
| 	строку.</dd>
 | ||
| 
 | ||
|       <dt> <strong>focus -force</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Устанавливает <em>окно</em> в фокус на дисплее окна, даже
 | ||
| 	если у приложения нет фокуса ввода на этом дисплее. Эту
 | ||
| 	команду следует использовать экономно или отказаться от его
 | ||
| 	использования совсем. Обычно приложение не должно запрашивать
 | ||
| 	для себя фокус самостоятельно, дожидаясь пока на него не
 | ||
| 	переключит фокус менеджер окон. Если аргументом является
 | ||
| 	пустая строка, то команда не выполняет никаких действий.</dd>
 | ||
| 
 | ||
|       <dt> <strong>focus -lastfor</strong> <em>окно</em></dt>
 | ||
| 
 | ||
|       <dd>Возвращает имя <em>окна</em> , последним получившим фокус
 | ||
| 	ввода среди всех окон того же верхнего уровня, что и
 | ||
| 	окно. Если ни на какое из окон данного верхнего уровня фокус
 | ||
| 	не устанавливался или если окно, на которое фокус
 | ||
| 	устанавливался последним, удалено, то команда возвращает имя
 | ||
| 	верхнего уровня. Возвращаемое значение является именем окна,
 | ||
| 	на котором будет установлен фокус ввода при следующей передаче
 | ||
| 	фокуса на данный верхний уровень менеджером окна.</dd>
 | ||
|     </dl>
 | ||
|     
 | ||
|     <h2><a name=ОСОБЕННОСТИ_РЕАЛИЗАЦИИ></a>ОСОБЕННОСТИ РЕАЛИЗАЦИИ</h2>
 | ||
| 
 | ||
|     <p>При получении фокуса ввода внутренним окном Tk фактически не
 | ||
|       устанавливает X фокус на это окно. X ведет себя таким образом,
 | ||
|       что фокус сохранится на окне верхнего уровня, которому
 | ||
|       подчиняется окно с фокусом. Однако Tk создает события FocusIn и
 | ||
|       FocusOut в точности, как если бы X фокус был на внутреннем
 | ||
|       окне. Такой подход порождает ряд трудностей при фактическом
 | ||
|       переключении X фокуса; то, что X фокус установлен на данный
 | ||
|       верхний уровень, незаметно, если не запрашивать X сервер
 | ||
|       непосредственно из C программы.
 | ||
|     </p>
 | ||
|   </body>
 | ||
| </html>
 | ||
| 
 | 
