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>menu</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<h1>menu</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>menu</strong> <em>имяПути</em> ?<em>параметры</em>?
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=СТАНДАРТНЫЕ_ПАРАМЕТРЫ></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Подробное описание этих параметров приведено в разделе <a
|
|
|
|
|
href=options.html><strong>options</strong></a>.</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
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Задает команду Tcl, которая должна выполняться при каждом
|
|
|
|
|
выводе меню. Эта команда выполняется командой примитива
|
|
|
|
|
<strong>post</strong> непосредственно перед выводом меню. В
|
|
|
|
|
версии 8.0 операционной системы Macintosh и в Windows все
|
|
|
|
|
команды системы меню выполняются перед выводом меню. Это
|
|
|
|
|
объясняется ограничениями, накладываемыми конкретными системами
|
|
|
|
|
управления меню данных платформ.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Задает цвет индикатора при выделении входа меню,
|
|
|
|
|
представляющего собой защелкивающуюся кнопку или
|
|
|
|
|
переключатель.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Принимает булевское значение, указывающее, должен ли вверху
|
|
|
|
|
меню быть ключ отрыва. Если значение параметра истина, то ключ
|
|
|
|
|
отрыва имеет номер ноль, а нумерация последующих входов в меню
|
|
|
|
|
начинается с единицы.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если значение этого параметра не пустая строка, то оно задает
|
|
|
|
|
команду, которая должна выполняться при каждом отрыве от меню. В
|
|
|
|
|
действительности выполняемая команда состоит из указанной
|
|
|
|
|
строки, за которой следуют имя меню и имя окна меню отрыва
|
|
|
|
|
(отделенные от строки команды и друг от друга пробелами). Если,
|
|
|
|
|
например, параметр имеет значение "<strong>a
|
|
|
|
|
b</strong>" и в результате отрыва от меню
|
|
|
|
|
<strong>.x.y</strong> должно быть создано новое меню
|
|
|
|
|
<strong>.x.tearoff1</strong>, то будет выполнена команда
|
2015-10-19 13:27:31 +03:00
|
|
|
|
"<strong>.a b .x.y .x.tearoff1</strong>".</p>
|
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Строка значение параметра задает имя окна, создаваемого при
|
|
|
|
|
отрыве от данного меню. Если значением параметра служит NULL, то
|
|
|
|
|
именем окна станет либо имя кнопки меню, либо содержимое
|
|
|
|
|
элемента каскада, из которого выполняется данное меню.<br>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<table>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</table>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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, заданная параметром
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>-command</strong>.</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><em>меню</em> <strong>post</strong> <em>x y</em><br></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>где <em>меню</em> представляет собой имя пути
|
|
|
|
|
ассоциированного меню, а <em>x</em> и <em>y</em> это
|
|
|
|
|
координаты верхнего правого угла окна каскадного входа
|
|
|
|
|
относительно корневого окна. В системе Unix меню нижнего
|
|
|
|
|
уровня стирается с помощью команды Tcl.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><em>меню</em> <strong>unpost</strong></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
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
имяПути параметр ?арг арг ...?
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p><em>Параметр</em> и <em>арг</em>ументы уточняют поведение команды.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Одним из аргументов многих команд примитива меню служит
|
|
|
|
|
указатель входа в меню, над которым следует произвести данную
|
|
|
|
|
операцию. Такие указатели называются <em>индекс</em>ами; они
|
|
|
|
|
могут иметь один из следующих видов:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><em>число</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Задает номер входа. Самый верхний вход имеет номер 0,
|
|
|
|
|
следующий за ним номер 1 и т.д.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>active</strong> </dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Задает вход, который активен в настоящий момент. Если
|
|
|
|
|
активного входа нет, то это значение параметра эквивалентно
|
|
|
|
|
значению <strong>none</strong>. Слово <strong>active</strong>
|
|
|
|
|
нельзя сокращать.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>end</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Указывает самый нижний вход в меню. Если в меню нет ни
|
|
|
|
|
одного входа, то это значение параметра эквивалентно значению
|
|
|
|
|
<strong>none</strong>. Слово <strong>end</strong> нельзя
|
|
|
|
|
сокращать.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>last</strong></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd> Совпадает с <strong>end</strong>.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dt> <strong>none</strong> </dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Указывает на "никакой" вход. Чаще всего
|
|
|
|
|
используется совместно с параметром <strong>activate</strong>
|
|
|
|
|
для дезактивации всех активных входов в меню. Слово
|
|
|
|
|
<strong>none</strong> нельзя сокращать.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> @<em>число</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>В этом случае <em>число</em> интерпретируется как значение
|
|
|
|
|
y-координаты в окне меню; указывает на вход, ближайший к
|
|
|
|
|
данной y-координате. Так, например,
|
|
|
|
|
"<strong>@0</strong>" указывает на самый верхний
|
|
|
|
|
вход в окне.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <em>образец</em> </dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Если индекс не подходит ни под один из указанных видов, то
|
|
|
|
|
используется поиск индекса по образцу. Сравнение метки входа с
|
|
|
|
|
<em>образцом</em> выполняется последовательно сверху вниз,
|
|
|
|
|
пока не встретится подходящая метка. При сравнении
|
|
|
|
|
используются правила <strong>Tcl_StringMatch</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
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>,
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>checkbutton</strong>, <strong>command</strong>,
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<strong>radiobutton</strong> (эти значения допускают
|
|
|
|
|
однозначные сокращения). Дополнительные аргументы могут
|
|
|
|
|
задавать значения следующих параметров:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда примитива <strong>add</strong> возвращает
|
|
|
|
|
пустую строку.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>может принимать любые
|
|
|
|
|
значения, воспринимаемые командой примитива
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>add</strong>.</dd>
|
|
|
|
|
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><em>имяПути</em> <strong>entryconfigure</strong>
|
|
|
|
|
<em>индекс</em> ?<em>параметры</em>?</dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Команда аналогична команде <strong>configure</strong>;
|
|
|
|
|
отличие состоит в том, что она относится к параметрам
|
|
|
|
|
отдельного входа, тогда как команда <strong>configure</strong>
|
|
|
|
|
применима к параметрам меню в целом. <em>Параметры</em> могут
|
|
|
|
|
принимать любые значения, воспринимаемые командой примитива
|
|
|
|
|
<strong>add</strong>. Если <em>параметры</em> заданы, то им
|
|
|
|
|
присваиваются вновь заданные и команда возвращает пустую
|
|
|
|
|
строку. Если <em>параметры</em> не заданы, то команда
|
|
|
|
|
возвращает список текущих значений всех параметров для каждого
|
|
|
|
|
из входов, указанных аргументом <em>индекс</em> (формат списка
|
|
|
|
|
приведен в <strong>Tk_ConfigureInfo</strong>).</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt> <em>имяПути</em> <strong>index</strong>
|
|
|
|
|
<em>индекс</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Команда возвращает числовое значение индекса, заданного
|
|
|
|
|
аргументом <em>индекс</em> или значение <strong>none</strong>,
|
|
|
|
|
если <em>значением</em> аргумента было
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>none</strong>.</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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. В противном случае результатом служит пустая
|
|
|
|
|
строка. Замечание: при исполнении данной команды меню не
|
|
|
|
|
пропадает автоматически это результат действия привязок по
|
|
|
|
|
умолчанию перед исполнением команды
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>invoke</strong>.</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает десятичное значение y-координаты в окне меню
|
|
|
|
|
верхнего пиксела поля входа, заданного аргументом
|
|
|
|
|
<em>индекс</em>.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2><a name=КОНФИГУРАЦИИ_МЕНЮ></a>КОНФИГУРАЦИИ МЕНЮ</h2>
|
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>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Всплывающие меню обычно выводятся при нажатии кнопки
|
|
|
|
|
"Мыши" или клавиши на клавиатуре. Сначала создаются
|
|
|
|
|
всплывающие меню и все каскадные подменю, затем в нужный
|
|
|
|
|
момент времени следует вызвать процедуру
|
|
|
|
|
<strong>tk_popup</strong>, в результате чего будет выведено
|
|
|
|
|
меню верхнего уровня.</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>Меню-переключатели с кнопкой</strong></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Меню-переключатель состоит из кнопки и связанного с ней
|
|
|
|
|
меню, которое позволяет выбрать одну из нескольких
|
|
|
|
|
возможностей. Описатель выбранной возможности выводится в
|
|
|
|
|
кнопке и в глобальной переменной запоминается соответствующее
|
|
|
|
|
значение. Для создания меню-переключателей используется
|
|
|
|
|
процедура <strong>tk_optionMenu</strong>.</dd>
|
|
|
|
|
|
|
|
|
|
<dt><strong>Отрывные меню</strong></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Отрывное меню создается при исполнении входа ключа отрыва в
|
|
|
|
|
верхней части имеющегося меню. Привязки по умолчанию создают
|
|
|
|
|
копию исходного меню и выводят ее в виде окна верхнего
|
|
|
|
|
уровня. Оторванное меню ведет себя точно так же, как и
|
|
|
|
|
исходное.</dd>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|