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>pack-old</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>pack-old</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>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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>top</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Отводит долю потомка у верхней стороны полости на всю ширину
|
|
|
|
|
полости.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>bottom</strong> </dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Отводит долю потомка у нижней стороны полости на всю ширину
|
|
|
|
|
полости.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>left</strong> </dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Отводит долю потомка у левой стороны полости на всю высоту
|
|
|
|
|
полости.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>right</strong> </dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Отводит долю потомка у правой стороны полости на всю высоту
|
|
|
|
|
полости.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Для каждого окна следует задать ровно один из этих
|
|
|
|
|
параметров. Значением стороны по умолчанию является
|
|
|
|
|
<strong>top</strong>. Второй шаг состоит в определении доли
|
|
|
|
|
потомка. Для <strong>верхнего</strong> и
|
|
|
|
|
<strong>нижнего</strong> окон желательная ширина доли обычно
|
|
|
|
|
совпадает с шириной полости, а желательная высота совпадает с
|
|
|
|
|
запрошенной высотой доли, которая передается команде
|
|
|
|
|
Tk_GeometryRequest. Для <strong>левого</strong> и
|
|
|
|
|
<strong>правого</strong> окон желательная высота доли обычно
|
|
|
|
|
совпадает с высотой полости, а желательная ширина совпадает с
|
|
|
|
|
запрошенной шириной доли. Однако с помощью каждого из описанных
|
|
|
|
|
ниже параметров для окна можно запросить дополнительное
|
|
|
|
|
место:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>padx</strong> <em>число</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Добавляет <em>число</em> пикселей к запрошенной
|
|
|
|
|
ширине окна перед вычислением размера доли, как это было описано
|
|
|
|
|
выше.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><strong>pady</strong> <em>число</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Добавляет <em>число</em> пикселей к запрошенной высоте окна
|
|
|
|
|
перед вычислением размера доли, как это было описано
|
|
|
|
|
выше.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>expand</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Этот параметр указывает на то, что доля окна захватывает все
|
|
|
|
|
свободное пространство, оставшееся в полости окна-родителя
|
|
|
|
|
после упаковки всех его потомков. Размер оставшегося
|
|
|
|
|
пространства зависит от размеров, запрошенных для всех
|
|
|
|
|
потомков; он может равняться нулю. Если
|
|
|
|
|
<strong>расширения</strong> (expand) затребовали несколько
|
|
|
|
|
окон, то вся дополнительная ширина будет поделена поровну
|
|
|
|
|
между всеми <strong>левыми</strong> и <strong>правыми</strong>
|
|
|
|
|
окнами, запросившими <strong>расширение</strong>, а вся
|
|
|
|
|
дополнительная высота будет поделена поровну между всеми
|
|
|
|
|
<strong>верхними</strong> и <strong>нижними</strong> окнами,
|
|
|
|
|
запросившими <strong>расширение</strong>.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
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
|
|
|
|
<p>На третьем шаге размещения окна следует принять решение о его
|
|
|
|
|
ширине и высоте. По умолчанию окно получает либо запрошенные
|
|
|
|
|
ширину и высоту, либо ширину и высоту доли в зависимости от
|
|
|
|
|
того, что из них меньше. Если доля больше, чем запрошенный
|
|
|
|
|
размер окна, то окно можно расширить так, чтобы оно полностью
|
|
|
|
|
или частично покрывало долю, с помощью следующих параметров:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>fill</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Делает размеры окна равными размерам доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>fillx</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Увеличивает ширину окна до ширины доли, сохраняя высоту
|
|
|
|
|
окна.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>filly</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Увеличивает высоту окна до высоты доли, сохраняя ширину
|
|
|
|
|
окна.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>На последнем этапе происходит размещение окна внутри его
|
|
|
|
|
доли. Если размеры окна и доли совпадают, то окно просто целиком
|
|
|
|
|
заполняет долю. Если доля больше окна, то положение окна
|
|
|
|
|
определяется с помощью одного из следующих параметров:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><strong>frame center</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно по центру доли. Если параметр размещения
|
|
|
|
|
опущен, то центральное размещение принимается по
|
|
|
|
|
умолчанию.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame n</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его верхняя сторона располагается по
|
|
|
|
|
центру верхней стороны доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame ne</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его правый верхний угол
|
|
|
|
|
располагается в правом верхнем углу доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame e</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его правая сторона располагается по
|
|
|
|
|
центру правой стороны доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame se</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его правый нижний угол располагается
|
|
|
|
|
в правом нижнем углу доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame s</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его нижняя сторона располагается по
|
|
|
|
|
центру нижней стороны доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame sw</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его левый нижний угол располагается
|
|
|
|
|
в левом нижнем углу доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame w</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его левая сторона располагается по
|
|
|
|
|
центру левой стороны доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt><strong>frame nw</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Размещает окно так, что его левый верхний угол располагается
|
|
|
|
|
в левом верхнем углу доли.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
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
|
|
|
|
<p>Упаковщик посылает геометрические запросы от имени родителя
|
|
|
|
|
размещаемых окон. Для каждого окна-родителя он запрашивает
|
|
|
|
|
размер, достаточный для размещения всех упакованных потомков в
|
|
|
|
|
соответствии с указанными параметрами, так что на расширение
|
|
|
|
|
остается нулевой остаток.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|