931 lines
64 KiB
HTML
931 lines
64 KiB
HTML
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
||
<html>
|
||
<head>
|
||
<title>menu</title>
|
||
</head>
|
||
<body>
|
||
|
||
<h1>menu</h1>
|
||
|
||
<p>Создание примитива меню и управление им.</p>
|
||
|
||
<h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
|
||
|
||
<pre>
|
||
<strong>menu</strong> <em>имяПути</em> ?<em>параметры</em>?
|
||
</pre>
|
||
|
||
<h2><a name=СТАНДАРТНЫЕ_ПАРАМЕТРЫ></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2>
|
||
|
||
<ul>
|
||
<li><strong>-activebackground</strong></li>
|
||
<li><strong>-activeborderwidth</strong></li>
|
||
<li><strong>-activeforeground</strong></li>
|
||
<li><strong>-background</strong></li>
|
||
<li><strong>-borderwidth</strong></li>
|
||
<li><strong>-cursor</strong></li>
|
||
<li><strong>-disabledforeground</strong></li>
|
||
<li><strong>-font</strong></li>
|
||
<li><strong>-foreground</strong></li>
|
||
<li><strong>-relief</strong></li>
|
||
<li><strong>-takefocus</strong></li>
|
||
</ul>
|
||
|
||
<p>Подробное описание этих параметров приведено в разделе <a
|
||
href=options.html><strong>options</strong></a>.</p>
|
||
|
||
<h2><a name=ДОПОЛНИТЕЛЬНЫЕ_ПАРАМЕТРЫ_ПРИМИТИВА></a>ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА</h2>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-postcommand</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>postCommand</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>PostCommand</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Задает команду Tcl, которая должна выполняться при каждом
|
||
выводе меню. Эта команда выполняется командой примитива
|
||
<strong>post</strong> непосредственно перед выводом меню. В
|
||
версии 8.0 операционной системы Macintosh и в Windows все
|
||
команды системы меню выполняются перед выводом меню. Это
|
||
объясняется ограничениями, накладываемыми конкретными системами
|
||
управления меню данных платформ.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-selectcolor</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>selectColor</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Background</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Задает цвет индикатора при выделении входа меню,
|
||
представляющего собой защелкивающуюся кнопку или
|
||
переключатель.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-tearoff</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>tearOff</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>TearOff</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Принимает булевское значение, указывающее, должен ли вверху
|
||
меню быть ключ отрыва. Если значение параметра истина, то ключ
|
||
отрыва имеет номер ноль, а нумерация последующих входов в меню
|
||
начинается с единицы.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-tearoffcommand</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>tearOffCommand</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>TearOffCommand</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Если значение этого параметра не пустая строка, то оно задает
|
||
команду, которая должна выполняться при каждом отрыве от меню. В
|
||
действительности выполняемая команда состоит из указанной
|
||
строки, за которой следуют имя меню и имя окна меню отрыва
|
||
(отделенные от строки команды и друг от друга пробелами). Если,
|
||
например, параметр имеет значение "<strong>a
|
||
b</strong>" и в результате отрыва от меню
|
||
<strong>.x.y</strong> должно быть создано новое меню
|
||
<strong>.x.tearoff1</strong>, то будет выполнена команда
|
||
"<strong>.a b .x.y .x.tearoff1</strong>".</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-title</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>title</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Title</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Строка значение параметра задает имя окна, создаваемого при
|
||
отрыве от данного меню. Если значением параметра служит NULL, то
|
||
именем окна станет либо имя кнопки меню, либо содержимое
|
||
элемента каскада, из которого выполняется данное меню.<br>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-type</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>type</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Type</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Параметр может принимать одно из значений
|
||
<strong>menubar</strong>, <strong>tearoff</strong> или
|
||
<strong>normal</strong>; это значение устанавливается при
|
||
создании меню. При изменении значения меняется строка,
|
||
возвращаемая конфигурационной базой данных, однако это не
|
||
оказывает влияния на поведение примитива меню. Это свойство
|
||
используется механизмом клонирования и обычно не применяется за
|
||
пределами библиотеки Tk.</p>
|
||
|
||
<h2><a name=ВВЕДЕНИЕ></a>ВВЕДЕНИЕ</h2>
|
||
|
||
<p>Команда <strong>menu</strong> создает новое окно (заданное
|
||
аргументом <em>имяПути</em>) и превращает его в примитив
|
||
меню. Детали изображения меню, такие как его цвета и шрифты,
|
||
задаются с помощью описанных выше дополнительных параметров в
|
||
командной строке или в базе данных параметров. Команда
|
||
<strong>menu</strong> возвращает имя пути нового окна. В момент
|
||
выполнения команды не должно быть окна с именем
|
||
<em>имяПути</em>, однако его непосредственный предок должен
|
||
существовать.
|
||
|
||
<p>Меню представляет собой примитив, предназначенный для вывода
|
||
совокупности однострочных входов, разбитых на несколько колонок
|
||
(быть может, одну). Входы бывают различных типов и имеют
|
||
соответственно различные свойства. Входы различных типов могут
|
||
содержаться в одном и том же меню. Вход меню (menu entry) совсем
|
||
не то же самое, что примитив поля ввода (entry). Более того,
|
||
вход меню не является отдельным примитивом все вместе они
|
||
образуют примитив меню.</p>
|
||
|
||
<p>При выводе вход меню может содержать до трех различных
|
||
полей. Главное поле представляет собой метку входа; оно содержит
|
||
строку текста, изображение или двуцветное изображение в
|
||
зависимости от значения параметров входа
|
||
<strong>-label</strong>, <strong>-bitmap</strong> и
|
||
<strong>-image</strong>. Если для данного входа задан параметр
|
||
<strong>-accelerator</strong>, то справа от метки появляется
|
||
второе текстовое поле. Этот параметр обычно описывает
|
||
совокупность клавиш, нажатие на которые приводит к тому же
|
||
результату, что и выбор данного входа в меню. Третье поле
|
||
представляет собой <em>индикатор</em>. Индикатор применяется
|
||
только для защелкивающихся входов или переключателей. Он
|
||
указывает, выделен или нет данный вход, и располагается слева от
|
||
строки входа.</p>
|
||
|
||
<p>При обычном использовании вход становится активным (при этом
|
||
меняется вид строки), если на нем расположен курсор Мыши. Если
|
||
клавишу .Мыши. в таком положении отпустить, то вход будет
|
||
выполнен. Результат выполнения зависит от типа входа. Подробное
|
||
описание результатов приведено ниже при описании конкретных
|
||
типов входов.</p>
|
||
|
||
<p>Входы могут быть отключены (disabled); изображение такого входа
|
||
тускнеет. Привязки меню по умолчанию блокируют активизацию и
|
||
выполнение команды для отключенного входа. Отключенный вход
|
||
может быть снова подключен, после чего его вновь можно
|
||
активизировать и выполнять соответствующую команду.</p>
|
||
|
||
<p>При изменении активного входа в меню в нем происходит
|
||
виртуальное событие
|
||
<<<strong>MenuSelect</strong>>>. В результате из
|
||
меню можно запросить активный вход и предпринять какие-либо
|
||
действия (например, вывести соответствующую контекстно-зависимую
|
||
подсказку).</p>
|
||
|
||
<h2><a name=КОМАНДНЫЕ_ВХОДЫ></a>КОМАНДНЫЕ ВХОДЫ</h2>
|
||
|
||
<p>Наиболее распространенным типом входа в меню является командный
|
||
вход, который ведет себя подобно примитиву кнопки. При запуске
|
||
командного входа выполняется команда Tcl, заданная параметром
|
||
<strong>-command</strong>.</p>
|
||
|
||
<h2><a name=ВХОДЫРАЗДЕЛИТЕЛИ></a>ВХОДЫ-РАЗДЕЛИТЕЛИ</h2>
|
||
|
||
<p>Разделитель представляет собой вход, предназначенный для вывода
|
||
горизонтальной разделительной черты. Разделитель нельзя сделать
|
||
активным или выполнить, никакого поведения разделителя,
|
||
отличного от вывода черты не предусмотрено.</p>
|
||
|
||
<h2><a name=ЗАЩЕЛКИВАЮЩИЕСЯ_ВХОДЫ></a>ЗАЩЕЛКИВАЮЩИЕСЯ ВХОДЫ</h2>
|
||
|
||
<p>Защелкивающийся вход ведет себя подобно защелкивающейся
|
||
кнопке. При щелчке на таком входе происходит переключение из
|
||
выделенного состояния в невыделенное и обратно. В выделенном
|
||
состоянии в некоторую глобальную переменную (указанную
|
||
параметром <strong>-variable</strong>) заносится значение,
|
||
фиксированное параметром <strong>-onvalue</strong>; при отмене
|
||
выделения в эту глобальную переменную заносится другое значение,
|
||
фиксированное параметром <strong>-offvalue</strong>. Слева от
|
||
метки защелкивающегося входа изображается
|
||
квадратик-индикатор. Если вход выделен, то центральная часть
|
||
индикатора окрашивается в цвет, указанный параметром
|
||
<strong>-selectcolor</strong> для входа; в противном случае цвет
|
||
индикатора совпадает с цветом фона меню. Если для данного входа
|
||
задано значение параметра <strong>-command</strong>, то это
|
||
значение интерпретируется как команда Tcl всякий раз при
|
||
выделении входа.</p>
|
||
|
||
<h2><a name=ВХОДЫПЕРЕКЛЮЧАТЕЛИ></a>ВХОДЫ-ПЕРЕКЛЮЧАТЕЛИ</h2>
|
||
|
||
<p>Вход-переключатель ведет себя подобно примитиву
|
||
переключателя. Входы переключателя разбиты на группы, причем в
|
||
каждой группе выделенным может оказаться только один вход. При
|
||
выделении конкретного входа в некоторую глобальную переменную
|
||
(указанную параметром <strong>-variable</strong>) заносится
|
||
значение, фиксированное параметром <strong>-value</strong>. В
|
||
результате этого действия автоматически отменяется предыдущее
|
||
выделение в той же группе. Любое изменение значения переменной,
|
||
связанной с входом, автоматически приводит к отмене
|
||
существующего выделения. Разбиение входов-переключателей на
|
||
группы задается значениями связанных с ними переменных: два
|
||
входа с одинаковыми значениями переменной принадлежат одной
|
||
группе. Слева от метки входа-переключателя изображается ромб
|
||
индикатора. Если вход выделен, то центральная часть индикатора
|
||
окрашивается в цвет, указанный параметром
|
||
<strong>-selectcolor</strong> для входа; в противном случае цвет
|
||
индикатора совпадает с цветом фона меню. Если для данного входа
|
||
задано значение параметра <strong>-command</strong>, то это
|
||
значение интерпретируется как команда Tcl всякий раз при
|
||
выделении входа.</p>
|
||
|
||
<h2><a name=КАСКАДНЫЕ_ВХОДЫ></a>КАСКАДНЫЕ ВХОДЫ</h2>
|
||
|
||
<p>Каскадному входу отвечает новое меню (заданное параметром
|
||
<strong>-menu</strong>). Каскадные входы позволяют строить
|
||
ниспадающие меню. Команда примитива <strong>postcascade</strong>
|
||
позволяет изобразить ассоциированное меню непосредственно рядом
|
||
с каскадным входом или удалить выведенное меню. Для обеспечения
|
||
корректности переключения меню необходимо, чтобы меню,
|
||
ассоциированное с входом, было непосредственным потомком того
|
||
меню, элементом которого данный вход является.</p>
|
||
|
||
<p>Каскадный вход выводит ассоциированное меню с помощью команды
|
||
Tcl вида:</p>
|
||
|
||
<dl>
|
||
<dt><em>меню</em> <strong>post</strong> <em>x y</em><br></dt>
|
||
|
||
<dd>где <em>меню</em> представляет собой имя пути
|
||
ассоциированного меню, а <em>x</em> и <em>y</em> это
|
||
координаты верхнего правого угла окна каскадного входа
|
||
относительно корневого окна. В системе Unix меню нижнего
|
||
уровня стирается с помощью команды Tcl.</dd>
|
||
|
||
<dt><em>меню</em> <strong>unpost</strong></dt>
|
||
|
||
<dd>где <em>меню</em> представляет собой имя пути
|
||
ассоциированного меню. На других платформах стирание меню
|
||
осуществляется их собственными средствами.</dd>
|
||
</dl>
|
||
|
||
<p>Если для данного входа задано значение параметра
|
||
<strong>-command</strong>, то это значение интерпретируется как
|
||
команда Tcl всякий раз при выделении входа. В системе Windows
|
||
данная возможность не поддерживается.</p>
|
||
|
||
<h2><a name=ВХОДЫ_КЛЮЧИ_ОТРЫВА></a>ВХОДЫ КЛЮЧИ ОТРЫВА</h2>
|
||
|
||
<p>Ключ отрыва появляется в верхней части меню, если параметр
|
||
<strong>tearOff</strong> имеет значение истина. В отличие от
|
||
входов других типов его нельзя создать командой примитива
|
||
<strong>add</strong> или удалить командой примитива
|
||
<strong>delete</strong>. При создании ключа отрыва он
|
||
изображается в виде пунктирной горизонтальной черты в верхней
|
||
части окна. Привязки по умолчанию создают при щелчке на ключе
|
||
отрыва оторванную копию меню и всех подчиненных ему меню.</p>
|
||
|
||
<h2><a name=ЛИНЕЙКА_МЕНЮ></a>ЛИНЕЙКА МЕНЮ</h2>
|
||
|
||
<p>Любое меню можно использовать в качестве полосы меню для окна
|
||
верхнего уровня (синтаксис см. в описании команды
|
||
<strong>toplevel</strong> ). В системе Macintosh каскадные
|
||
элементы меню появляются в полосе меню в верхней части окна, как
|
||
только соответствующее окно верхнего уровня оказывается поверх
|
||
остальных окон. В системах Windows и Unix эти элементы меню
|
||
изображаются в полосе меню в верхней части окна. Поведение меню
|
||
определяется особенностями интерфейса каждой из платформ. Для
|
||
каждого меню, используемого в качестве полосы меню, создается
|
||
его копия (clone menu). Подробное описание приведено ниже (см.
|
||
"<a href=menu.html#КЛОНЫ>Клоны</a>").</p>
|
||
|
||
<h2><a name=СПЕЦИАЛЬНЫЕ_МЕНЮ_В_ЛИНЕЙКЕ></a>СПЕЦИАЛЬНЫЕ МЕНЮ В ЛИНЕЙКЕ</h2>
|
||
|
||
<p>Некоторые меню в полосе меню будут обрабатываться особым
|
||
образом. В системе Macintosh обеспечен доступ к специальным меню
|
||
Apple и Help. В каждом окне системы Windows обеспечен доступ к
|
||
меню Windows System. В системе X Windows предоставляется
|
||
специальное меню подсказки, выравненное вправо. Во всех случаях
|
||
эти меню создаются посредством команды, имя которой состоит из
|
||
имени команды меню в полосе меню, к которому приписывается имя
|
||
специального меню. Так, для полосы меню с именем .menubar на
|
||
Macintosh именами специальных меню будут
|
||
<strong>.menubar.apple</strong> и
|
||
<strong>.menubar.help</strong>; в Windows
|
||
<strong>.menubar.system</strong>; в X Windows именем меню
|
||
подсказки будет <strong>.menubar.help</strong>.</p>
|
||
|
||
<p>Встречая меню Apple в системе Macintosh, Tk выводит его первые
|
||
элементы на экран всякий раз, когда окно, содержащее полосу меню
|
||
оказывается поверх остальных окон. Это меню является первым,
|
||
которое видит пользователь, а его заголовком служит логотип
|
||
Apple. После всех Tk-определенных элементов следует разделитель,
|
||
за которым идут все элементы из папки пользователя Apple Menu
|
||
Items. Так как используемая System процедура определения меню
|
||
отлична от используемой в Tk и API системы не поддерживают всех
|
||
возможностей меню Tk, в заголовке меню выводится только текст
|
||
заголовка. Никаких дополнительных сведений, изображений,
|
||
двуцветных изображений или цветов не выводится. Кроме того, ключ
|
||
отрыва имеет вид "TearOff".</p>
|
||
|
||
<p>Встречая меню Help в системе Macintosh, Tk добавляет содержимое
|
||
этого меню к стандартному меню подсказки в правой части
|
||
пользовательской полосы меню всякий раз, когда пользовательская
|
||
полоса меню оказывается поверх остальных окон. Первые элементы
|
||
меню берутся из Apple. Аналогично меню Apple возможности вывода
|
||
элементов меню ограничены системой.</p>
|
||
|
||
<p>Встречая меню System в системе Windows, Tk добавляет содержимое
|
||
этого меню к системному меню, к которому привязана данная полоса
|
||
меню. В этом меню имеется картинка, изображающая клавишу
|
||
пробела; ее можно запустить с помощью "Мыши" или нажав
|
||
клавиши <strong>Alt+Spacebar</strong>. Ограничения Windows API
|
||
не позволяют вывести в системном меню различные шрифты, цвета,
|
||
изображения или двуцветные изображения, а также ключи
|
||
отрыва.</p>
|
||
|
||
<p>Встречая меню Help в системе X Windows, Tk делает его последним
|
||
в полосе меню и выравнивает по правому краю.</p>
|
||
|
||
<h2><a name=КЛОНЫ></a>КЛОНЫ</h2>
|
||
|
||
<p>При использовании меню в качестве полосы меню в окне верхнего
|
||
уровня, а также при отрыве меню создается его копия. Копия сама
|
||
является примитивом меню, но она непосредственный потомок
|
||
исходного меню. Изменения конфигурации исходного меню
|
||
распространяются и на копию. Кроме того, все каскады, на которые
|
||
есть указатели, также копируются, что обеспечивает корректное
|
||
переключение меню. Копии уничтожаются, если удаляется ключ
|
||
отрыва или полоса меню, а также при уничтожении оригинала.</p>
|
||
|
||
<h2><a name=КОМАНДА_ПРИМИТИВА></a>КОМАНДА ПРИМИТИВА</h2>
|
||
|
||
<p>Команда <strong>menu</strong> создает новую команду Tcl с
|
||
именем <em>имяПути</em>. С помощью этой команды можно выполнять
|
||
различные операции над примитивом. Ее общий вид:</p>
|
||
|
||
<pre>
|
||
имяПути параметр ?арг арг ...?
|
||
</pre>
|
||
|
||
<p><em>Параметр</em> и <em>арг</em>ументы уточняют поведение команды.</p>
|
||
|
||
<p>Одним из аргументов многих команд примитива меню служит
|
||
указатель входа в меню, над которым следует произвести данную
|
||
операцию. Такие указатели называются <em>индекс</em>ами; они
|
||
могут иметь один из следующих видов:</p>
|
||
|
||
<dl>
|
||
<dt><em>число</em></dt>
|
||
|
||
<dd>Задает номер входа. Самый верхний вход имеет номер 0,
|
||
следующий за ним номер 1 и т.д.</dd>
|
||
|
||
<dt> <strong>active</strong> </dt>
|
||
|
||
<dd>Задает вход, который активен в настоящий момент. Если
|
||
активного входа нет, то это значение параметра эквивалентно
|
||
значению <strong>none</strong>. Слово <strong>active</strong>
|
||
нельзя сокращать.</dd>
|
||
|
||
<dt> <strong>end</strong></dt>
|
||
|
||
<dd>Указывает самый нижний вход в меню. Если в меню нет ни
|
||
одного входа, то это значение параметра эквивалентно значению
|
||
<strong>none</strong>. Слово <strong>end</strong> нельзя
|
||
сокращать.</dd>
|
||
|
||
<dt> <strong>last</strong></dt>
|
||
|
||
<dd> Совпадает с <strong>end</strong>.</dd>
|
||
|
||
<dt> <strong>none</strong> </dt>
|
||
|
||
<dd>Указывает на "никакой" вход. Чаще всего
|
||
используется совместно с параметром <strong>activate</strong>
|
||
для дезактивации всех активных входов в меню. Слово
|
||
<strong>none</strong> нельзя сокращать.</dd>
|
||
|
||
<dt> @<em>число</em></dt>
|
||
|
||
<dd>В этом случае <em>число</em> интерпретируется как значение
|
||
y-координаты в окне меню; указывает на вход, ближайший к
|
||
данной y-координате. Так, например,
|
||
"<strong>@0</strong>" указывает на самый верхний
|
||
вход в окне.</dd>
|
||
|
||
<dt> <em>образец</em> </dt>
|
||
|
||
<dd>Если индекс не подходит ни под один из указанных видов, то
|
||
используется поиск индекса по образцу. Сравнение метки входа с
|
||
<em>образцом</em> выполняется последовательно сверху вниз,
|
||
пока не встретится подходящая метка. При сравнении
|
||
используются правила <strong>Tcl_StringMatch</strong>.</dd>
|
||
</dl>
|
||
|
||
<p>Примитивы меню допускают следующие команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>activate</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Делает активным вход, указанный параметром <em>индекс</em> и
|
||
соответственно меняет вид строки входа на экране. Всякий вход,
|
||
бывший активным в момент выполнения команды,
|
||
деактивизируется. Если <em>индекс</em> имеет
|
||
значение<strong>none</strong> или если указанный этим
|
||
параметром вход отключен, то по окончании работы команды в
|
||
меню не будет активных входов. Возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>add</strong> <em>тип</em>
|
||
?<em>параметр значение параметр значение</em>?</dt>
|
||
|
||
<dd><p>Добавляет новый вход на верхушку меню. Аргумент
|
||
<em>тип</em> задает вид нового входа; <em>он</em> может
|
||
принимать значения <strong>cascade</strong>,
|
||
<strong>checkbutton</strong>, <strong>command</strong>,
|
||
<strong>radiobutton</strong> (эти значения допускают
|
||
однозначные сокращения). Дополнительные аргументы могут
|
||
задавать значения следующих параметров:</p>
|
||
|
||
<dl>
|
||
<dt><strong>-activebackground</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает цвет фона для вывода данного входа в активном
|
||
состоянии. Если <em>значением</em> служит пустая строка
|
||
(как, например, по умолчанию), то в качестве цвета фона
|
||
берется значение параметра
|
||
<strong>activeBackground</strong> для всего меню. Если
|
||
значение переменной <strong>tk_strictMotif</strong>
|
||
требует проверки согласования со стандартом Motif, то
|
||
значение данного параметра игнорируется и вместо него
|
||
используется значение параметра
|
||
<strong>-background</strong>. Для входа-разделителя и
|
||
ключа отрыва данный параметр недоступен.</dd>
|
||
|
||
<dt><strong>-activeforeground</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает цвет переднего плана для вывода данного входа в
|
||
активном состоянии. Если <em>значением</em> служит пустая
|
||
строка (как, например, по умолчанию), то в качестве цвета
|
||
фона берется значение параметра
|
||
<strong>activeForeground</strong> для всего меню.Для
|
||
входа-разделителя и ключа отрыва данный параметр
|
||
недоступен.</dd>
|
||
|
||
<dt> <strong>-accelerator</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает строку, которую следует выводить в правой части
|
||
входа. Обычно описывает комбинацию клавиш, на
|
||
которые следует нажать, чтобы выполнить те же действия,
|
||
что и при обращении к данному входу. Для входа-разделителя
|
||
и ключа отрыва данный параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-background</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Задает цвет фона для вывода данного входа в нормальном
|
||
(не активном и не отключенном) состоянии. Если
|
||
<em>значением</em> служит пустая строка (как, например, по
|
||
умолчанию), то в качестве цвета фона берется значение
|
||
параметра <strong>background</strong> для всего меню. Для
|
||
входа-разделителя и ключа отрыва данный параметр
|
||
недоступен.</dd>
|
||
|
||
<dt> <strong>-bitmap</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает двуцветное изображение, выводимое в меню вместо
|
||
текстовой метки. Может принимать любое значение,
|
||
воспринимаемое командой
|
||
<strong>Tk_GetBitmap</strong>. Данный параметр подавляет
|
||
параметр <strong>-label</strong>, однако если его
|
||
значением является пустая строка, то в окне выводится
|
||
текстовая метка. Параметр <strong>-image</strong>, если он
|
||
задан, подавляет параметр <strong>-bitmap</strong>. Для
|
||
входа-разделителя и ключа отрыва данный параметр
|
||
недоступен.</dd>
|
||
|
||
<dt> <strong>-columnbreak</strong> <em>значение</em></dt>
|
||
|
||
<dd>Если <em>значение</em> параметра равно "0", то новый
|
||
вход выводится после предыдущего входа. Если значение
|
||
равно "1", то новый вход выводится вверху нового столбца
|
||
меню.</dd>
|
||
|
||
<dt> <strong>-command</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает команду Tcl, которую следует выполнить при вызове
|
||
данного входа. Для входа-разделителя и ключа отрыва данный
|
||
параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-font</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает шрифт, используемый при выводе метки входа и
|
||
строки горячих клавиш. Если значением параметра является
|
||
пустая строка (как, например, по умолчанию), то
|
||
используется значение параметра <strong>font</strong>для
|
||
всего меню. Для входа-разделителя и ключа отрыва данный
|
||
параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-foreground</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает цвет переднего плана для вывода данного входа в
|
||
нормальном (не активном и не отключенном) состоянии. Если
|
||
<em>значением</em> служит пустая строка (как, например, по
|
||
умолчанию), то в качестве цвета фона берется значение
|
||
параметра <strong>foreground</strong> для всего меню. Для
|
||
входа-разделителя и ключа отрыва данный параметр
|
||
недоступен.</dd>
|
||
|
||
<dt> <strong>-hidemargin</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Указывает, следует ли при выводе данного входа выводить
|
||
стандартные боковые поля. Такая возможность полезна при
|
||
создании различных палитр с картинками (цветовые палитры,
|
||
палитры образцов и т.д.). <em>Значение</em> "1"
|
||
указывает на то, что поля должны быть спрятаны, при
|
||
нулевом значении параметра они используются.</dd>
|
||
|
||
<dt> <strong>-image</strong> <em>значение</em></dt>
|
||
|
||
<dd>Задает изображение, выводимое в меню вместо текстовой
|
||
метки или двуцветного изображения. Изображение должно быть
|
||
создано ранее командой <strong>image create</strong>.
|
||
Данный параметр подавляет параметры
|
||
<strong>-label</strong>, и <strong>-bitmap</strong>,
|
||
однако если его значением является пустая строка, то в
|
||
окне выводится текстовая метка или двуцветное
|
||
изображение. Для входа-разделителя и ключа отрыва данный
|
||
параметр недоступен.</dd>
|
||
|
||
|
||
<dt> <strong>-indicatoron</strong> <em>значение</em></dt>
|
||
|
||
<dd>Доступно только для защелкивающихся входов и
|
||
входов-переключателей. <em>Значение</em> является
|
||
булевским и указывает, следует или нет выводить индикатор
|
||
входа.</dd>
|
||
|
||
<dt> <strong>-label</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Задает текстовую строку, которая служит
|
||
меткой-идентификатором входа. Для входа-разделителя и
|
||
ключа отрыва данный параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-menu</strong> <em>значение</em></dt>
|
||
|
||
<dd>Данный параметр доступен только для каскадных
|
||
входов. Задает имя пути подменю, ассоциированного с данным
|
||
входом. Подменю должно быть непосредственным потомком
|
||
данного меню.</dd>
|
||
|
||
<dt> <strong>-offvalue</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Доступен только для защелкивающихся входов. Задает
|
||
значение, которое следует записать в переменную входа при
|
||
отмене его выделения.</dd>
|
||
|
||
<dt> <strong>-onvalue</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Доступен только для защелкивающихся входов. Задает
|
||
значение, которое следует записать в переменную входа при
|
||
его выделении.</dd>
|
||
|
||
<dt> <strong>-selectcolor</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Доступен только для защелкивающихся входов и
|
||
входов-переключателей. Задает <em>значение</em>, которое
|
||
следует записать в переменную входа при его
|
||
выделении.</dd>
|
||
|
||
<dt> <strong>-selectimage</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Доступен только для защелкивающихся входов и
|
||
входов-переключателей. Задает изображение, которое следует
|
||
выводить в поле входа при его выделении (замещает параметр
|
||
<strong>-image)</strong>. Изображение должно быть создано
|
||
ранее командой<strong>image create</strong>. Если параметр
|
||
<strong>-image</strong> не задан, то данный параметр
|
||
игнорируется.</dd>
|
||
|
||
<dt> <strong>-state</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Задает одно из трех состояний входа:
|
||
<strong>normal</strong>, <strong>active</strong> или
|
||
<strong>disabled</strong>. В нормальном состоянии при
|
||
выводе входа используются значения параметров
|
||
<strong>foreground</strong> для всего меню и
|
||
<strong>background</strong> для входа или для всего
|
||
меню. Обычно вход становится активным при попадании на
|
||
него курсора. В активном состоянии при выводе входа
|
||
используются значения параметров
|
||
<strong>activeForeground</strong> для всего меню и
|
||
<strong>activebackground</strong> для входа. В отключенном
|
||
(<strong>disabled</strong>) состоянии вход становится
|
||
безответным: привязки по умолчанию не позволяют
|
||
активизировать его или вызвать соответствующую ему команду
|
||
Tcl. При выводе входа в этом случае используются значения
|
||
параметров <strong>disabledForeground</strong> для всего
|
||
меню и <strong>background</strong> для входа. Для
|
||
входа-разделителя данный параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-underline</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Задает целочисленный индекс символа в метке, который
|
||
следует подчеркнуть. Значение этого индекса используется,
|
||
в том числе, привязками по умолчанию для осуществления
|
||
переключения с помощью клавиатуры. Значение "0"
|
||
указывает на первый символ в строке, "1" на
|
||
второй и т.д. Если в поле входа выводится изображение или
|
||
двуцветное изображение, то данный параметр
|
||
игнорируется. Для входа-разделителя и ключа отрыва данный
|
||
параметр недоступен.</dd>
|
||
|
||
<dt> <strong>-value</strong> <em>значение</em> </dt>
|
||
|
||
<dd>Доступен только для входа-переключателя. Задает
|
||
значение, которое следует записать в переменную входа при
|
||
его выделении. Если <em>значением</em> параметра является
|
||
пустая строка, то в переменную заносится значение
|
||
параметра <strong>-label</strong>.</dd>
|
||
|
||
<dt> <strong>-variable</strong> <em>значение</em></dt>
|
||
|
||
<dd>Доступен только для защелкивающегося входа и
|
||
входа-переключателя. Задает имя глобальной переменной,
|
||
которую следует установить при выделении входа. Для
|
||
защелкивающегося входа значение переменной устанавливается
|
||
также при отмене его выделения. Для входа-переключателя
|
||
изменение значения переменной приводит к отмене текущего
|
||
выделения.</dd>
|
||
</dl>
|
||
|
||
<p>Команда примитива <strong>add</strong> возвращает
|
||
пустую строку.</p>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>cget</strong> <em>параметр</em></dt>
|
||
|
||
<dd>Возвращает текущее значение параметра конфигурации с именем
|
||
<em>параметр</em>. <em>Параметр</em>может быть любым из
|
||
параметров команды <strong>menu</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>clone</strong> <em>новоеИмяПути</em>
|
||
?<em>типКопии</em>?</dt>
|
||
|
||
<dd>Создает копию текущего меню с именем
|
||
<em>новоеИмяПути</em>. Копия является отдельным
|
||
самостоятельным меню, однако любые изменения в ней приводят к
|
||
таким же изменениям оригинала и наоборот. Аргумент
|
||
<em>типКопии</em> может принимать значения <strong>normal</strong>,
|
||
<strong>menubar</strong> и <strong>tearoff</strong>. Команду не
|
||
следует исполнять вне библиотеки Tk. Подробную информацию
|
||
см. "<a href=#КЛОНЫ>Клоны</a>".</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>configure</strong> ?<em>параметр</em>?
|
||
?<em>значение параметр значение ...</em>?</dt>
|
||
|
||
<dd>Запрашивает значения параметров конфигурации примитива или
|
||
изменяет их. Если <em>параметр</em> не указан, то возвращает
|
||
список, содержащий значения всех допустимых в
|
||
<em>имениПути</em> параметров (формат списка описан в
|
||
<strong>Tk_ConfigureInfo</strong>). Если <em>параметр</em>
|
||
задан, а его новое <em>значение</em> нет, то команда
|
||
возвращает часть полного списка, относящуюся к указанному
|
||
параметру. Если заданы одна или несколько пар
|
||
параметр-значение, то указанным <em>параметр</em>ам примитива
|
||
присваиваются новые <em>значения</em>. В этом случае команда
|
||
возвращает пустую строку. <em>Параметр</em> может быть любым
|
||
из параметров команды <strong>menu</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>delete</strong> <em>индекс1</em>
|
||
?<em>индекс2</em>?</dt>
|
||
|
||
<dd>Удаляет все входы между входами, указанными аргументами
|
||
<em>индекс1</em> и <em>индекс2</em>, включая оба эти входа. Ключи
|
||
отрыва при этом не удаляются для их удаления следует поменять
|
||
значение параметра <strong>tearOff</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>entrycget</strong> <em>индекс
|
||
параметр</em></dt>
|
||
|
||
<dd>Возвращает текущее значение параметра конфигурации для
|
||
входа, заданного аргументом
|
||
<em>индекс</em>. <em>Параметр</em>может принимать любые
|
||
значения, воспринимаемые командой примитива
|
||
<strong>add</strong>.</dd>
|
||
|
||
|
||
<dt><em>имяПути</em> <strong>entryconfigure</strong>
|
||
<em>индекс</em> ?<em>параметры</em>?</dt>
|
||
|
||
<dd>Команда аналогична команде <strong>configure</strong>;
|
||
отличие состоит в том, что она относится к параметрам
|
||
отдельного входа, тогда как команда <strong>configure</strong>
|
||
применима к параметрам меню в целом. <em>Параметры</em> могут
|
||
принимать любые значения, воспринимаемые командой примитива
|
||
<strong>add</strong>. Если <em>параметры</em> заданы, то им
|
||
присваиваются вновь заданные и команда возвращает пустую
|
||
строку. Если <em>параметры</em> не заданы, то команда
|
||
возвращает список текущих значений всех параметров для каждого
|
||
из входов, указанных аргументом <em>индекс</em> (формат списка
|
||
приведен в <strong>Tk_ConfigureInfo</strong>).</dd>
|
||
|
||
<dt> <em>имяПути</em> <strong>index</strong>
|
||
<em>индекс</em></dt>
|
||
|
||
<dd>Команда возвращает числовое значение индекса, заданного
|
||
аргументом <em>индекс</em> или значение <strong>none</strong>,
|
||
если <em>значением</em> аргумента было
|
||
<strong>none</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>insert</strong> <em>индекс тип</em>
|
||
?<em>параметр значение параметр значение</em>?</dt>
|
||
|
||
<dd>Команда аналогична команде примитива <strong>add</strong>;
|
||
отличие состоит в том, что команда <strong>insert</strong>
|
||
вставляет новый вход непосредственно перед входом, на который
|
||
указывает аргумент <em>индекс</em>, а не в конец меню. Если в
|
||
меню есть ключ отрыва, то вставка входов перед ним
|
||
невозможна.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>invoke</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Выполняет действие, ассоциированное с данным входом
|
||
меню. Подробное описание выполняемых действий приведено выше
|
||
при описании конкретных типов входов. Если с данным входом
|
||
ассоциирована какая-нибудь команда Tcl, то команда
|
||
<strong>invoke</strong> возвращает результат выполнения этой
|
||
команды Tcl. В противном случае результатом служит пустая
|
||
строка. Замечание: при исполнении данной команды меню не
|
||
пропадает автоматически это результат действия привязок по
|
||
умолчанию перед исполнением команды
|
||
<strong>invoke</strong>.</dd>
|
||
|
||
<dt> <em>имяПути</em> <strong>post</strong> <em>x y</em> </dt>
|
||
|
||
<dd>Обеспечивает вывод меню на экран в месте с координатами
|
||
<em>x</em> и <em>y</em> относительно корневого окна. При
|
||
необходимости эти координаты корректируются так, чтобы меню на
|
||
экране было видно. Обычно команда возвращает пустую
|
||
строку. Если задан параметр <strong>postCommand</strong>, то
|
||
его значение интерпретируется как Tcl скрипт, который и
|
||
исполняется перед выполнением команды <strong>post</strong>; в
|
||
этом случае команда примитива <strong>post</strong> возвращает
|
||
результат данного скрипта Tcl. Если при выполнении скрипта
|
||
возникла ошибка, то <strong>post</strong> возвращает сообщение
|
||
об этой ошибке и меню не выводится.</dd>
|
||
|
||
<dt> <em>имяПути</em> <strong>postcascade</strong>
|
||
<em>индекс</em> </dt>
|
||
|
||
<dd>Выводит подменю, вызываемое каскадным входом, указанным
|
||
аргументом <em>индекс</em>, и стирает ранее выведенное
|
||
подменю. Если аргумент <em>индекс</em> не указывает на
|
||
каскадный вход или если меню с именем <em>имяПути</em> не
|
||
выведено, то команда<strong>postcascade</strong> не производит
|
||
никаких действий за исключением стирания ранее выведенных
|
||
подменю.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>type</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Возвращает тип входа, указанного аргументом <em>индекс.</em>
|
||
Этот тип задается аргументом <em>тип</em> при создании входа
|
||
командой примитива <strong>add</strong> (например,
|
||
<strong>command</strong>, <strong>separator</strong> или
|
||
<strong>tearoff</strong> для ключа отрыва).</dd>
|
||
|
||
<dt> <em>имяПути</em> <strong>unpost</strong> </dt>
|
||
|
||
<dd>Стирает окно с экрана. Если было выведено каскадное меню
|
||
нижнего уровня, то стирает это меню. Возвращает пустую
|
||
строку. На платформах Windows и Macintosh эта команда не
|
||
работает, так как там имеются собственные системы управления
|
||
окнами.</dd>
|
||
|
||
<dt> <em>имяПути</em> <strong>yposition</strong> <em>индекс</em>
|
||
</dt>
|
||
|
||
<dd>Возвращает десятичное значение y-координаты в окне меню
|
||
верхнего пиксела поля входа, заданного аргументом
|
||
<em>индекс</em>.</dd>
|
||
</dl>
|
||
|
||
<h2><a name=КОНФИГУРАЦИИ_МЕНЮ></a>КОНФИГУРАЦИИ МЕНЮ</h2>
|
||
|
||
<p>Привязки по умолчанию обеспечивают четыре различных способа
|
||
использования меню: </p>
|
||
|
||
<dl>
|
||
<dt><strong>Ниспадающие меню в полосе меню</strong></dt>
|
||
|
||
<dd>Наиболее часто встречающийся случай. Сначала создается
|
||
примитив меню, который станет полосой меню. Затем к этому меню
|
||
добавляются каскадные входы, описывающие нужные ниспадающие
|
||
меню. Затем создаются все ниспадающие меню. Когда все это
|
||
проделано, нужно задать значение параметра
|
||
<strong>-menu</strong> в команде примитива верхнего
|
||
уровня. Подробное описание <a
|
||
href=toplevel.html><strong>toplevel</strong></a>.</dd>
|
||
|
||
<dt><strong>Ниспадающие меню в кнопках меню</strong></dt>
|
||
|
||
<dd>Это альтернативный способ создания полосы меню. Сначала
|
||
создается примитив кнопки меню для каждого меню верхнего
|
||
уровня (обычно цепочка кнопок располагается последовательно в
|
||
полосе меню окна). Кроме того следует создать все меню
|
||
верхнего уровня и подчиненные им меню и связать их вместе с
|
||
помощью параметра <strong>-menu</strong> в кнопках меню и
|
||
каскадных входах меню. Меню верхнего уровня должно быть
|
||
непосредственным потомком кнопки меню, а каждое подменю должно
|
||
быть непосредственным потомком меню, которое на него
|
||
ссылается. После того, как это сделано, привязки по умолчанию
|
||
позволяют пользователю переходить от одного меню к другому и
|
||
обращаться к дереву меню через кнопку меню.</dd>
|
||
|
||
<dt><strong>Всплывающие меню</strong></dt>
|
||
|
||
<dd>Всплывающие меню обычно выводятся при нажатии кнопки
|
||
"Мыши" или клавиши на клавиатуре. Сначала создаются
|
||
всплывающие меню и все каскадные подменю, затем в нужный
|
||
момент времени следует вызвать процедуру
|
||
<strong>tk_popup</strong>, в результате чего будет выведено
|
||
меню верхнего уровня.</dd>
|
||
|
||
<dt><strong>Меню-переключатели с кнопкой</strong></dt>
|
||
|
||
<dd>Меню-переключатель состоит из кнопки и связанного с ней
|
||
меню, которое позволяет выбрать одну из нескольких
|
||
возможностей. Описатель выбранной возможности выводится в
|
||
кнопке и в глобальной переменной запоминается соответствующее
|
||
значение. Для создания меню-переключателей используется
|
||
процедура <strong>tk_optionMenu</strong>.</dd>
|
||
|
||
<dt><strong>Отрывные меню</strong></dt>
|
||
|
||
<dd>Отрывное меню создается при исполнении входа ключа отрыва в
|
||
верхней части имеющегося меню. Привязки по умолчанию создают
|
||
копию исходного меню и выводят ее в виде окна верхнего
|
||
уровня. Оторванное меню ведет себя точно так же, как и
|
||
исходное.</dd>
|
||
</dl>
|
||
|
||
<h2><a name=ПАРАМЕТРЫ_ПО_УМОЛЧАНИЮ></a>ПАРАМЕТРЫ ПО УМОЛЧАНИЮ</h2>
|
||
|
||
<p>При создании меню Tk автоматически создает параметры класса,
|
||
определяющие следующее поведение примитива по умолчанию: </p>
|
||
|
||
<p>При попадании курсора "Мыши" в меню вход, на котором
|
||
находится курсор, становится активным; при перемещении курсора
|
||
по меню соответственно меняется и активный вход.</p>
|
||
|
||
<p>Если курсор "Мыши" покидает меню, то все входы в нем
|
||
деактивизируются за исключением случая, когда курсор
|
||
перемещается в каскадное подменю.</p>
|
||
|
||
<p>При отпускании клавиши "Мыши" на меню активный вход
|
||
(если таковой имеется) исполняется. При этом меню стирается за
|
||
исключением случая, когда это оторванное меню.</p>
|
||
|
||
<p>Нажатие на клавиши <strong>Space</strong> или
|
||
<strong>Return</strong> приводят к исполнению активного входа и
|
||
стиранию меню.</p>
|
||
|
||
<p>Если одна из букв в поле входа подчеркнута с помощью параметра
|
||
<strong>-underline</strong>, то нажатие на эту букву (или ее
|
||
эквивалент на верхнем или нижнем регистре) приводит к исполнению
|
||
входа и стиранию меню.</p>
|
||
|
||
<p>Нажатие на клавишу <strong>Escape</strong> приводит к отмене
|
||
текущего выделения. Меню при этом стирается, если только это не
|
||
оторванное меню.</p>
|
||
|
||
<p>Нажатие на клавиши <strong>Up</strong> или
|
||
<strong>Down</strong> приводит к активизации входа, примыкающего
|
||
к текущему активному входу сверху или снизу. Если достигнут
|
||
конец меню, то происходит перескок на противоположный его
|
||
конец.</p>
|
||
|
||
<p>Нажатие на клавишу <strong>Left</strong> приводит к переходу на
|
||
соседнее слева меню. Если текущее меню представляет собой
|
||
каскадное подменю, то это каскадное подменю стирается и текущим
|
||
входом в меню становится каскадный вход в его непосредственном
|
||
предке. Если текущее меню представляет собой меню верхнего
|
||
уровня, выведенное кнопкой меню, то текущая кнопка меню
|
||
стирается и выводится соседняя слева кнопка меню. В остальных
|
||
случаях нажатие на эту клавишу не приводит ни к какому
|
||
результату. Порядок кнопок меню слева направо определяется их
|
||
порядком в стеке: Tk считает нижнюю кнопку меню (первой попавшую
|
||
в стек) самой левой.</p>
|
||
|
||
<p>Нажатие на клавишу <strong>Right</strong> приводит к переходу
|
||
на соседнее справа меню. Если текущим является каскадный вход,
|
||
то выводится соответствующее каскадное подменю и текущий вход
|
||
становится первым в этом подменю. В противном случае, если
|
||
текущее меню было выведено кнопкой меню, то текущая кнопка меню
|
||
стирается, а вместо нее выводится соседняя с ней справа кнопка
|
||
меню.</p>
|
||
|
||
<p>Отключенные входы меню остаются безответными: их нельзя сделать
|
||
активными и они не реагируют на нажатие и отпускание клавиш
|
||
"Мыши".</p>
|
||
|
||
<p>Определяя новые привязки к отдельным примитивам или
|
||
переопределяя привязки класса, поведение меню можно
|
||
изменить.</p>
|
||
|
||
<p>В настоящее время использование базы данных параметров для
|
||
задания значений параметров входов не допускается.</p>
|
||
|
||
</body>
|
||
</html>
|
||
|
||
|
||
|
||
|