527 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			527 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
 | ||
| <html>
 | ||
| <head>
 | ||
| <title>Wm</title>
 | ||
| </head>
 | ||
| <body>
 | ||
| <center><h1>Wm</h1></center>
 | ||
| <p>Команда взаимодействия с менеджером окон.</p>
 | ||
| 
 | ||
| <p><ul>
 | ||
| <li><a href="Wm.html#СИНТАКСИС">Синтаксис</a></li>
 | ||
| <li><a href="Wm.html#ОПИСАНИЕ">Описание</a></li>
 | ||
| <li><a href="Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ">Управление геометрией</a></li>
 | ||
| <li><a href="Wm.html#УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ">Управление окнами с сеткой</a></li>
 | ||
| <li><a href="Wm.html#ОШИБКИ">Ошибки</a></li>
 | ||
| </ul>
 | ||
| 
 | ||
| <p><a name="СИНТАКСИС"></a><b>СИНТАКСИС</b> 
 | ||
| 
 | ||
| <dl>
 | ||
| <dt><b>wm</b> <i>option window ?args?</i></dt>
 | ||
| </dl>
 | ||
| 
 | ||
| <p><a name="ОПИСАНИЕ"></a><b>ОПИСАНИЕ</b>
 | ||
| 
 | ||
| Команда <b>wm</b> предназначена для 
 | ||
| взаимодействия с менеджером окон и обеспечивает таким образом 
 | ||
| управление такими атрибутами окон, как заголовок, размеры и 
 | ||
| размещение, возможность изменять размер. Команда имеет несколько 
 | ||
| форм в зависимости от используемых опций. Во всех формах команда 
 | ||
| предполагает наличие по крайней мере одного аргумента имени toplevel окна.
 | ||
| 
 | ||
| <p>Ниже перечислены возможные формы команды.
 | ||
| <dl>
 | ||
| <dt><b>wm aspect</b> <i>window minNumer minDenom maxNumer maxDenom</i></dt>
 | ||
| 
 | ||
| <dt><p>Если аргументы <i>minNumer, minDenom, maxNume</i> и <i>maxDenom</i> 
 | ||
| заданы, они передаются менеджеру 
 | ||
| окон, который использует их для определения допустимых пропорций 
 | ||
| окна. Пропорции (отношение ширина высота) могут быть в диапазоне 
 | ||
| от <i>minNumer/minDenom</i> до <i>maxNumer/maxDenom</i>. Если 
 | ||
| аргументы <i>minNumer</i> и т.д. определены как пустые строки, то 
 | ||
| существующие ограничения на пропорции отменяются. Если аргументы 
 | ||
| <i>minNumer</i> и т.д. заданы, то команда возвращает пустое 
 | ||
| значение. В противном случае она возвращает список из четырех 
 | ||
| элементов текущих значений <i>minNumer, minDenom, maxNumer</i>, и <i>maxDenom</i> 
 | ||
| (если ограничения не заданы, возвращается пустая строка).
 | ||
| </dt>
 | ||
| <dt><p><b>wm client</b> <i>window name</i></dt>
 | ||
| 
 | ||
| <dt><p><div>Если имя <i>name</i> указано (<i>name</i> должно 
 | ||
| быть именем компьютера, на котором исполняется приложение), то 
 | ||
| оно сохраняется в свойстве окна <b>WM_CLIENT_MACHINE</b> и может 
 | ||
| использоваться менеджером окон или менеджером сессий. В этом 
 | ||
| случае команда возвращает пустую строку. Если аргумент 
 | ||
| <i>name</i> не задан, команда возвращает последнее установленное 
 | ||
| ранее значение свойства. Если аргумент <i>name</i> определен как 
 | ||
| пустая строка, свойство окна <b>WM_CLIENT_MACHINE</b> удаляется.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm colormapwindows</b> <i>window ?windowList?</i></dt>
 | ||
| 
 | ||
| <dt><p>Эта команда используется для управления свойством 
 | ||
| <b>WM_COLORMAP_WINDOWS</b>, которое обеспечивает менеджер окон 
 | ||
| информацией об окнах, имеющих собственную палитру. Если аргумент 
 | ||
| <i>windowList</i>не задан, команда возвращает список окон, 
 | ||
| имеющих собственную палитру. Если аргумент задан, он представляет 
 | ||
| собой список полных имен окон. Команда изменяет старое значение 
 | ||
| свойства на новое и возвращает пустую строку. Список окон 
 | ||
| перечисляет внутренние окна, палитра которых отличается от 
 | ||
| палитры их логических предков. Порядок, в котором перечислены 
 | ||
| окна, указывает порядок, в котором менеджер окон просматривает 
 | ||
| окна, пытаясь разместить новые цвета в палитре. Не указанные в 
 | ||
| списке окна обрабатываются в последнюю очередь. Если команда не 
 | ||
| использовалась, Tk автоматически устанавливает свойство для 
 | ||
| каждого toplevel окна. В списке перечисляются все его внутренние 
 | ||
| окна, имеющие собственную палитру, в случайном порядке. В конце 
 | ||
| списка указывается само toplevel окно. Более подробно свойство 
 | ||
| <b>WM_COLORMAP_WINDOWS</b> описано в (1).</dt>
 | ||
| 
 | ||
| <dt><p><b>wm command</b> <i>window value</i></dt>
 | ||
| 
 | ||
| <dt><p>Если аргумент <i>value</i> задан, команда 
 | ||
| сохраняет его значение в свойстве окна <b>WM_COMMAND</b>, которое 
 | ||
| используется менеджером окон или менеджером сессий. В этом случае 
 | ||
| команда возвращает пустую строку. Аргумент <i>value</i> должен 
 | ||
| содержать список, элементы которого являются словами команды, 
 | ||
| используемой для запуска приложения (см. также <b>wmuse</b><b>).</b></dt>
 | ||
| 
 | ||
| <dt><p>Если аргумент <i>value</i> не задан, команда возвращает последнее 
 | ||
| установленное ранее значение свойства. Если аргумент <i>name</i> 
 | ||
| определен как пустая строка, свойство окна <b>WM_COMMAND</b> 
 | ||
| удаляется.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm deiconify</b> <i>window</i></p></dt>
 | ||
| 
 | ||
| <dt><p>Заставляет окно появиться на экране в нормальном
 | ||
| виде (а не в виде иконки, например,). Если окно ранее не
 | ||
| появлялось на экране, выполнение команды не приведет к его
 | ||
| появлению, но она гарантирует, что если в будущем окно появится,
 | ||
| оно появится в нормальном виде. Команда возвращает пустую
 | ||
| строку.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm focusmodel <i></i></b><i>window</i><b>active</b>|<b>passive</b></dt>
 | ||
| 
 | ||
| <dt><p>Если тип фокуса для (<b>active</b> или 
 | ||
| <b>passive</b>) окна указан в команде, он определяет какой тип 
 | ||
| фокуса будет использоваться. В этом случае команда возвращает 
 | ||
| пустую строку. Если тип фокуса не указан, команда возвращает 
 | ||
| текущее значение типа. Активный тип фокуса означает, что окно 
 | ||
| запрашивает фокус ввода себе или своим потомкам, даже если в этот 
 | ||
| момент фокус находится в другом приложении. Пассивный фокус 
 | ||
| означает, что окно не запрашивает фокус, а получает его от 
 | ||
| менеджера окон. Однако, после того, как окно или один из его 
 | ||
| потомков получил фокус, приложение может передать его другому 
 | ||
| потомку окна. По умолчанию устанавливает пассивный фокус.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm <i></i>frame</b> <i>window</i><dt>
 | ||
| 
 | ||
| <dt><p>Если окно заключено менеджером окон в 
 | ||
| декоративную рамку, команда возвращает идентификатор самой 
 | ||
| внешней рамки, которая содержит окно (окно, являющееся потомком 
 | ||
| корневого окна или виртуального корневого окна). Вид 
 | ||
| идентификатора зависит от платформы. Если окно не заключено в 
 | ||
| рамку, возвращается идентификатор окна, вид которого также 
 | ||
| зависит от платформы.</t>
 | ||
| 
 | ||
| <dt><p><b>wm geometry</b> <i>window newGeometry</i></dt>
 | ||
| 
 | ||
| <dt><p>Если задан аргумент <i>newGeometry</i>, размеры и размещение 
 | ||
| окна изменяются, а команда возвращает пустую строку. В противном 
 | ||
| случае возвращается последняя информация о размерах и размещении 
 | ||
| окна (независимо от того, была ли она задана путем изменения 
 | ||
| размеров окна вручную или с помощью команды <b>wm</b>). Аргумент 
 | ||
| <i>newGeometry</i> должен быть задан в следующем виде 
 | ||
| <i>=ширинаxвысота╠x╠y</i>, где любая из частей 
 | ||
| <i>=ширинаxвысота</i> или <i>╠x╠y</i> может быть опущена. Ширина 
 | ||
| и высота должны быть положительными целыми числами, задающими 
 | ||
| желаемый размер окна. Если для окна задана сетка  
 | ||
| (см. .<a href="Wm.html#УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ">Управление окнами с 
 | ||
| сеткой</a>.), размеры указываются в шагах сетки. В противном 
 | ||
| случае размеры указываются в пикселях. <i>X</i> и Y определяют 
 | ||
| желаемое размещение окна на экране в пикселях. Если перед 
 | ||
| <i>x</i> стоит .<i>+.,</i> то величина <i>x</i> определяет 
 | ||
| расстояние от левого края экрана до левого края окна, в противном 
 | ||
| случае <i>x</i> задает расстояние от правого края экрана до 
 | ||
| правого края окна. Если перед y стоит .+., то величина <i>y</i> 
 | ||
| определяет расстояние от верхнего края экрана до верхнего края 
 | ||
| окна, в противном случае <i>y</i> задает расстояние от низа 
 | ||
| экрана до нижнего края окна. Если аргумент <i>newGeometry</i> 
 | ||
| задан как пустая строка, текущие установленные пользователем 
 | ||
| размеры окна отменяются и окно приобретает размеры, определяемые 
 | ||
| размерами составляющих его виджетов.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm grid</b> <i>window baseWidth baseHeight widthInc heightInc</i></dt>
 | ||
| 
 | ||
| <dt><br>Команда определяет наличие сетки в окне и 
 | ||
| позволяет задать шаг сетки в пикселях. <i>BaseWidth</i> и 
 | ||
| <i>baseHeight</i> определяют в единицах сетки исходный размер 
 | ||
| окна (определяемый, исходя из размеров виджетов). <i>WidthInc</i> 
 | ||
| и <i>heightInc</i> определяют соответственно горизонтальный и 
 | ||
| вертикальный шаг сетки. Таким образом, эти четыре величины 
 | ||
| определяют множество допустимых размеров окна. После выполнения 
 | ||
| этой команды команда <b>wm geometry</b> считает размеры окна 
 | ||
| заданными в шагах сетки. Более того, при ручном изменении 
 | ||
| размеров менеджер окон показывает размер окна в шагах (ячейках) 
 | ||
| сетки и позволяет изменять размер только дискретно в целых шагах 
 | ||
| сетки.<br>
 | ||
| Если <i>BaseWidth</i> и последующие аргументы команды пустые 
 | ||
| строки, команда указывает, что окно больше не имеет сетки.</dt>
 | ||
| 
 | ||
| <dt><br>Если <i>BaseWidth</i> и последующие аргументы 
 | ||
| заданы, команда возвращает пустую строку. В противном случае 
 | ||
| команда возвращает список из четырех элементов, содержащий 
 | ||
| текущие значения <i>BaseWidth</i> и последующих аргументов. Если 
 | ||
| окно не имеет сетки возвращается пустая строка.</dt>
 | ||
| 
 | ||
| <dt><p><b><i>Замечание</i></b>. Потребность в использовании команды 
 | ||
| <b>wm grid</b> возникает относительно редко, поскольку той же 
 | ||
| функциональности поведения окна можно добиться, например, с 
 | ||
| помощью опции <b>setGrid</b> в командах создания виджетов.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm group</b> <i>window pathName</i></dt>
 | ||
| 
 | ||
| <dt><p>Если аргумент <i>pathName</i> указан, окно 
 | ||
| <i>pathName</i> становится лидером группы для <i>window</i>. 
 | ||
| Менеджер окон использует эту информацию, например, для того, 
 | ||
| чтобы одновременно выводить с экрана все окна группы, если 
 | ||
| сворачивается лидер группы. Если аргумент <i>pathName</i> 
 | ||
| представлен пустой строкой, окно <i>window</i> выводится из 
 | ||
| состава группы.<br>
 | ||
| Если аргумент <i>pathName</i> задан, команда возвращает пустую 
 | ||
| строку. В противном случае команда возвращает имя текущего лидера 
 | ||
| группы для окна <i>window</i> или пустую строку, если лидер не 
 | ||
| определен.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm iconbitmap</b> <i>window bitmap</i></dt>
 | ||
| 
 | ||
| <dt><p>Если аргумент <i>bitmap</i> задан, он определяет 
 | ||
| имя растрового образа, которое передается менеджеру окон для 
 | ||
| использования в качестве иконки. Имя образа может быть задано в 
 | ||
| одной из следующих форм:</dt>
 | ||
| <dt>
 | ||
| <dd>@<i>ИмяФайла</i> файл должен содержать описание растрового 
 | ||
| рисунка в формате, соответствующем стандарту X11 или X10</dd>
 | ||
| 
 | ||
| <dd><i>name</i> имя образа типа <i>bitmap</i>, ранее созданного в приложении.</dd>
 | ||
| 
 | ||
| <dd>Если аргумент <i>bitmap</i> представляет собой пустую строку, отменяется использование ранее заданного образа.</dd>
 | ||
| 
 | ||
| <dd>Если аргумент <i>bitmap</i> задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого джля иконки, либо пустую строку, если образ не задан.</dd>
 | ||
| </dt>
 | ||
| <dt><p><b>wm iconify</b> <i>window</i></dt>
 | ||
| 
 | ||
| <dt><p>Команда сворачивает указанное окно. Если окно еще не было размещено на экран, оно появится, когда это произойдет, в виде иконки.</dt>
 | ||
| 
 | ||
| <dt><p><b>wm iconmask</b> <i>window bitmap</i></dt>
 | ||
| 
 | ||
| <dt><p>Если аргумент <i>bitmap</i> задан, он определяет 
 | ||
| имя растрового образа, которое передается менеджеру окон для 
 | ||
| использования в качестве маски для иконки. Там, где маска имеет 
 | ||
| значение .0., образ иконки не отображается; там, где маска имеет 
 | ||
| значение .1., маска рисуется. Имя образа может быть задано в 
 | ||
| одной из следующих форм:</dt>
 | ||
| 
 | ||
| <dt><br><i>@ИмяФайла</i> файл должен содержать описание растрового рисунка в формате, соответствующем стандарту X11 или X10;</dt>
 | ||
| 
 | ||
| <dt><br><i>name</i> имя образа типа <i>bitmap</i>, ранее созданного в приложении.</dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>bitmap</i> представляет собой пустую строку, отменяется использование ранее заданной маски (это эквивалентно заданию маски из одних единиц).</dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>bitmap</i> задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого для маски для данного окна, либо пустую строку, если маска не задана.</dt>
 | ||
| 
 | ||
| <dt><br><b>wm iconname</b> <i>window ?newName?</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>newName</i> задан, он передается менеджеру окон для использования в качестве имени иконки для окна. В этом случае команда возвращает пустую строку. Если аргумент <i>newName</i>не задан, команда возвращает текущее имя иконки для окна; если имя иконки не задано, команда возвращает  пустую строку (в этом случае менеджер окон использует в качестве имени иконки имя окна, заданное с помощью команды <b>wmtitle</b><b>).</b></dt>
 | ||
| 
 | ||
| <dt><br><b>wm iconposition</b> <i>window x y</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргументы <i>x</i> и <i>y</i> заданы, они 
 | ||
| передаются менеджеру окон и используются как подсказка при 
 | ||
| размещении иконки окна <i>window</i>. В этом случае команда 
 | ||
| возвращает пустую строку. Если <i>x</i> и <i>y</i> представляют 
 | ||
| собой пустые строки, команда отменяет ранее определенную 
 | ||
| подсказку для размещения иконки. Если аргументы <i>x</i> и 
 | ||
| <i>y</i> не заданы, команда возвращает текущее значение подсказки 
 | ||
| (или пустую строку, если она не задана).</dt>
 | ||
| 
 | ||
| <dt><br><b>wm iconwindow</b> <i>window pathName</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>pathName</i> указан, он 
 | ||
| определяет имя окна, которое используется в качестве иконки для 
 | ||
| окна <i>window</i>: кодгда окно <i>window</i> свертывается, 
 | ||
| появляется окно <i>pathName</i>, которое используется в качестве 
 | ||
| иконки. Когда окно <i>window</i> разворачивается, окно 
 | ||
| <i>pathName</i> выводится с экрана. Если аргумент <i>pathName</i> 
 | ||
| представляет собой пустую строку, ранее определенное окно больше 
 | ||
| не используется как иконка.</dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>pathName</i> указан, команда возвращает пустую 
 | ||
| строку. В противном случае команда возвращает имя окна, ранее 
 | ||
| заданного в качестве иконки, или пустую строку, если ранее оно не 
 | ||
| было задано.</dt>
 | ||
| <dt><br>Нажатие на кнопку .Мыши. в окне-иконке не обрабатываются приложением, что позволяет обрабатывать эти события менеджеру окон.</dt>
 | ||
| 
 | ||
| <dt><br>Замечание. Не все менеджеры окон позволяют использовать Tk-окно в качестве иконки.</dt>
 | ||
| 
 | ||
| <dt><br><b>wm maxsize</b> <i>window width height</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргументы <i>width</i> и <i>height</i> 
 | ||
| заданы, они задают максимальный возможный размер окна. Если в 
 | ||
| окне определена сетка, размеры указываются в шагах сетки. В 
 | ||
| противном случае размеры указываются в пикселях. Менеджер окон не 
 | ||
| позволяет окну становиться больше, чем задано в команде.<br> 
 | ||
| Если аргументы <i>width</i> и <i>height</i> заданы, команда 
 | ||
| возвращает пустую строку, в противном случае она возвращает 
 | ||
| список, содержащий два элемента: текущие ограничения на размер 
 | ||
| окна. По умолчанию максимальные размеры окна равны размеру 
 | ||
| экрана. Если изменение размеров окна запрещено с помощью команды 
 | ||
| <b>wm <i></i>resizable</b>, команда <b>wmmaxsize</b> не влияет на 
 | ||
| окно. Более подробно этот вопрос рассмотрен ниже 
 | ||
| (см. <a href="Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ">Управление геометрией</a>.)</dt>
 | ||
| 
 | ||
| <dt><p><b>wm minsize</b> <i>window width height</i></<dt>>
 | ||
| 
 | ||
| <dt><br>Если аргументы <i>width</i> и <i>height</i> 
 | ||
| заданы, они задают минимальный возможный размер окна. Если в окне 
 | ||
| определена сетка, размеры указываются в шагах сетки. В противном 
 | ||
| случае размеры указываются в пикселях. Менеджер окон не позволяет 
 | ||
| окну становиться меньше, чем задано в команде.<br> 
 | ||
| Если аргументы <i>width</i> и <i>height</i> заданы, команда 
 | ||
| возвращает пустую строку, в противном случае она возвращает 
 | ||
| список, содержащий два элемента: текущие ограничения на размер 
 | ||
| окна. По умолчанию минимальные размеры окна равны одному пикселю 
 | ||
| в каждом направлении. Если изменение размеров окна запрещено с 
 | ||
| помощью команды <b>wm resizable</b>, команда <b>wm maxsize</b> не 
 | ||
| влияет на окно. Более подробно этот вопрос рассмотрен ниже 
 | ||
| (см. <a href="Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ">Управление геометрией</a>.).</dt>
 | ||
| 
 | ||
| <dt><p><b>wm overrideredirect</b> <i>window boolean</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>boolean</i> задан, он должен 
 | ||
| быть булевой величиной. Его значение присваивается 
 | ||
| <i>override-redirect</i> флагу окна. Если аргумент не задан, 
 | ||
| команда возвращает .1. или .0., в зависимости от того, установлен 
 | ||
| ли флаг для <i>window</i>.<br>
 | ||
| Установка флага приводит к тому, что окно не управляется 
 | ||
| менеджером окон. В частности, окно не будет заключено в 
 | ||
| декоративную рамку и пользователь не сможет изменять размеры и 
 | ||
| положение окна, используя стандартные механизмы менеджера 
 | ||
| окон.</dt>
 | ||
| 
 | ||
| <p><b>wm positionfrom</b> <i>window who</i></p>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>who</i> задан, он должен иметь
 | ||
| одно из двух значений <b>program</b> или <b>user</b> (или
 | ||
| произвольное сокращение от одного из них). Оно определяет, будет
 | ||
| ли размещение окна определяться программой или пользователем.
 | ||
| Многие менеджеры окон игнорируют запрошенное программой начальное
 | ||
| размещение окна и требуют от пользователя разместить его вручную.
 | ||
| Если задано значение <b>user</b>, менеджер окон не требует этого
 | ||
| от пользователя. Если аргумент <i>who</i> задан как пустая
 | ||
| строка, текущая установка отменяется.<br>
 | ||
| Если аргумент <i>who</i> задан, команда возвращает пустую строку.
 | ||
| В противном случае команда возвращает установленное ранее
 | ||
| значение или пустую строку, если значение не было установлено.
 | ||
| Большинство менеджеров окон считают, что если .источник. не
 | ||
| задан, это то же самое, что <b>program</b>. Tk автоматически
 | ||
| устанавливает значение <b>user</b> при выполнении команды <b>wm
 | ||
| geometry</b>, если ранее не было установлено явно значение
 | ||
| <b>program</b><b>.</b></dt>
 | ||
| 
 | ||
| <dt><br><b>wm protocol</b> <i>window name command</i></dt>
 | ||
| 
 | ||
| <dt><br>Эта команда используется для организации 
 | ||
| обработки сообщений (протоколов) менеджера окон, таких как 
 | ||
| <b>WM_DELETE_WINDOW</b>. Аргумент name, если он задан, должен 
 | ||
| быть именем элемента (атома) протокола менеджера окон. Если 
 | ||
| заданы оба аргумента <i>name</i> и <i>command</i>, команда 
 | ||
| <i>command</i> ассоциируется с протоколом <i>name</i>. Значение 
 | ||
| <i>name</i> добавляется к свойству окна <b>WM_PROTOCOLS,</b> 
 | ||
| чтобы указывать менеджеру окон, что приложение имеет обработчика 
 | ||
| соответствующего сообщения, и какая команда должна быть выполнена 
 | ||
| впоследствии, когда менеджер окон пошлет клиентской программе 
 | ||
| соответствующее сообщение. В этом случае команда возвращает 
 | ||
| пустую строку.
 | ||
| <br>Если аргумент <i>name</i> задан, а <i>command</i>
 | ||
| нет, будет возвращена команда, ассоциированная с данным
 | ||
| протоколом или пустая строка, если такой команды нет. Если
 | ||
| <i>command</i> определена как пустая строка, текущий обработчик
 | ||
| соответствующего события будет отменен, а имя протокола будет
 | ||
| удалено из свойства <b>PROTOCOLS</b> окна window. Команда
 | ||
| возвратит пустую строку.
 | ||
| <br>И наконец, если ни <i>name</i>, ни <i>command</i> не заданы,
 | ||
| команда возвратит список протоколов, для которых заданы
 | ||
| обработчики событий для данного окна.</dt>
 | ||
| 
 | ||
| <dt><br>Tk всегда определяет обработчик событий для протокола
 | ||
| <b>WM_DELETE_WINDOW</b>, даже если он не был задан с помощью
 | ||
| команды <b>wm protocol</b>. Если обработчик события не был задан
 | ||
| явно, то, когда поступает сообщение <b>WM_DELETE_WINDOW</b>, Tk
 | ||
| удаляет окно, для которого было получено это сообщение.</dt>
 | ||
| 
 | ||
| <dt><br><b>wm resizable</b> <i>window width height</i></dt>
 | ||
| 
 | ||
| <dt><br>Эта команда управляет возможностью пользователя 
 | ||
| интерактивно изменять размеры окна. Если аргументы width и 
 | ||
| <i>height</i> заданы, они должны быть булевыми величинами, 
 | ||
| определяющими, может ли пользователь изменять в интерактивном 
 | ||
| режиме ширину и высоту окна соответственно. Команда при этом 
 | ||
| возвращает пустую строку. Если аргументы <i>width</i> и 
 | ||
| <i>height</i> отсутствуют, команда возвращает список из двух 
 | ||
| элементов, принимающих значение .0. или .1. и указывающих, может 
 | ||
| ли пользователь изменять высоту и ширину окна соответственно. По 
 | ||
| умолчанию пользователь может изменять размеры окна в обоих направлениях. 
 | ||
| <p>Если изменение размеров окна пользователем запрещено, то либо 
 | ||
| сохраняются те размеры окна, которые были получены в результате 
 | ||
| последнего выполненного пользователем изменения размеров, либо 
 | ||
| размеры окна устанавливаются с помощью команды <b>wm geometry</b>. 
 | ||
| Если этих действий не было, используются размеры 
 | ||
| окна, определяемые размерами составляющих его виджетов.
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b>wm sizefrom</b> <i>window ?who?</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>who</i> задан, он должен иметь 
 | ||
| одно из двух значений <b>program</b> или <b>user</b> (или 
 | ||
| произвольное сокращение от одного из них). Оно определяет, будет 
 | ||
| ли размер окна определяться программой или пользователем. Многие 
 | ||
| менеджеры окон игнорируют запрошенный программой начальный размер 
 | ||
| окна и требуют от пользователя определить его размер вручную. 
 | ||
| Если задано значение user, менеджер окон не требует этого от 
 | ||
| пользователя. Если аргумент <i>who</i> задан как пустая строка, 
 | ||
| текущая установка отменяется.
 | ||
| <br>Если аргумент <i>who</i> задан, команда возвращает пустую
 | ||
| строку. В противном случае команда возвращает установленное ранее
 | ||
| значение; если значение не было установлено, команда возвращает
 | ||
| пустую строку. Большинство менеджеров окон считают, что если
 | ||
| .источник. не задан, это то же самое, что
 | ||
| <b>program</b>.
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b>wm state</b> <i>window</i></dt>
 | ||
| 
 | ||
| <dt><br>Команда возвращает текущее состояние окна:<br>
 | ||
| <b>normal</b><b>, iconic, withdrawn</b> или <b>icon</b>. Разница 
 | ||
| между <b>iconic</b> и <b>icon</b> в том, что <b>iconic</b> 
 | ||
| используется для свернутого окна (например, с помощью команды 
 | ||
| <b>wm iconify</b> ), а <b>icon</b> для окна, которое используется 
 | ||
| в качестве иконки для другого окна (с помощью команды <b>wm iconwindow</b>).
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b>wm title</b> <i>window string</i><dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>string</i> определен, он 
 | ||
| передается менеджеру окон для использования в качестве имени 
 | ||
| (титула) окна, которое менеджер окон высвечивает на рамке окна. В 
 | ||
| этом случае команда возвращает рустую строку. Если аргумент 
 | ||
| <i>string</i> не задан, команда возвращает ранее установленный 
 | ||
| заголовок. По умолчанию титул окна совпадает с его полным именем как виджета.
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b>wm transient</b> <i>window master</i></dt>
 | ||
| 
 | ||
| <dt><br>Если аргумент <i>master</i> задан, команда 
 | ||
| передает менеджеру окон информацию о том, что окно <i>window</i> 
 | ||
| является временным окном (например, выпадающим меню), работающим 
 | ||
| под управлением master-окна (где <i>master</i> полное имя 
 | ||
| toplevel-окна). Некоторые менеджеры окон используют эту 
 | ||
| информацию для того, чтобы управлять таким окном специальным 
 | ||
| образом. Если аргумент <i>master</i> представляет собой пустую 
 | ||
| строку, окно перестает быть временным окном.
 | ||
| <br>Если аргумент <i>master</i> задан, команда возвращает пустую 
 | ||
| строку. В противном случае она возвращает имя управляющего окна 
 | ||
| или пустую строку, если окно <i>window</i> не является временным.
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b>wm withdraw</b> <i>window</i></dt>
 | ||
| 
 | ||
| <dt><br>При выполнении команды окно <i>window</i> 
 | ||
| удаляется с экрана. Информация о нем удаляется из менеджера окон. 
 | ||
| Если окно не присутствовало на экране ранее, оно не появится на 
 | ||
| экране при создании. Но не все менеджеры окон знают, как работать с такими окнами!
 | ||
| </dt>
 | ||
| 
 | ||
| <dt><br><b><i>Замечание.</i></b> Иногда оказывается необходимым удалить 
 | ||
| окно с помощью команды <b>wm withdraw</b>, а затем возвратить его 
 | ||
| обратно на экран (например, с помощью команды <b>wm deiconify</b>), чтобы менеджер окон учитывал некоторые его атрибуты, например, группу.
 | ||
| </dt>
 | ||
| </dl>
 | ||
| 
 | ||
| <p><a name="Wm УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ"></a><b>УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ</b> 
 | ||
| 
 | ||
| <p>По умолчанию toplevel-окна при появлении на 
 | ||
| экране имеют размеры, определяемые размерами составляющих его 
 | ||
| виджетов (.естественные. размеры). Если изменяются размеры или 
 | ||
| состав виджетов, то изменяется и размер toplevel-окна. Для 
 | ||
| toplevel-окна размеры, отличные от .естественных., могут быть 
 | ||
| заданы двумя способами. Первый пользователь может изменить 
 | ||
| размеры окна вручную, используя стандартные механизмы менеджера 
 | ||
| окон. Второй приложение может запросить изменение размеров окна с 
 | ||
| помощью команды <b>wm geometry</b>. Оба зти способа 
 | ||
| обрабатываются в Tk единообразно. Размеры окна изменяются на 
 | ||
| новые, отличные от .естественных.. Чтобы вернуть .естественные. 
 | ||
| размеры окна, нужно выполнить команду <b>wm geometry</b> с пустой 
 | ||
| строкой в качестве аргумента, задающего размеры и размещение окна. 
 | ||
| 
 | ||
| <p>Обычно размеры окна могут изменяться произвольно в диапазоне 
 | ||
| от 1 пикселя до размеров экрана. Однако, с помощью команд <b>wm 
 | ||
| minsize</b> и <b>wm maxsize</b> можно изменить область 
 | ||
| возможных размеров окна. Эти ограничения будут использоваться при 
 | ||
| всех способах изменения размеров окна, в том числе и при ручном 
 | ||
| изменении, и при изменении размеров и состава его виджетов, 
 | ||
| приводящем к изменению его .естественных. размеров. С помощью 
 | ||
| команды <b>wm resizable</b> можно полностью запретить изменение 
 | ||
| размеров окна каким-либо способом в одном или в обоих направлениях.</p>
 | ||
| 
 | ||
| 
 | ||
| <p><a name="УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ"></a><b>УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ</b> 
 | ||
| 
 | ||
| <p>Окна с сеткой используются, если один из виджетов 
 | ||
| окна имеет ограниченное множество .разумных. размеров. Например, 
 | ||
| в текстовом редакторе, где полосы прокрутки, меню и т. д. имеют 
 | ||
| фиксированный размер, а поле редактирования текста может 
 | ||
| содержать произвольное число строк или букв в строке. В этом 
 | ||
| случае желательно дать пользователю возможность устанавливать 
 | ||
| непосредственно число строк или букв в строке при изменении 
 | ||
| размеров окна как вручную, так и с помощью команды <b>wm 
 | ||
| geometry</b>. Как в случае с текстом, так и в других аналогичных, 
 | ||
| .разумным. является не всякий размер окна в пикселях, а только 
 | ||
| размеры, соответствующие целому числу строк или букв в строке.
 | ||
| 
 | ||
| <p>Введение сетки обеспечивает механизм для реализации этих 
 | ||
| требований. Tk (и менеджер окон) предполагают существование сетки 
 | ||
| в окне, и что .разумными. являются только размеры, выраженные в 
 | ||
| целых шагах сетки, а не в произвольном числе пикселей. Обычно 
 | ||
| сетка устанавливается с помощью опции <b>setGrid</b> для 
 | ||
| соответствующего виджета. Она может также устанавливаться с 
 | ||
| помощью команды <b>wm grid</b>. В любом случае с помощью виджета 
 | ||
| или кода приложения определяются размеры окна в пикселях, 
 | ||
| соответствующие целым размерам в шагах сетки. Чтобы отменить 
 | ||
| сетку, нужно выполнить команду <b>wm grid</b> с пустой строкой, задающей сетку.</p>
 | ||
| 
 | ||
| <p>Если сетка задана, все определения размеров в командах 
 | ||
| <b>wm minsize</b>, <b>wm maxsize</b> и <b>wm geometry</b> 
 | ||
| считаются заданными в шагах сетки, а не в пикселях. Ручное 
 | ||
| изменение размеров окна также производится в целых шагах сетки.</p>
 | ||
| 
 | ||
| <p><a name="ОШИБКИ"></a><b>ОШИБКИ</b>
 | ||
| 
 | ||
| <p>Как оказалось, большинство существующих менеджеров окон имеют некоторые ошибки, которые проявляются при выполнении команды <b>wm</b>. Например, некоторые изменения не производятся в окне, если оно активно. Окно должно быть выведено с экрана и возвращено обратно, чтобы изменения выполнились.
 | ||
| 
 | ||
| <p><a name="ПРИМЕР"></a><b>ПРИМЕР</b>
 | ||
| <dl>
 | ||
| <dt><b>wm geometry</b> <i>. 750x550+0+0</i> - устанавливает размер окна</dt>
 | ||
| <dt><b>wm title</b> <i>. "Tcl/Tk Project Manager"</i> - заголовок окна</dt>
 | ||
| <dt><b>wm iconname</b> <i>. "Tcl/Tk Project Manager"</i> - подпись для икнонки</dt>
 | ||
| <dt><b>wm protocol</b> <i>. wm_DELETE_WINDOW Quit</i> - процедура выполняема по закрытии окна</dt>
 | ||
| <dt><b>wm overrideredirect</b> <i>. 0</i></dt>
 | ||
| <dt><b>wm positionfrom</b> <i>. user</i> - установка позиции окна</dt>
 | ||
| <dt><b>wm resizable</b> <i>. 0 0</i> - установка атрибутов окна (в данном случае не изменяемое)</dt>
 | ||
| <dl>
 | ||
| </body>
 | ||
| </html>
 | ||
| 
 | ||
| 
 | ||
| 
 | 
