237 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			237 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>pack-old</title>
 | ||
|   </head>
 | ||
|   <body>
 | ||
|     <h1>pack-old</h1>
 | ||
| 
 | ||
|     <p>Устаревшая команда для геометрического менеджера упаковки
 | ||
|       окон.</p>
 | ||
| 
 | ||
|     <h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>pack after</strong> sibling <em>окно параметры</em> ?<em>окно параметры...</em>?
 | ||
|       <strong>pack append</strong> parent <em>окно параметры</em> ?<em>окно параметры...</em>?
 | ||
|       <strong>pack before</strong> sibling <em>окно параметры</em> ?<em>окно параметры...</em>?
 | ||
|       <strong>pack unpack</strong> <em>окно</em>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
 | ||
| 
 | ||
|     <p><strong>Замечание</strong>. Ниже описан синтаксис команды
 | ||
|       <strong>pack</strong>, употреблявшейся в версиях Tk до 3.3. Хотя
 | ||
|       в целях совместимости поддержка команды в системе сохранена,
 | ||
|       команда является устаревшей и использовать ее не
 | ||
|       следует. Возможно, в будущем ее поддержка
 | ||
|       прекратится.</p>
 | ||
| 
 | ||
|     <p>Упаковщик представляет собой геометрический менеджер,
 | ||
|       предназначенный для размещения непосредственных потомков
 | ||
|       примитива по сторонам примитива в порядке их появления. Первый
 | ||
|       потомок размещается вдоль одной стороны примитива, занимая всю
 | ||
|       протяженность окна вдоль этой стороны. В результате, для
 | ||
|       следующих потомков остается усеченное окно, как если бы
 | ||
|       выбранная сторона сдвинулась внутрь на размер первого
 | ||
|       потомка. Вдоль одной из сторон оставшейся области размещается
 | ||
|       второй потомок, и так далее до тех пор, пока не будут размещены
 | ||
|       все потомки или пока не исчерпается свободное место.</p>
 | ||
| 
 | ||
|     <p>Формы <strong>before</strong>, <strong>after</strong> и
 | ||
|       <strong>append</strong> команды <strong>pack</strong>
 | ||
|       используются для вставки одного или нескольких непосредственных
 | ||
|       потомков в очередь упаковки их родителя. В форме
 | ||
|       <strong>before</strong> команда вставляет окно-потомка перед
 | ||
|       родственными узлами; все остальные окна должны быть узлами
 | ||
|       одного уровня. В форме <strong>after</strong> окна вставляются
 | ||
|       после родственных узлов, а в форме <strong>append</strong>
 | ||
|       добавляет одно или несколько окон к очереди упаковки их
 | ||
|       <em>родителя</em>. Если <em>окно</em>, указанное в любой из этих
 | ||
|       команд уже упаковано в родительское окно, то оно удаляется со
 | ||
|       своего текущего положения в порядке упаковки и перемещается в
 | ||
|       соответствии с командой. Все эти команды возвращают в качестве
 | ||
|       результата пустую строку.</p>
 | ||
| 
 | ||
|     <p>Форма <strong>unpack</strong> команды <strong>pack
 | ||
|       command</strong> удаляет <em>окно</em> из очереди упаковки его
 | ||
|       родителя и стирает его с экрана. После выполнения этой команды
 | ||
|       упаковщик более не управляет геометрией <em>окна</em>.</p>
 | ||
| 
 | ||
|     <p>На самом деле, размещение каждого потомка представляет собой
 | ||
|       четырехступенчатую процедуру; значение <em>параметра</em>,
 | ||
|       следующего за <em>окном</em>, представляет собой список из
 | ||
|       одного или нескольких полей, управляющих размещением окна. В
 | ||
|       нижеследующем обсуждении термин <em>полость</em> (cavity)
 | ||
|       обозначает место в окне-родителе, оставшееся после размещения
 | ||
|       конкретного потомка (т.е. все то место, которое не было
 | ||
|       запрошено при размещении предыдущих потомков в очереди). Термин
 | ||
|       <em>доля</em> (parcel) обозначает количество места,
 | ||
|       отведенного конкретному потомку; это количество не обязательно
 | ||
|       соответствует окончательной геометрии окна-потомка.</p>
 | ||
| 
 | ||
|     <p>Первый шаг в размещении потомка состоит в выборе стороны
 | ||
|       полости, вдоль которой он будет располагаться. Для указания
 | ||
|       стороны можно пользоваться любым из следующих параметров:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>top</strong></dt>
 | ||
| 
 | ||
|       <dd>Отводит долю потомка у верхней стороны полости на всю ширину
 | ||
| 	полости.</dd>
 | ||
| 
 | ||
|       <dt><strong>bottom</strong> </dt>
 | ||
| 
 | ||
|       <dd>Отводит долю потомка у нижней стороны полости на всю ширину
 | ||
| 	полости.</dd>
 | ||
| 
 | ||
|       <dt> <strong>left</strong> </dt>
 | ||
| 
 | ||
|       <dd>Отводит долю потомка у левой стороны полости на всю высоту
 | ||
| 	полости.</dd>
 | ||
| 
 | ||
|       <dt> <strong>right</strong> </dt>
 | ||
| 
 | ||
|       <dd>Отводит долю потомка у правой стороны полости на всю высоту
 | ||
| 	  полости.</dd>
 | ||
|     </dl>
 | ||
|     
 | ||
|     <p>Для каждого окна следует задать ровно один из этих
 | ||
|       параметров. Значением стороны по умолчанию является
 | ||
|       <strong>top</strong>. Второй шаг состоит в определении доли
 | ||
|       потомка. Для <strong>верхнего</strong> и
 | ||
|       <strong>нижнего</strong> окон желательная ширина доли обычно
 | ||
|       совпадает с шириной полости, а желательная высота совпадает с
 | ||
|       запрошенной высотой доли, которая передается команде
 | ||
|       Tk_GeometryRequest. Для <strong>левого</strong> и
 | ||
|       <strong>правого</strong> окон желательная высота доли обычно
 | ||
|       совпадает с высотой полости, а желательная ширина совпадает с
 | ||
|       запрошенной шириной доли. Однако с помощью каждого из описанных
 | ||
|       ниже параметров для окна можно запросить дополнительное
 | ||
|       место:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>padx</strong> <em>число</em> </dt>
 | ||
| 
 | ||
|       <dd>Добавляет <em>число</em> пикселей к запрошенной
 | ||
| 	ширине окна перед вычислением размера доли, как это было описано
 | ||
| 	выше.</dd>
 | ||
| 
 | ||
|       <dt><strong>pady</strong> <em>число</em></dt>
 | ||
| 
 | ||
|       <dd>Добавляет <em>число</em> пикселей к запрошенной высоте окна
 | ||
| 	перед вычислением размера доли, как это было описано
 | ||
| 	выше.</dd>
 | ||
| 
 | ||
|       <dt><strong>expand</strong></dt>
 | ||
| 
 | ||
|       <dd>Этот параметр указывает на то, что доля окна захватывает все
 | ||
| 	свободное пространство, оставшееся в полости окна-родителя
 | ||
| 	после упаковки всех его потомков. Размер оставшегося
 | ||
| 	пространства зависит от размеров, запрошенных для всех
 | ||
| 	потомков; он может равняться нулю. Если
 | ||
| 	<strong>расширения</strong> (expand) затребовали несколько
 | ||
| 	окон, то вся дополнительная ширина будет поделена поровну
 | ||
| 	между всеми <strong>левыми</strong> и <strong>правыми</strong>
 | ||
| 	окнами, запросившими <strong>расширение</strong>, а вся
 | ||
| 	дополнительная высота будет поделена поровну между всеми
 | ||
| 	<strong>верхними</strong> и <strong>нижними</strong> окнами,
 | ||
| 	запросившими <strong>расширение</strong>.</dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|     <p>Если желаемая ширина или высота превосходит соответствующую
 | ||
|       протяженность полости, то вместо нее используется эта размер
 | ||
|       этой протяженности.</p>
 | ||
| 
 | ||
|     <p>На третьем шаге размещения окна следует принять решение о его
 | ||
|       ширине и высоте. По умолчанию окно получает либо запрошенные
 | ||
|       ширину и высоту, либо ширину и высоту доли в зависимости от
 | ||
|       того, что из них меньше. Если доля больше, чем запрошенный
 | ||
|       размер окна, то окно можно расширить так, чтобы оно полностью
 | ||
|       или частично покрывало долю, с помощью следующих параметров:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>fill</strong></dt>
 | ||
| 
 | ||
|       <dd>Делает размеры окна равными размерам доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>fillx</strong></dt>
 | ||
| 
 | ||
|       <dd>Увеличивает ширину окна до ширины доли, сохраняя высоту
 | ||
| 	окна.</dd>
 | ||
| 
 | ||
|       <dt><strong>filly</strong></dt>
 | ||
| 
 | ||
|       <dd>Увеличивает высоту окна до высоты доли, сохраняя ширину
 | ||
| 	окна.</dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|     <p>На последнем этапе происходит размещение окна внутри его
 | ||
|       доли. Если размеры окна и доли совпадают, то окно просто целиком
 | ||
|       заполняет долю. Если доля больше окна, то положение окна
 | ||
|       определяется с помощью одного из следующих параметров:</p>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>frame center</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно по центру доли. Если параметр размещения
 | ||
| 	опущен, то центральное размещение принимается по
 | ||
| 	умолчанию.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame n</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его верхняя сторона располагается по
 | ||
| 	центру верхней стороны доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame ne</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его правый верхний угол
 | ||
| 	располагается в правом верхнем углу доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame e</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его правая сторона располагается по
 | ||
| 	центру правой стороны доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame se</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его правый нижний угол располагается
 | ||
| 	в правом нижнем углу доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame s</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его нижняя сторона располагается по
 | ||
| 	центру нижней стороны доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame sw</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его левый нижний угол располагается
 | ||
| 	в левом нижнем углу доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame w</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его левая сторона располагается по
 | ||
| 	центру левой стороны доли.</dd>
 | ||
| 
 | ||
|       <dt><strong>frame nw</strong></dt>
 | ||
| 
 | ||
|       <dd>Размещает окно так, что его левый верхний угол располагается
 | ||
| 	в левом верхнем углу доли.</dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|     <p>Упаковщик управляет состоянием размещенный/неразмещенный всех
 | ||
|       упакованных непосредственных окон-потомков. При упаковке окон
 | ||
|       упаковщик автоматически выводит их на экран; кроме того, он
 | ||
|       стирает окна, для которых в полости остается недостаточно
 | ||
|       места.</p>
 | ||
| 
 | ||
|     <p>Упаковщик посылает геометрические запросы от имени родителя
 | ||
|       размещаемых окон. Для каждого окна-родителя он запрашивает
 | ||
|       размер, достаточный для размещения всех упакованных потомков в
 | ||
|       соответствии с указанными параметрами, так что на расширение
 | ||
|       остается нулевой остаток.</p>
 | ||
| 
 | ||
|   </body>
 | ||
| </html>
 | ||
| 
 | 
