2093 lines
152 KiB
HTML
2093 lines
152 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<title>text</title>
|
||
</head>
|
||
<body>
|
||
<h1>text</h1>
|
||
|
||
<p>Создание текстового примитива и управление им.</p>
|
||
|
||
<h2><a name="СИНТАКСИС"></a>СИНТАКСИС</h2>
|
||
|
||
<pre>
|
||
<strong>text</strong> <em>имяПути параметры</em>
|
||
</pre>
|
||
|
||
<h2><a name="СТАНДАРТНЫЕ_ПАРАМЕТРЫ"></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2>
|
||
|
||
<ul>
|
||
<li><strong>-background</strong></li>
|
||
<li><strong>-borderwidth</strong></li>
|
||
<li><strong>-cursor</strong></li>
|
||
<li><strong>-exportselection</strong></li>
|
||
<li><strong>-font</strong></li>
|
||
<li><strong>-foreground</strong></li>
|
||
<li><strong>-highlightbackground</strong></li>
|
||
<li><strong>-highlightcolor</strong></li>
|
||
<li><strong>-highlightthickness</strong></li>
|
||
<li><strong>-insertbackground</strong></li>
|
||
<li><strong>-insertborderwidth</strong></li>
|
||
<li><strong>-insertofftime</strong></li>
|
||
<li><strong>-insertontime</strong></li>
|
||
<li><strong>-insertwidth</strong></li>
|
||
<li><strong>-padx</strong></li>
|
||
<li><strong>-pady</strong></li>
|
||
<li><strong>-relief</strong></li>
|
||
<li><strong>-selectbackground</strong></li>
|
||
<li><strong>-selectborderwidth</strong></li>
|
||
<li><strong>-selectforeground</strong></li>
|
||
<li><strong>-setgrid</strong></li>
|
||
<li><strong>-takefocus</strong></li>
|
||
<li><strong>-xscrollcommand</strong></li>
|
||
<li><strong>-yscrollcommand</strong></li>
|
||
</ul>
|
||
|
||
<p>Подробное описание этих параметров приведено в разделе
|
||
<a href="options.html"><strong>options</strong></a>.</p>
|
||
|
||
<h2><a name="ДОПОЛНИТЕЛЬНЫЕ_ПАРАМЕТРЫ_ПРИМИТИВА"></a>ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА</h2>
|
||
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-height</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>height</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Height</strong></td></tr>
|
||
</table>
|
||
|
||
|
||
<p>Задает желаемую высоту окна в символах; размер символа
|
||
определяется шрифтом, который задан параметром <a
|
||
href="">-font</a>. Значение параметра должно быть не меньше
|
||
единицы.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-spacing1</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>spacing1</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Spacing1</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Запрашивает дополнительный промежуток перед каждой строкой
|
||
текста в примитиве (в любой из разрешенных форм для расстояний
|
||
на экране). При переносе строки заданное значение относится
|
||
только к первой строчке на экране. Параметр
|
||
<strong>-spacing1</strong> в тегах подавляет данный.</p>
|
||
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-spacing2</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>spacing2</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Spacing2</strong></td></tr>
|
||
</table>
|
||
|
||
|
||
<p>Задает величину дополнительного промежутка между двумя
|
||
последовательными строчками на экране, полученными в результате
|
||
переноса одной строки текста (в любой из разрешенных форм для
|
||
расстояний на экране). Параметр <strong>spacing2</strong> в
|
||
тегах подавляет данный.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-spacing3</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>spacing3</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Spacing3</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Запрашивает дополнительный промежуток после каждой строкой
|
||
текста в примитиве (в любой из разрешенных форм для расстояний
|
||
на экране). При переносе строки заданное значение относится
|
||
только к последней строчке на экране. Параметр
|
||
<strong>-spacing3</strong> в тегах подавляет данный.</p>
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-state</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>state</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>State</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Задает одно из двух состояний текста: нормальное
|
||
(<strong>normal</strong>) или недоступное
|
||
(<strong>disabled</strong>). Текст, находящийся в недоступном
|
||
состоянии, нельзя редактировать и в нем не отображается курсор
|
||
ввода, даже если данный примитив находится в фокусе ввода.</p>
|
||
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-tabs</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>tabs</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Tabs</strong></td></tr>
|
||
</table>
|
||
|
||
|
||
<p>Задает набор положений табулятора в окне. Значение параметра
|
||
представляет собой список расстояний на экране, задающих эти
|
||
положения. Элемент списка, следующий за элементом, который
|
||
указывает очередное положение табулятора, может описывать способ
|
||
расположения текста относительно этого положения с помощью
|
||
ключевых слов <strong>left</strong>, <strong>right</strong>,
|
||
<strong>center</strong> или <strong>numeric</strong>. Значение
|
||
по умолчанию равно <strong>left</strong>; в этом случае левый
|
||
край текста, следующего за символом табуляции, располагается в
|
||
позиции табуляции. <strong>Right</strong> означает, что в
|
||
позиции табуляции располагается правый край текста, следующего
|
||
за символом табуляции, а <strong>center</strong> указывает на
|
||
необходимость центрировать текст относительно позиции
|
||
табуляции. <strong>Numeric</strong> означает, что в позиции
|
||
табуляции следует располагать десятичную точку текста; если в
|
||
тексте нет десятичной точки, то младшая значащая цифра числа
|
||
располагается непосредственно слева от позиции табуляции; если в
|
||
тексте нет чисел, то он выравнивается вправо по позиции
|
||
табуляции. Например, задание параметра <strong>-tabs {2c left
|
||
4c 6c center}</strong> приводит к созданию трех позиций
|
||
табулятора с двухсантиметровым интервалом, первые два из которых
|
||
используют выравнивание влево, а третья выравнивание по
|
||
центру. Если в списке положений табулятора их оказывается
|
||
недостаточно, чтобы обеспечить все символы табуляции в строке
|
||
текста, то Tk создает дополнительные позиции табуляции,
|
||
экстраполируя промежуток и способ выравнивания текста, указанные
|
||
последним элементом списка. Параметр <strong>-tabs</strong> в
|
||
тегах подавляет данный. Если параметр <strong>-tabs</strong> не
|
||
задан или его значением является пустая строка, то Tk использует
|
||
табуляцию по умолчанию с шагом, равным восьми символам среднего
|
||
размера.</p>
|
||
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-width</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>width</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Width</strong></td></tr>
|
||
</table>
|
||
|
||
|
||
<p>Задает желаемую ширину окна в символах; размер символа
|
||
определяется шрифтом, который задан параметром -font. Если
|
||
ширина символа в шрифте непостоянна, то для перевода числа
|
||
символов в единицы экрана используется ширина символа "0".
|
||
</p>
|
||
|
||
|
||
<table>
|
||
<tr><td>Имя параметра:</td><td><strong>-wrap</strong></td></tr>
|
||
<tr><td>Имя в Базе:</td><td><strong>wrap</strong></td></tr>
|
||
<tr><td>Класс в Базе:</td><td><strong>Wrap</strong></td></tr>
|
||
</table>
|
||
|
||
<p>Задает способ обращения с чересчур длинными строками, которые
|
||
не помещаются в одной строчке экрана. Может принимать одно из
|
||
значений <strong>none</strong>, <strong>char</strong> или
|
||
<strong>word</strong>. Значение <strong>none</strong> указывает
|
||
на то, что каждая строка текста отображается в единственной
|
||
строчке экрана не поместившиеся символы не выводятся. В
|
||
остальных двух режимах при необходимости осуществляется перенос
|
||
каждой строки текста, чтобы все ее содержимое отображалось на
|
||
экране. В режиме <strong>char</strong> переход на новую строчку
|
||
можно осуществлять после любого символа; в режиме
|
||
<strong>word</strong> перенос строки выполняется только после
|
||
конца слова.</p>
|
||
|
||
<h2><a name="ОПИСАНИЕ"></a>ОПИСАНИЕ</h2>
|
||
|
||
<p>Команда <strong>text</strong> создает новое окно (задаваемое
|
||
аргументом <em>имяПути</em>) и превращает его в текстовый
|
||
примитив. Детали изображения текста, такие как цвет фона по
|
||
умолчанию и объемный вид, задаются с помощью описанных выше
|
||
дополнительных параметров. Команда <strong>text</strong>
|
||
возвращает имя пути нового окна.</p>
|
||
|
||
<p>Текстовый примитив предназначен для вывода одной или нескольких
|
||
строк текста и для редактирования этого текста. Текстовые
|
||
примитивы поддерживают четыре способа отметить часть текста так
|
||
называемые теги, метки, вставленные окна и вставленные
|
||
изображения. Теги позволяют выводить различные части текста
|
||
различными шрифтами и цветом. Кроме того с тегами можно связать
|
||
команды Tcl, которые будут выполняться каждый раз при совершении
|
||
определенных действий, например, при нажатиях на клавиши
|
||
клавиатуры и "Мыши", если курсор находится в определенной части
|
||
текста. Подробно эти возможности описаны ниже (см. "<a
|
||
href="#ТЕГИ">Теги</a>").</p>
|
||
|
||
<p>Метки представляют собой другой способ отметить часть
|
||
текста. Они предназначены для указания на различные интересные
|
||
места в тексте, возникающие в процессе его
|
||
редактирования. Подробно эти возможности описаны ниже
|
||
(см. "<a href="#МЕТКИ">Метки</a>").</p>
|
||
|
||
<p>Третий способ обеспечивает возможность вставки в текст
|
||
произвольных окон. Подробно эти возможности описаны ниже
|
||
(см. "<a href="#ВСТАВЛЕННЫЕ_ОКНА">Вставленные
|
||
окна</a>").</p>
|
||
|
||
<p>Четвертый способ обеспечивает возможность вставки в текст
|
||
изображений Tk. Подробно эти возможности описаны ниже
|
||
(см. "<a href="#ВСТАВЛЕННЫЕ_ИЗОБРАЖЕНИЯ">Вставленные
|
||
изображения</a>".)</p>
|
||
|
||
|
||
<h2><a name="ИНДЕКСЫ"></a>ИНДЕКСЫ</h2>
|
||
|
||
<p>Аргументами многих команд примитива являются один или несколько
|
||
индексов. Индекс представляет собой строку, указывающую
|
||
конкретное место в тексте например, место вставки текста или
|
||
один из граничных символов удаляемого участка текста. Индексы
|
||
имеют следующий синтаксис:</p>
|
||
|
||
<pre>
|
||
база модификатор модификатор модификатор ...
|
||
</pre>
|
||
|
||
<p><em>База</em> это указатель начальной точки, а
|
||
<em>модификаторы</em> указывают сдвиг от начальной точки
|
||
(например, на один символ влево или вправо от базы). База
|
||
является обязательной частью индекса, а модификаторы
|
||
необязательной.</p>
|
||
|
||
<p><em>База</em> индекса должна быть представлена в одном из
|
||
следующих видов:</p>
|
||
|
||
<dl>
|
||
<dt><em>строка</em>.<em>сим</em></dt>
|
||
|
||
<dd>Указывает на символ с номером <em>сим</em> в строке с
|
||
номером <em>строка</em> . Для совместимости с другими
|
||
программами ОС UNIX, использующими тот же подход к нумерации,
|
||
строки нумеруются, начиная с "1". Нумерация символов
|
||
в строке начинается с "0". Если значением
|
||
<em>сим</em> является <strong>end</strong>, то база ссылается
|
||
на символ перевода строки, завершающий строку.</dd>
|
||
|
||
<dt><strong>@</strong><em>x</em>,<em>y</em></dt>
|
||
|
||
<dd>Указывает на символ, в котором находится точка с
|
||
координатами в окне текста равными <em>x</em> и
|
||
<em>y</em>.</dd>
|
||
|
||
<dt><strong>end</strong></dt>
|
||
|
||
<dd>Указывает на конец текста (на символ, следующий
|
||
непосредственно за последним символом перехода на новую
|
||
строку).</dd>
|
||
|
||
<dt><em>метка</em></dt>
|
||
|
||
<dd>Указывает на символ, следующий непосредственно за меткой с
|
||
именем <em>метка</em>.</dd>
|
||
|
||
<dt><em>тег</em>.<strong>first</strong></dt>
|
||
|
||
<dd>Указывает на первый символ в тексте, помеченный тегом с
|
||
именем <em>тег</em>. Если в тексте нет символов, помеченных
|
||
<em>тег</em>ом, то возникает ошибка.</dd>
|
||
|
||
<dt><em>тег</em>.<strong>last</strong></dt>
|
||
|
||
<dd>Указывает на символ, непосредственно следующий за последним
|
||
символом, помеченным тегом с именем <em>тег</em>. Если в
|
||
тексте нет символов, помеченных <em>тег</em>ом, то возникает
|
||
ошибка.</dd>
|
||
|
||
<dt><em>имяПути</em></dt>
|
||
|
||
<dd>Указывает положение вставленного окна с именем
|
||
<em>имяПути</em>. Если вставленное окно с заданным именем
|
||
отсутствует, то возникает ошибка.</dd>
|
||
|
||
<dt><em>имяИзобр</em></dt>
|
||
|
||
<dd>Указывает положение вставленного изображения с именем
|
||
<em>имяИзобр</em>. Если вставленное изображение с заданным
|
||
именем отсутствует, то возникает ошибка.</dd>
|
||
</dl>
|
||
|
||
<p>Если вид базы не определяется однозначно (так, например, если
|
||
<em>метка</em> и <em>имяИзобр</em> имеют одинаковое значение, то
|
||
их нельзя различить), то предпочтение отдается виду,
|
||
встречающемуся в приведенном списке раньше. Если за индексом
|
||
базы идут модификаторы, то каждый из них должен быть представлен
|
||
в одном из описанных ниже видов. Ключевые слова, например,
|
||
<strong>chars</strong> или <strong>wordend</strong>, можно
|
||
сокращать, если результат сокращения позволяет однозначно
|
||
восстановить слово.</p>
|
||
|
||
<dl>
|
||
<dt><strong>+</strong> <em>счет</em> <strong>chars</strong></dt>
|
||
|
||
<dd>Увеличивает индекс на <em>счет</em> символов, при
|
||
необходимости переходя на следующую строку. Если за символом с
|
||
текущим индексом следует меньше символов, чем <em>счет</em>,
|
||
то индекс устанавливается на последний символ в
|
||
тексте. Пробелы по обе стороны от значения <em>счет</em>
|
||
необязательны.</dd>
|
||
|
||
<dt><strong>-</strong> <em>счет</em> <strong>chars</strong></dt>
|
||
|
||
<dd>Уменьшает индекс на <em>счет</em> символов, при
|
||
необходимости переходя на предыдущую строку. Если перед
|
||
символом с текущим индексом идет меньше символов, чем
|
||
<em>счет</em>, то индекс устанавливается на первый символ в
|
||
тексте. Пробелы по обе стороны от значения <em>счет</em>
|
||
необязательны.</dd>
|
||
|
||
<dt><strong>+</strong> <em>счет</em> <strong>lines</strong></dt>
|
||
|
||
<dd>Увеличивает индекс на <em>счет</em> строк, сохраняя номер
|
||
символа в строке. Если за строкой с текущим индексом следует
|
||
меньше строк, чем <em>счет</em>, то индекс устанавливается на
|
||
символ с тем же номером в последней строчке текста. Если длина
|
||
строки с новым положением индекса меньше номера символа, то
|
||
индекс указывает на последний символ в этой строке (символ
|
||
перевода строки). Пробелы по обе стороны от значения
|
||
<em>счет</em> необязательны.</dd>
|
||
|
||
<dt><strong>-</strong> <em>счет</em> <strong>lines</strong></dt>
|
||
|
||
<dd>Уменьшает индекс на <em>счет</em> строк, сохраняя номер
|
||
символа в строке. Если перед строкой с текущим индексом идет
|
||
меньше строк, чем <em>счет</em>, то индекс устанавливается на
|
||
символ с тем же номером в первой строчке текста. Если длина
|
||
строки с новым положением индекса меньше номера символа, то
|
||
индекс указывает на последний символ в этой строке (символ
|
||
перевода строки). Пробелы по обе стороны от значения
|
||
<em>счет</em> необязательны.</dd>
|
||
|
||
<dt><strong>linestart</strong></dt>
|
||
|
||
<dd>Устанавливает индекс на первый символ в строке.</dd>
|
||
|
||
<dt><strong>lineend</strong></dt>
|
||
|
||
<dd>Устанавливает индекс на последний символ в строке (символ
|
||
перевода строки).</dd>
|
||
|
||
<dt><strong>wordstart</strong></dt>
|
||
|
||
<dd>Устанавливает индекс на первый символ в слове, содержащем
|
||
символ с текущим значением индекса. Слово представляет собой
|
||
последовательность букв, цифр или символов подчеркивания
|
||
(состоящую, быть может, из одного символа).</dd>
|
||
|
||
<dt><strong>wordend</strong></dt>
|
||
|
||
<dd>Устанавливает индекс на первый символ в слове, содержащем
|
||
символ с текущим значением индекса. Если текущее значение
|
||
индекса и без того указывает на последний символ в слове, то
|
||
оно не изменяется.</dd>
|
||
</dl>
|
||
|
||
<p>Если в команде задано несколько модификаторов, то они
|
||
применяются слева направо. Так, например, индекс
|
||
"<strong>end-1 chars</strong>" указывает на
|
||
предпоследний символ в тексте, а индекс "<strong>insert
|
||
wordstart-1 c</strong>" указывает на символ,
|
||
непосредственно предшествующий первому символу в слове,
|
||
содержащем символ с текущим значением индекса.</p>
|
||
|
||
<h2><a name="ТЕГИ"></a>ТЕГИ</h2>
|
||
|
||
<p>Участки текста можно помечать с помощью тегов. Тег представляет
|
||
собой символьную строку, которая привязана к некоторым символам
|
||
текста. В принципе теги могут содержать любые символы, однако
|
||
использования символов " " (пробел), "+"
|
||
и "-" лучше избегать: это специальные символы
|
||
индексов и использование тега, в котором присутствуют такие
|
||
символы, в качестве индекса невозможно. С символами данного
|
||
текста можно связать произвольное количество тегов. Каждый тег
|
||
может относиться к одному символу, последовательности символов
|
||
или к нескольким последовательностям символов. С отдельным
|
||
символом может быть связано произвольное количество тегов.</p>
|
||
|
||
<p>Все теги упорядочены; на этот порядок опираются некоторые из
|
||
описываемых ниже функций работы с тегами. При определении тега
|
||
(путем связывания его с символами, или при установке параметров
|
||
его представления на экране, или при привязке к нему команд) он
|
||
получает более высокий приоритет, чем все существующие
|
||
теги. Приоритетный порядок тегов можно изменить с помощью команд
|
||
примитива "<em>имяПути</em> <strong>tag
|
||
raise</strong>" и "<em>имяПути</em> <strong>tag
|
||
lower</strong>".</p>
|
||
|
||
<p>В текстовых примитивах теги служат для достижения трех
|
||
целей. Во-первых, они управляют отображением информации на
|
||
экране. По умолчанию способ отображения текста определяется
|
||
значениями параметров <strong>background</strong>,
|
||
<strong>font</strong> и <strong>foreground</strong> текстового
|
||
примитива. Однако команда примитива "<em>имяПути</em>
|
||
<strong>tag configure</strong>" позволяет связать с каждым тегом
|
||
свои значения параметров отображения. Если с символом связан
|
||
тег, то значения параметров отображения для этого тега подавляют
|
||
значения по умолчанию. В настоящее время для тегов можно
|
||
пользоваться следующими параметрами:</p>
|
||
|
||
<dl>
|
||
<dt><strong>-background</strong> <em>цвет</em></dt>
|
||
|
||
<dd>Параметр <em>цвет</em> задает цвет фона для изображения
|
||
символов, связанных с данным тегом. Его значение может быть
|
||
представлено в любом виде, приемлемом для
|
||
<strong>Tk_GetColor</strong>.</dd>
|
||
|
||
<dt><strong>-bgstipple</strong> <em>двуцвет</em></dt>
|
||
|
||
<dd>Параметр <em>двуцвет</em> задает двуцветное изображение,
|
||
предназначенное для вывода в качестве фона для текста. Его
|
||
значение может быть представлено в любом виде, приемлемом для
|
||
<strong>Tk_GetBitmap</strong>. Если параметр <em>двуцвет</em>
|
||
не задан или его значением является пустая строка, то
|
||
используется равномерное заполнение фона.
|
||
</dd>
|
||
|
||
<dt><strong>-borderwidth</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает ширину трехмерного бордюра,
|
||
окружающего фон. Его значение может быть представлено в любом
|
||
виде, приемлемом для <strong>Tk_GetPixels</strong>. Этот
|
||
параметр используется в сочетании с параметром
|
||
<strong>-relief</strong> для описания трехмерного
|
||
представления фона для символов; если параметр
|
||
<strong>-background</strong> для тега не задан, то параметр
|
||
<strong>-borderwidth</strong> игнорируется.</dd>
|
||
|
||
<dt><strong>-fgstipple</strong> <em>двуцвет</em></dt>
|
||
|
||
<dd>Параметр <em>двуцвет</em> задает двуцветное изображение,
|
||
предназначенное для вывода в качестве фона для рисования
|
||
текста и другой информации переднего плана (например,
|
||
подчеркивания). Его значение может быть представлено в любом
|
||
виде, приемлемом для <strong>Tk_GetBitmap</strong>. Если
|
||
параметр <em>двуцвет</em> не задан или его значением является
|
||
пустая строка, то используется равномерное заполнение
|
||
фона.</dd>
|
||
|
||
<dt><strong>-font</strong> <em>имяШрифта</em></dt>
|
||
|
||
<dd>Параметр <em>имяШрифта</em> задает имя шрифта для
|
||
изображения символов. Его значение может быть представлено в
|
||
любом виде, которы описан в команде <a
|
||
href="font.html"><strong>font</strong></a>.</dd>
|
||
|
||
<dt><strong>-foreground</strong> <em>цвет</em></dt>
|
||
|
||
<dd>Параметр <em>цвет</em> задает цвет символов текста и другой
|
||
информации переднего плана, например, подчеркивания. Его
|
||
значение может быть представлено в любом виде, приемлемом для
|
||
<strong>Tk_GetColor</strong>.</dd>
|
||
|
||
<dt><strong>-justify</strong> <em>вырав</em></dt>
|
||
|
||
<dd>Если первый символ строчки на экране связан с тегом, для
|
||
которого задан такой параметр, то значение параметра
|
||
определяет способ выравнивания текста в строчке. Параметр
|
||
вырав может принимать значения <strong>left</strong>,
|
||
<strong>right</strong> и <strong>center</strong>. При переносе
|
||
строки выравнивание каждой из получившихся строчек на экране
|
||
определяется первым символом этой строчки.</dd>
|
||
|
||
<dt><strong>-lmargin1</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Если первый символ строчки на экране связан с тегом, для
|
||
которого задан такой параметр, то значение параметра пиксели
|
||
задает величину отступа от левого края окна. Значение
|
||
параметра пиксели представляет собой расстояние на экране в
|
||
любом допустимом виде. При переносе строки этот параметр
|
||
применяется только к первой строчке на экране; отступом
|
||
остальных строк управляет параметр
|
||
<strong>-lmargin2</strong>.</dd>
|
||
|
||
<dt><strong>-lmargin2</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Если первый символ строчки на экране связан с тегом, для
|
||
которого задан такой параметр, и если строчка на экране не
|
||
является первой строчкой строки текста (т.е. она представляет
|
||
собой часть перенесенной строки текста), то значение параметра
|
||
пиксели задает величину отступа данной строчки от левого края
|
||
окна. Значение параметра пиксели представляет собой расстояние
|
||
на экране в любом допустимом виде. Этот параметр используется
|
||
только если допускается перенос строки; он применяется только
|
||
ко второй и последующим перенесенным строчкам.</dd>
|
||
|
||
<dt><strong>-offset</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает величину сдвига (в
|
||
пикселях) по вертикали базиса строки текста от базиса основной
|
||
строки. Например, для верхних индексов базисная строка
|
||
сдвигается вверх, а для нижних вниз. Значение параметра
|
||
пиксели представляет собой расстояние на экране в любом
|
||
допустимом виде.</dd>
|
||
|
||
<dt><strong>-overstrike</strong> <em>булевское</em></dt>
|
||
|
||
<dd>Указывает, следует ли проводить горизонтальную прямую
|
||
посередине символов. Значение параметра <em>булевское</em>
|
||
может быть представлено в любом виде, приемлемом для
|
||
<strong>Tk_GetBoolean</strong>.</dd>
|
||
|
||
<dt><strong>-relief</strong> <em>обвид</em></dt>
|
||
|
||
<dd>Значение параметра <em>обвид</em> задает объемный вид фона в
|
||
любом виде, приемлемом для <strong>Tk_GetRelief</strong>. Этот
|
||
параметр используется в сочетании с параметром
|
||
<strong>-borderwidth</strong> для установления трехмерного
|
||
вида фона для символов; если параметр
|
||
<strong>-background</strong> для данного тега не установлен,
|
||
то параметр <strong>-relief</strong> игнорируется.</dd>
|
||
|
||
<dt><strong>-rmargin</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Если первый символ строчки на экране связан с тегом, для
|
||
которого задан такой параметр, то значение параметра пиксели
|
||
задает величину отступа между последним символом строчки и
|
||
правым краем окна. Значение параметра пиксели представляет
|
||
собой расстояние на экране в любом допустимом виде. Этот
|
||
параметр используется только, если перенос строки
|
||
допустим. При переносе строки этот параметр применяется только
|
||
ко всем перенесенным строчкам.</dd>
|
||
|
||
<dt><strong>-spacing1</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства над каждой строкой текста. Значение параметра
|
||
пиксели представляет собой расстояние на экране в любом
|
||
допустимом виде. При переносе строки этот параметр применяется
|
||
только к первой строчке на экране.</dd>
|
||
|
||
<dt><strong>-spacing2</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства над каждой перенесенной строчкой из строчек,
|
||
составляющих одну строку текста. Значение параметра пиксели
|
||
представляет собой расстояние на экране в любом допустимом
|
||
виде.</dd>
|
||
|
||
<dt><strong>-spacing3</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства под каждой строкой текста. Значение параметра
|
||
пиксели представляет собой расстояние на экране в любом
|
||
допустимом виде. При переносе строки этот параметр применяется
|
||
только к последней строчке на экране.</dd>
|
||
|
||
<dt><strong>-tabs</strong> <em>списТаб</em></dt>
|
||
|
||
<dd>Параметр <em>списТаб</em> задает набор положений табулятора
|
||
в том же виде, что и параметр <strong>-tabs</strong> для
|
||
текстового примитива. Этот параметр относится к строке текста
|
||
только в том случае, если он связан с первым символом
|
||
строки. Если значением параметра является пустая строка, то
|
||
параметр считается не заданным для данного тега (по
|
||
умолчанию). Если значением параметра является не пустая
|
||
строка, а пустой список (например, установка параметра имеет
|
||
вид <strong>-tags { }</strong>), то его значением считается
|
||
стандартный набор 8-символьных позиций табулятора
|
||
(см. описание параметра <strong>-tags</strong> для
|
||
примитива).</dd>
|
||
|
||
<dt><strong>-underline</strong> <em>булевское</em></dt>
|
||
|
||
<dd>Параметр <em>булевское</em> указывает, следует ли
|
||
подчеркивать символы. Значение параметра булевское может быть
|
||
представлено в любом виде, приемлемом для
|
||
<strong>Tk_GetBoolean</strong>.</dd>
|
||
|
||
<dt><strong>-wrap</strong> <em>режим</em></dt>
|
||
|
||
<dd>Параметр <em>режим</em> задает способ обработки строк, длина
|
||
которых превышает ширину текстового окна. Допустимые значения
|
||
параметра те же, что и у параметра <strong>-wrap</strong>
|
||
текстового примитива: <strong>none</strong>,
|
||
<strong>char</strong> и <strong>word</strong>. Если этот
|
||
параметр задан, то он подавляет параметр
|
||
<strong>-wrap</strong> текстового примитива.</dd>
|
||
</dl>
|
||
|
||
<p>Если с символом связано несколько тегов, причем задаваемые ими
|
||
параметры вывода противоречат друг другу, то используются
|
||
значения параметров тегов с наивысшим приоритетом. Если
|
||
некоторый параметр вывода для конкретного тега не задан или если
|
||
его значением является пустая строка, то этот параметр при
|
||
выводе не используется; вместо него берется параметр тега со
|
||
следующим приоритетом. Если ни один из тегов не определяет
|
||
параметра вывода, то используется стиль, принятый для данного
|
||
примитива по умолчанию.</p>
|
||
|
||
<p>Во-вторых, теги служат для привязки событий. Привязки к тегу
|
||
осуществляются практически таким же образом, как и привязки к
|
||
классу примитива: заданная команда Tcl исполняется всякий раз,
|
||
когда на символе с данным тегом происходит указанное событие. С
|
||
помощью привязок к тегам можно задать поведение групп символов;
|
||
помимо прочего таким образом можно реализовать некоторые
|
||
свойства гипертекста. Подробное описание этих возможностей
|
||
см. ниже в описании команды примитива <strong>tag
|
||
bind</strong>.</p>
|
||
|
||
<p>Третья задача тегов обеспечивать управление выделениями
|
||
(См. "<a href="#ВЫДЕЛЕНИЕ">Выделение</a>" ).</p>
|
||
|
||
<h2><a name="МЕТКИ"></a>МЕТКИ</h2>
|
||
|
||
<p>Метки представляют собой другой способ отмечать части
|
||
текста. Они служат для запоминания фиксированных мест в
|
||
тексте. Метки похожи на теги в том, что они поименованы и
|
||
ссылаются на определенные места в тексте, однако они не связаны
|
||
ни с какими конкретными символами. Напротив, метка указывает на
|
||
промежуток между двумя символами. В каждый момент времени метка
|
||
указывает в точности на одно положение. При удалении символов,
|
||
окружающих положение метки, сама метка сохраняется, меняются
|
||
лишь ее соседи. Теги же теряют привязку к символам при удалении
|
||
этих символов. Для работы с метками предназначена команда
|
||
примитива "<em>имяПути</em> <strong>mark</strong>";
|
||
имя метки можно использовать в качестве индекса в командах
|
||
примитива этот индекс указывает на текущее положение метки.</p>
|
||
|
||
<p>Каждой метке приписывается <em>притяжение</em>, которое может
|
||
принимать значения <strong>left</strong> и
|
||
<strong>right</strong>. Притяжение определяет поведение метка
|
||
при вводе текста в положении метки. При левом притяжении метка
|
||
ведет себя, как если бы она была приписана к символу слева от
|
||
нее; такая метка будет оставаться слева от вновь вводимого
|
||
текста. Для метки с правым притяжением вновь вводимый текст
|
||
окажется слева от нее. По умолчанию притяжение имеет значение
|
||
<strong>right</strong>.</p>
|
||
|
||
<p>Пространства имен меток и тегов различны: одинаковые имена
|
||
могут использоваться для метки и тега; при этом они будут
|
||
ссылаться на различные объекты.</p>
|
||
|
||
<p>У двух меток есть особый смысл. Метка <strong>insert</strong>
|
||
связана с курсором ввода; см. описание ниже (см. "<a
|
||
href="#КУРСОР">Курсор ввода</a>"). Метка
|
||
<strong>current</strong> связана с символом, ближайшим к курсору
|
||
"Мыши", ее положение меняется автоматически при
|
||
изменении позиции курсора и любых изменениях текста в примитиве
|
||
(с одним исключением: метка <strong>current</strong> не
|
||
обновляется в ответ на изменение положения курсора при нажатой
|
||
клавише "Мыши"; обновление откладывается до момента,
|
||
когда все клавиши "Мыши" будут отпущены). Ни одну из
|
||
этих двух специальных меток нельзя удалить.</p>
|
||
|
||
<h2><a name="ВСТАВЛЕННЫЕ_ОКНА"></a>ВСТАВЛЕННЫЕ ОКНА</h2>
|
||
|
||
<p>Вставленное окно это третий тип ссылок в текстовом
|
||
примитиве. Ссылка на вставленное окно приводит к появлению окна
|
||
в заданном месте текста. В текстовом примитиве может быть любое
|
||
количество вставленных окон; в качестве вставленного окна может
|
||
быть использован любой примитив (при соблюдении обычных
|
||
ограничений управления геометрией, согласно которым текстовое
|
||
окно должно быть непосредственным предком вставленного окна или
|
||
потомком этого предка). Положение вставленного окна меняется
|
||
при редактировании или прокрутке текста; окно выводится или
|
||
стирается в зависимости от того, попадает ли оно в видимую часть
|
||
текста. Вставленное окно считается одним символом в индексном
|
||
пространстве текстового примитива; на него можно сослаться либо
|
||
по имени текстового окна, либо по значению индекса в индексном
|
||
пространстве. При удалении области текста, содержащей
|
||
вставленное окно, оно разрушается.</p>
|
||
|
||
<p>При добавлении в текстовый примитив вставленного окна с помощью
|
||
команды примитива <strong>window create</strong> с ним можно
|
||
связать несколько параметров конфигурации. Значения этих
|
||
параметров можно впоследствии изменить командой примитива
|
||
<strong>window configure</strong>. В настоящее время
|
||
поддерживаются следующие параметры:</p>
|
||
|
||
<dl>
|
||
|
||
<dt><strong>-align</strong> <em>где</em></dt>
|
||
|
||
<dd>Если высота вставленного окна отличается от высоты строчки,
|
||
в которой оно выводится, то этот параметр определяет место,
|
||
где выводится окно. Параметр где может принимать следующие
|
||
значения: <strong>top</strong> (верхушка окна совпадает с
|
||
верхней частью строчки), <strong>center</strong> (окно
|
||
центрируется в области строчки), <strong>bottom</strong>
|
||
(нижняя часть окна совпадает с нижней частью строчки) и
|
||
<strong>baseline</strong> (нижняя часть окна совпадает с базой
|
||
строчки).</dd>
|
||
|
||
<dt><strong>-create</strong> <em>скрипт</em></dt>
|
||
|
||
<dd>Задает скрипт Tcl, выполняемый для создания вставленного
|
||
окна. Этот скрипт выполняется при выводе окна, если для окна
|
||
не был указан параметр <strong>-window</strong>.Скрипт
|
||
создает окно и возвращает в качестве результата имя этого
|
||
окна. Если окно удаляется, то при его повторном выводе снова
|
||
исполняется тот же скрипт.</dd>
|
||
|
||
<dt><strong>-padx</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр пиксели задает размер дополнительного пространства,
|
||
которое следует оставить по обе стороны вставленного окна. Его
|
||
значение представляет собой расстояние на экране в любом
|
||
допустимом виде.</dd>
|
||
|
||
<dt><strong>-pady</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства, которое следует оставить сверху и снизу от
|
||
вставленного окна. Его значение представляет собой расстояние
|
||
на экране в любом допустимом виде.</dd>
|
||
|
||
<dt><strong>-stretch</strong> <em>булевское</em></dt>
|
||
|
||
<dd>Параметр указывает, следует ли вытягивать вставленное окно
|
||
до высоты строчки, если запрошенная для него высота меньше
|
||
высоты строчки, на которой это окно выводится. Если для окна
|
||
задан также параметр <strong>-pady</strong>, то запрошенное
|
||
этим параметром обрамление сохраняется и при вытягивании
|
||
окна.</dd>
|
||
|
||
<dt><strong>-window</strong> <em>имяПути</em></dt>
|
||
|
||
<dd>Задает имя выводимого окна.</dd>
|
||
</dl>
|
||
|
||
<h2><a name="ВСТАВЛЕННЫЕ_ИЗОБРАЖЕНИЯ"></a>ВСТАВЛЕННЫЕ ИЗОБРАЖЕНИЯ</h2>
|
||
|
||
<p>Последним видом пометок в текстовых примитивах являются
|
||
вставленные изображения. Такая пометка приводит к выводу
|
||
изображения в заданном месте текста. В текстовом примитиве может
|
||
присутствовать произвольное количество вставленных изображений,
|
||
а одно и то же изображение может вставляться в произвольном
|
||
количестве мест в тексте. Положение вставленного изображения
|
||
меняется при редактировании или прокрутке текста. Вставленное
|
||
изображение считается одним символом в индексном пространстве
|
||
текстового примитива; на него можно сослаться либо по значению
|
||
индекса в индексном пространстве, либо по имени, которое оно
|
||
получает при создании командой <a
|
||
href="image.html#create"><strong>image create</strong></a>. При
|
||
удалении области текста, содержащей вставленное изображение,
|
||
данная его копия стирается с экрана.</p>
|
||
|
||
<p>При добавлении в текстовый примитив вставленного изображения с
|
||
помощью команды примитива <a
|
||
href="image.html#create"><strong>image create</strong></a>
|
||
команда возвращает уникальное имя данного вхождения изображения
|
||
в текст. Это имя в дальнейшем можно использовать для ссылок на
|
||
вхождение изображения. Имя совпадает со значением параметра
|
||
<strong>-name</strong> (см. ниже). Если параметр
|
||
<strong>-name</strong> не задан, то вместо него используется имя
|
||
<strong>-image</strong>. Если значение <em>имяИзобр</em> уже
|
||
использовано в примитиве, то к нему дописываются символы
|
||
<em>#nn</em>, где <em>nn</em> произвольное целое число. Таким
|
||
образом обеспечивается уникальность имени. После присвоения
|
||
имени данному вхождению изображения это имя в дальнейшем не
|
||
меняется, несмотря на то, что значения параметров
|
||
<strong>-image</strong> и <strong>-name</strong> можно поменять
|
||
с помощью команды <a href="image.html#configure"><strong>image
|
||
configure</strong></a>.</p>
|
||
|
||
<p>При добавлении в текстовый примитив вставленного изображения с
|
||
помощью команды примитива <a
|
||
href="image.html#create"><strong>image create</strong></a> с ним
|
||
можно связать несколько параметров конфигурации. Значения этих
|
||
параметров можно впоследствии изменить командой примитива <a
|
||
href="image.html#configure"><strong>image
|
||
configure</strong></a>. В настоящее время поддерживаются
|
||
следующие параметры:</p>
|
||
|
||
<dl>
|
||
<dt><strong>-align</strong> <em>где</em></dt>
|
||
|
||
<dd>Если высота вставленного изображения отличается от высоты
|
||
строчки, в которой оно выводится, то этот параметр определяет
|
||
место, где выводится изображение. Параметр где может принимать
|
||
следующие значения: <strong>top</strong> (верхушка
|
||
изображения совпадает с верхней частью строчки),
|
||
<strong>center</strong> (изображение центрируется в области
|
||
строчки), <strong>bottom</strong> (нижняя часть изображения
|
||
совпадает с нижней частью строчки) и <strong>baseline</strong>
|
||
(нижняя часть изображения совпадает с базой строчки).</dd>
|
||
|
||
<dt><strong>-image</strong> <em>изобр</em></dt>
|
||
|
||
<dd>Задает имя выводимого изображения Tk. Если значение
|
||
параметра не является допустимым именем изображения, то
|
||
возвращается сообщение об ошибке.</dd>
|
||
|
||
<dt><strong>-name</strong> <em>ИмяИзобр</em></dt>
|
||
|
||
<dd>Задает имя ссылки на данное вхождение изображения. Если
|
||
параметр <em>ИмяИзобр</em> не задан, то именем служит имя
|
||
изображения Tk. Если значение параметра ИмяИзобр уже
|
||
использовалось, то к нему приписываются символы #nn, как
|
||
описано выше.</dd>
|
||
|
||
<dt><strong>-padx</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства, которое следует оставить по обе стороны
|
||
вставленного изображения. Его значение представляет собой
|
||
расстояние на экране в любом допустимом виде.</dd>
|
||
|
||
<dt><strong>-pady</strong> <em>пиксели</em></dt>
|
||
|
||
<dd>Параметр <em>пиксели</em> задает размер дополнительного
|
||
пространства, которое следует оставить сверху и снизу от
|
||
вставленного изображения. Его значение представляет собой
|
||
расстояние на экране в любом допустимом виде.</dd>
|
||
</dl>
|
||
|
||
<h2><a name="ВЫДЕЛЕНИЕ"></a>ВЫДЕЛЕНИЕ</h2>
|
||
|
||
<p>Выделение реализуется с помощью тегов. Если параметр
|
||
<strong>exportSelection</strong> текстового примитива имеет
|
||
значение истина, то с выделением ассоциируется тег
|
||
<strong>sel</strong>:
|
||
|
||
<ol>
|
||
<li>Если некоторые символы помечены тегом
|
||
<strong>sel</strong>, то текстовый примитив притязает на
|
||
владение выделением.</li>
|
||
|
||
<li>Результатом поиска выделения будут служить все символы,
|
||
помеченные тегом <strong>sel</strong>.</li>
|
||
|
||
<li>Если выделение запрашивается другим приложением или другим
|
||
окном данного приложения, то тег <strong>sel</strong>
|
||
снимается со всех символов текста.</li>
|
||
</ol>
|
||
|
||
<p>Тег <strong>sel</strong> определяется автоматически при
|
||
создании текстового примитива; его нельзя удалить командой
|
||
примитива "<em>имяПути</em> <strong>tag
|
||
delete</strong>". Кроме того параметры
|
||
<strong>selectBackground</strong>,
|
||
<strong>selectBorderWidth</strong> и
|
||
<strong>selectForeground</strong> текстового примитива связаны с
|
||
параметрами <strong>-background</strong>,
|
||
<strong>-borderwidth</strong> и <strong>-foreground</strong>
|
||
тега <strong>sel</strong>: изменение одного из этих параметров
|
||
примитива автоматически вызывает изменение соответствующего
|
||
параметра тега и наоборот.</p>
|
||
|
||
|
||
<h2><a name="КУРСОР_ВВОДА"></a>КУРСОР ВВОДА</h2>
|
||
|
||
<p>Метка с именем <strong>insert</strong> имеет в текстовых
|
||
примитивах специальное значение. Она определяется автоматически
|
||
при создании примитива и ее нельзя отменить командой примитива
|
||
"<em>имяПути</em><strong>mark unset</strong>". Метка
|
||
<strong>insert</strong> задает положение курсора ввода; курсор
|
||
ввода отображается в этом положении всякий раз, когда текстовый
|
||
примитив попадает в фокус ввода.</p>
|
||
|
||
<h2><a name="КОМАНДА_ПРИМИТИВА"></a>КОМАНДА ПРИМИТИВА</h2>
|
||
|
||
<p>Команда <strong>text</strong> создает новую команду Tcl, имя
|
||
которой совпадает с именем текстового окна. С помощью этой
|
||
команды можно выполнять различные операции над примитивом. Ее
|
||
общий вид</p>
|
||
|
||
<pre>
|
||
имяПути параметр ?арг арг ...?
|
||
</pre>
|
||
|
||
<p><em>имяПути</em> является именем команды; оно совпадает с
|
||
именем пути текстового примитива. Параметр и аргументы уточняют
|
||
поведение команды. Текстовые примитивы допускают следующие формы
|
||
команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>bbox</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Возвращает список из четырех элементов, описывающий область
|
||
экрана, занимаемую символом с индексом <em>индекс</em>. Первые
|
||
два элемента списка представляют собой координаты x и y
|
||
верхнего левого угла этой области; последние два это ее ширина
|
||
и высота. Если символ виден на экране лишь частично, то
|
||
возвращаемые значения описывают видимую часть области. Если
|
||
символ на экране не виден, то возвращаемое значение является
|
||
пустым списком.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>cget</strong>
|
||
<em>параметр</em></dt>
|
||
|
||
<dd>Возвращает текущее значение параметра конфигурации с именем
|
||
<em>параметр</em>. Параметр может быть любым из параметров
|
||
команды <strong>text</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>compare</strong> <em>индекс1 оп
|
||
индекс2</em></dt>
|
||
|
||
<dd>Сравнивает индексы, задаваемые параметрами <em>индекс1</em>
|
||
и <em>индекс2</em>, в соответствии с оператором отношения,
|
||
задаваемым параметром <em>оп</em>; команда возвращает
|
||
"1", если указанное отношение выполняется, и
|
||
"0" в противном случае. Параметр оп может принимать
|
||
одно из значений "<", "<=",
|
||
"=", ">=", ">" или
|
||
"!=". Если значением оператора является
|
||
"=", то команда возвращает "1", если оба
|
||
индекса ссылаются на один и тот же символ; при операторе
|
||
"<" команда возвращает "1", если
|
||
<em>индекс1</em> ссылается на символ, предшествующий символу с
|
||
индексом <em>индекс2</em>, и т.д.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>configure</strong>
|
||
?<em>параметр</em>? ?<em>значение параметр значение</em>
|
||
...?</dt>
|
||
|
||
<dd>Запрашивает значения параметров конфигурации примитива или
|
||
изменяет их. Если <em>параметр</em> не указан, то возвращает
|
||
список, содержащий значения всех допустимых в
|
||
<em>имениПути</em> параметров (формат списка описан в
|
||
Tk_ConfigureInfo). Если <em>параметр</em> задан, а его новое
|
||
<em>значение</em> нет, то команда возвращает часть полного
|
||
списка, относящуюся к указанному параметру. Если заданы одна
|
||
или несколько пар <em>параметр-значение</em>, то указанным
|
||
<em>параметр</em>ам примитива присваиваются новые
|
||
<em>значения</em>, а команда возвращает пустую
|
||
строку. <em>Параметр</em> может быть любым из параметров
|
||
команды <strong>text</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>debug</strong>
|
||
?<em>булевское</em>?</dt>
|
||
|
||
<dd>Если задан параметр <em>булевское</em>, то он может иметь
|
||
значение истина или ложь в виде, приемлемом для
|
||
<strong>Tcl_GetBoolean</strong>. Если значение параметра
|
||
истина, то в B-дереве, связанном с текстовыми примитивами,
|
||
будет выполняться внутренняя проверка согласованности. В
|
||
противном случае эта проверка будет отключена. Независимо от
|
||
полученного значения команда возвращает пустую строку. Если
|
||
параметр <em>булевское</em> не задан, то команда возвращает
|
||
<strong>on</strong> или <strong>off</strong> в зависимости от
|
||
того, подключена или нет в момент выполнения команды система
|
||
отладки. Переключатель отладки один на все текстовые
|
||
примитивы: изменение его значения в одном примитиве приводит к
|
||
изменению этого значения для всех примитивов. Проверка
|
||
согласованности для примитивов с длинными текстами может
|
||
привести к существенному замедлению работы.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>delete</strong> <em>индекс1</em>
|
||
?<em>индекс2</em>?</dt>
|
||
|
||
<dd>Удаляет последовательность символов в тексте. Если заданы
|
||
оба параметра <em>индекс1</em> и <em>индекс2</em>, то
|
||
удаляются все символы, начиная с символа с индексом
|
||
<em>индекс1</em>, и кончая символом, непосредственно
|
||
предшествующим символу с индексом <em>индекс2</em>
|
||
(т.е. символ с индексом <em>индекс2</em> не удаляется). Если
|
||
параметр <em>индекс2</em> не задан, то удаляется только символ
|
||
с индексом <em>индекс1</em>. Невозможно такое удаление, при
|
||
котором последний символ оставшегося текста не будет символом
|
||
перевода строки. Команда возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>dlineinfo</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Возвращает список из пяти элементов, описывающий область
|
||
экрана, занимаемую строчкой, содержащей символ с индексом
|
||
<em>индекс</em>. Первые два элемента списка представляют собой
|
||
координаты x и y верхнего левого угла этой области; следующие
|
||
два это ее ширина и высота; пятый элемент это расстояние от
|
||
верхней границы области вниз до базы строчки. Все значения
|
||
измеряются в пикселях. Если текущий режим переноса строки
|
||
имеет значение <strong>none</strong> и строка видна на экране
|
||
лишь частично, то возвращаемые значения описывают всю область
|
||
строки, включая и ее невидимые части. Если строчка короче
|
||
полной ширины экрана, то возвращаемые значения описывают
|
||
только ту ее часть, которая занята символами и вставленными
|
||
окнами. Если строчка, содержащая символ с индексом
|
||
<em>индекс</em>, на экране не видна, то возвращаемое значение
|
||
является пустым списком.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>dump</strong> ?<em>переключатели</em>?
|
||
<em>индекс1</em> ?<em>индекс2</em>?</dt>
|
||
|
||
<dd><p>Возвращает содержимое текстового примитива от символа с
|
||
индексом <em>индекс1</em> до символа с индексом
|
||
<em>индекс2</em> (не включая последний), включая сам текст,
|
||
а также информацию о метках, тегах и вставленных окнах. Если
|
||
параметр <em>индекс2</em> не задан, то по умолчанию
|
||
описывается символ с индексом <em>индекс1</em>. Возвращаемая
|
||
информация имеет следующий формат:</p>
|
||
|
||
<pre>
|
||
ключ1 значение1 индекс1 ключ 2 значение 2 индекс 2 ...
|
||
</pre>
|
||
|
||
<p>Ключи могут принимать значения <strong>text</strong>,
|
||
<strong>mark</strong>, <strong>tagon</strong>,
|
||
<strong>tagoff</strong> и
|
||
<strong>window</strong>. Соответствующими возвращаемыми
|
||
значениями будут текст, имя метки, имя тега или имя
|
||
окна. Возвращаемыми значениями индекса будут индекс начала
|
||
текста, метки, тегового перехода или окна. Для управления
|
||
результатом можно использовать один или несколько из
|
||
следующих переключателей (или их аббревиатур):</p>
|
||
|
||
<dl>
|
||
<dt><strong>-all</strong></dt>
|
||
|
||
<dd>Возвращается информация обо всех элементах тексте,
|
||
метках, тегах и окнах. Это значение принято по
|
||
умолчанию.</dd>
|
||
|
||
<dt><strong>-command</strong> <em>команда</em></dt>
|
||
|
||
<dd>В этом случае вместо возвращения информации об элементах
|
||
текстового примитива на каждом из этих элементов в
|
||
указанной области текста выполняется
|
||
<em>команда</em>. Аргументами <em>команды</em> служат
|
||
ключ, значение и индекс соответствующего элемента.</dd>
|
||
|
||
<dt><strong>-mark</strong></dt>
|
||
|
||
<dd>Включить в результат информацию о метках.</dd>
|
||
|
||
<dt><strong>-tag</strong></dt>
|
||
|
||
<dd>Включить в результат информацию о теговых
|
||
переходах. Информация о тегах возвращается в виде
|
||
элементов <strong>tagon</strong> и
|
||
<strong>tagoff</strong>, указывающих соответственно начало
|
||
и конец каждой области тега.</dd>
|
||
|
||
<dt><strong>-text</strong></dt>
|
||
|
||
<dd>Включить в результат информацию о тексте. Значением
|
||
служит текст до следующего элемента или до конца области,
|
||
указанного параметром <em>индекс2</em>. Текстовый элемент
|
||
не захватывает новых строк. Часть текста, содержащая
|
||
несколько строк и не включающая меток и теговых переходов,
|
||
будет выводиться в виде набора отрезков текста, каждый из
|
||
которых кончается символом перевода строки. Эти символы
|
||
являются частью результата.</dd>
|
||
|
||
<dt><strong>-window</strong></dt>
|
||
|
||
<dd>Включить в результат информацию о вставленных
|
||
окнах. Значением является имя Tk пути вставленного окна,
|
||
за исключением случая, когда окно еще не создано. (Окно
|
||
должно содержать создающий скрипт.) В последнем случае
|
||
результатом служит пустая строка, а дополнительную
|
||
информацию об окне можно получить, задав значение его
|
||
индекса.</dd>
|
||
</dl>
|
||
|
||
<dt><em>имяПути</em> <strong>get</strong> <em>индекс1</em>
|
||
?<em>индекс2</em>?</dt>
|
||
|
||
<dd>Возвращает последовательность символов в тексте. В
|
||
последовательность включаются все символы текста, начиная с
|
||
символа с индексом <em>индекс1</em> и кончая символом,
|
||
непосредственно предшествующим символу с индексом
|
||
<em>индекс2</em> (символ с индексом <em>индекс2</em> в эту
|
||
последовательность не входит). Если параметр <em>индекс2</em>
|
||
опущен, то команда возвращает единственный символ с индексом
|
||
<em>индекс1</em>. Если в указанном интервале нет символов
|
||
(например, если <em>индекс1</em> указывает за конец файла или
|
||
значение <em>индекс2</em> меньше, чем <em>индекс1</em>), то
|
||
команда возвращает пустую строку. Если в указанном интервале
|
||
есть вставленные окна, то информация о них в возвращаемую
|
||
строку не входит.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>image</strong> ?<em>параметр</em>?
|
||
?<em>арг арг ...</em>?</dt>
|
||
|
||
<dd><p>Команда предназначена для управления вставленными
|
||
изображениями. Поведение команды определяется значением
|
||
аргумента <em>параметр</em>. В настоящее время поддерживаются
|
||
следующие формы команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>image cget</strong> <em>индекс
|
||
параметр</em></dt>
|
||
|
||
<dd>Возвращает значение параметра конфигурации вставленного
|
||
изображения. Аргумент <em>индекс</em> указывает
|
||
вставленное изображение, а <em>параметр</em> задает имя
|
||
требуемого параметра конфигурации; это имя должно быть
|
||
элементом списка, приведенного (см. "<a
|
||
href="#ВСТАВЛЕННЫЕ_ИЗОБРАЖЕНИЯ">Вставленные
|
||
изображения</a>").</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>image configure</strong>
|
||
<em>индекс</em> ?<em>параметр значение ...</em>?</dt>
|
||
|
||
<dd>Запрашивает значение параметров вставленного изображения
|
||
или изменяет эти значения. Если ни один аргумент параметр
|
||
не задан, то возвращает список, содержащий значения всех
|
||
наличных параметров вставленного изображения с индексом
|
||
индекс (формат списка описан в Tk_ConfigureInfo). Если
|
||
параметр задан, а его значение нет, то команда возвращает
|
||
часть списка, относящуюся к данному параметру. Если задано
|
||
несколько пар параметр-значение, то команда придает
|
||
указанным параметрам новые значения; в этом случае команда
|
||
возвращает пустую строку. Описание поддерживаемых
|
||
параметров (см. "<a
|
||
href="#ВСТАВЛЕННЫЕ_ИЗОБРАЖЕНИЯ">Вставленные
|
||
изображения</a>").</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>image create</strong>
|
||
<em>индекс</em> ?<em>параметр значение ...</em>?</dt>
|
||
|
||
<dd>Команда создает новую ссылку на изображение, которое
|
||
появляется в тексте в положении, указанном аргументом
|
||
<em>индекс</em>. Для установки параметров конфигурации
|
||
изображения можно указать произвольное число пар
|
||
<em>параметр-значение</em>. Команда возвращает уникальный
|
||
идентификатор, который можно использовать в качестве
|
||
индекса при ссылке на данное изображение. Описания
|
||
поддерживаемых параметров и возвращаемого идентификатора
|
||
(см. "<a
|
||
href="text.html#ВСТАВЛЕННЫЕ_ИЗОБРАЖЕНИЯ">Вставленные
|
||
изображения</a>").</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>image names</strong></dt>
|
||
|
||
<dd>Возвращает список, элементами которого служат имена всех
|
||
вхождений изображений, вставленных в данное
|
||
<em>окно</em>.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>index</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Возвращает положение символа с индексом индекс; положение
|
||
выдается в виде строч.симв, где строч это номер строчки, а
|
||
симв номер символа в этой строчке. Аргумент индекс может
|
||
иметь любую из форм, описанных выше (см. "<a
|
||
href="#ИНДЕКСЫ">Индексы</a>").</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>insert</strong> <em>индекс
|
||
символы</em> ?<em>списТегов символы
|
||
списТегов...</em>?</dt>
|
||
|
||
<dd>Вставляет значения всех аргументов символы непосредственно
|
||
перед символом с индексом <em>индекс</em>. Если
|
||
<em>индекс</em> ссылается на конец текста (т.е. на символ,
|
||
следующий за последним символом перевода строки), то новый
|
||
текст вставляется непосредственно перед последним символом
|
||
перевода строки. Если у команды один аргумент символы, а
|
||
аргументы <em>списТегов</em> отсутствуют, то ко вновь
|
||
введенному тексту будут приписаны все теги, присутствующие у
|
||
обоих символов слева и справа от нового текста; если тег
|
||
приписан лишь к одному из соседних символов, то на вновь
|
||
введенный текст он не распространяется. Аргументы
|
||
<em>списТегов</em> представляют собой списки имен тегов;
|
||
новым символам будут приписаны только эти теги, независимо
|
||
от состояния тегов по обе стороны от точки ввода. Если в
|
||
аргументах команды присутствует несколько пар
|
||
символы <em>-списТегов</em>, то результат ее выполнения
|
||
совпадает с результатом выполнения нескольких таких же
|
||
команд примитива, по одной на каждую пару. Последний
|
||
аргумент списТегов может быть опущен.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark</strong> <em>параметр</em>
|
||
?<em>арг арг ...</em>?</dt>
|
||
|
||
<dd><p>Эта команда предназначена для работы с
|
||
метками. Поведение команды определяется значением
|
||
аргумента <em>параметр</em>. В настоящее время
|
||
поддерживаются следующие формы команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>mark gravity</strong>
|
||
<em>имяМетки</em> ?<em>направление</em>?</dt>
|
||
|
||
<dd>Если аргумент <em>направление</em> не задан, то
|
||
команда возвращает значение <strong>left</strong> или
|
||
<strong>right</strong>, указывающее, притягивается ли
|
||
метка к символу слева или справа от нее. Если
|
||
<em>направление</em> задано, то оно должно иметь
|
||
значение <strong>left</strong> или
|
||
<strong>right</strong>, и притяжению метки с именем
|
||
<em>имяМетки</em> присваивается указанное значение.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark names</strong></dt>
|
||
|
||
<dd>Возвращает список, элементами которого являются имена
|
||
всех уже установленных меток.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark next</strong>
|
||
<em>индекс</em></dt>
|
||
|
||
<dd>Возвращает имя первой метки, идущей за символом с
|
||
индексом <em>индекс</em> (или притягивающейся к этому
|
||
символу). Если аргумент <em>индекс</em> задан в числовом
|
||
виде, то поиск метки начинается с указанного
|
||
символа. Если значением аргумента <em>индекс</em>
|
||
является имя метки, то поиск очередной метки начинается
|
||
непосредственно после заданной метки. При этом
|
||
возвращаемым значением может оказаться имя метки с тем
|
||
же самым положением, если в этом положении находится
|
||
несколько меток. Смысл этого действия состоит в том,
|
||
что команда <strong>mark next</strong> позволяет
|
||
последовательно перебрать все метки в текстовом
|
||
примитиве в том же порядке, в котором информация о
|
||
метках выводится командой <strong>dump</strong>. Если
|
||
метка установлена в положении, указанном специальным
|
||
индексом <strong>end</strong>, то для операции
|
||
<strong>mark next</strong> эта метка находится
|
||
<em>после</em> индекса <strong>end</strong>. Если после
|
||
символа с индексом <em>индекс</em> меток нет, то команда
|
||
возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark previous</strong>
|
||
<em>индекс</em></dt>
|
||
|
||
<dd>Возвращает имя первой метки, идущей перед символом с
|
||
индексом <em>индекс</em> (или притягивающейся к этому
|
||
символу). Если аргумент <em>индекс</em> задан в числовом
|
||
виде, то поиск метки начинается с символа,
|
||
непосредственно предшествующего указанному. Если
|
||
значением аргумента <em>индекс</em> является имя метки,
|
||
то поиск очередной метки начинается непосредственно
|
||
перед заданной меткой. При этом возвращаемым значением
|
||
может оказаться имя метки с тем же самым положением,
|
||
если в этом положении находится несколько меток. Смысл
|
||
этого действия состоит в том, что команда <strong>mark
|
||
previous</strong> позволяет последовательно перебрать
|
||
все метки в текстовом примитиве в порядке, обратном
|
||
тому, в котором информация о метках выводится командой
|
||
<strong>dump</strong>. Если перед символом с индексом
|
||
<em>индекс</em> меток нет, то команда возвращает пустую
|
||
строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark set</strong>
|
||
<em>имяМетки индекс</em></dt>
|
||
|
||
<dd>Устанавливает метку с именем <em>имяМетки</em>
|
||
непосредственно перед символом с индексом индекс. Если
|
||
метка с именем имяМетки уже существует, то она
|
||
перемещается из своего старого положения в новое; если
|
||
такой метки нет, то создается новая метка. Команда
|
||
возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>mark unset</strong>
|
||
<em>имяМетки</em> ?<em>имяМетки имяМетки...</em>?</dt>
|
||
|
||
<dd>Удаляет все метки с именами <em>имяМетки</em>.
|
||
Удаленные метки нельзя использовать в качестве индексов;
|
||
команда "<em>имяПути</em> <strong>mark names</strong>"
|
||
так же не возвращает их в списке меток. Команда
|
||
возвращает пустую строку.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>scan</strong> <em>параметр
|
||
арг</em></dt>
|
||
|
||
<dd><p>Команда используется для сканирования текстов. Она
|
||
может иметь один из двух видов в зависимости от значения
|
||
параметра:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>scan mark</strong> <em>x
|
||
y</em></dt>
|
||
|
||
<dd>Записывает координаты x и y и текущий вид текстового
|
||
окна для последующего использования командами
|
||
<strong>scan dragto</strong>. Обычно эта команда связана
|
||
с нажатием клавиши "Мыши" в
|
||
примитиве. Возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>scan dragto</strong>
|
||
<em>x y</em></dt>
|
||
|
||
<dd>Команда вычисляет разность значений аргументов x и y и
|
||
значений аргументов x и y последней выполненной на
|
||
примитиве команды <strong>scan mark</strong>. Затем
|
||
команда переносит сохраненный вид окна на расстояние, в
|
||
10 раз пресыщающее вычисленную разность. Обычно эта
|
||
команда связывается с событиями движения курсора
|
||
"Мыши" в примитиве и предназначена для
|
||
перетаскивания текста по окну с высокой
|
||
скоростью. Возвращает пустую строку.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>search</strong>
|
||
?<em>переключатели</em>? <em>образец индекс
|
||
индексСтоп</em>?</dt>
|
||
|
||
<dd><p>Ищет в примитиве с именем <em>имяПути</em> текст
|
||
подходящий под образец, начиная с символа с индексом
|
||
индекс. Если подходящая последовательность символов найдена,
|
||
то команда возвращает в качестве результата индекс первого
|
||
символа в этой последовательности; в противном случае
|
||
возвращает пустую строку. Для управления поиском можно
|
||
задать один или несколько из описываемых ниже переключателей
|
||
(или их аббревиатур):</p>
|
||
|
||
<dl>
|
||
<dt><strong>-forwards</strong></dt>
|
||
|
||
<dd>Поиск осуществляется в направлении "вперед",
|
||
подходящая последовательность символов ищется в
|
||
положении, указанном аргументом <em>индекс</em>, и
|
||
дальше по тексту. Это значение принято по
|
||
умолчанию.</dd>
|
||
|
||
<dt><strong>-backwards</strong></dt>
|
||
|
||
<dd>Поиск осуществляется в направлении "назад",
|
||
подходящая последовательность символов ищется перед
|
||
положением, указанным аргументом <em>индекс</em>, и
|
||
ближе всего к нему.</dd>
|
||
|
||
<dt><strong>-exact</strong></dt>
|
||
|
||
<dd>Требует точного соответствия образцу: символы в
|
||
подходящей последовательности должны в точности
|
||
совпадать с символами образца. Это значение принято по
|
||
умолчанию.</dd>
|
||
|
||
<dt><strong>-regexp</strong></dt>
|
||
|
||
<dd>Указывает на необходимость считать образец регулярным
|
||
выражением и устанавливать соответствие согласно
|
||
правилам, принятым для регулярных выражений (подробности
|
||
см. в описании команды <a
|
||
href="../tcl/regexp.html">regexp</a>).</dd>
|
||
|
||
<dt><strong>-nocase</strong></dt>
|
||
|
||
<dd>Игнорировать различие регистров в образце и
|
||
тексте.</dd>
|
||
|
||
<dt><strong>-count</strong> <em>имяПерем</em></dt>
|
||
|
||
<dd>Аргумент <em>имяПерем</em> представляет собой имя
|
||
переменной; если подходящая последовательность найдена,
|
||
то в эту переменную заносится число символов в ней.</dd>
|
||
|
||
<dt><strong>--</strong></dt>
|
||
|
||
<dd>Единственная задача этого переключателя завершение
|
||
списка переключателей; следующий за ним аргумент будет
|
||
интерпретирован как <em>образец</em>, даже если он и
|
||
начинается с "-"</dd>
|
||
</dl>
|
||
|
||
<p>Вся подходящая последовательность должна содержаться в
|
||
одной строке текста. Перед сопоставлении с регулярным
|
||
выражением из текста удаляются все символы перевода
|
||
строки. Для поиска соответствия такому символу можно
|
||
воспользоваться служебным символом .$. в регулярных
|
||
выражениях. Для точных соответствий переводы строк
|
||
сохраняются. Если задан аргумент <em>индексСтоп</em>, то
|
||
поиск прекращается по достижении символа с этим индексом:
|
||
для поиска вперед не будут рассматриваться соответствия,
|
||
начинающиеся на символе с этим индексом или позднее, для
|
||
поиска назад не рассматриваются соответствия, начинающиеся
|
||
раньше указанного индекса. Если аргумент
|
||
<em>индексСтоп</em> опущен, то поиск осуществляется по
|
||
всему тексту: по достижении одного из краев текста поиск
|
||
продолжается, начиная с другого края, до тех пор пока не
|
||
будет снова достигнуто исходное положение. Если аргумент
|
||
<em>индексСтоп</em> задан, то перескакивания на
|
||
противоположный край текста не происходит.</p>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>see</strong> <em>индекс</em></dt>
|
||
|
||
<dd>Сдвигает содержимое окна таким образом, чтобы символ с
|
||
индексом <em>индекс</em> был виден полностью. Если этот
|
||
символ расположен недалеко от видимой части текста, то сдвиг
|
||
осуществляется настолько, чтобы он был виден у края
|
||
окна. Если же указанный символ располагается далеко, то в
|
||
результате сдвига он оказывается в центре окна.
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag</strong> <em>параметр</em>
|
||
?<em>арг арг ...</em>?</dt>
|
||
|
||
<dd><p>Эта команда используется для работы с тегами. Ее поведение
|
||
определяется значением аргумента <em>параметр</em>. В
|
||
настоящее время поддерживаются следующие формы команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>tag add</strong> <em>имяТега
|
||
индекс1</em> ?<em>индекс2 индекс1 индекс2 ...</em>?</dt>
|
||
|
||
<dd>Приписывает тег <em>имяТега</em> ко всем символам,
|
||
начиная с <em>индекса1</em> и кончая непосредственно
|
||
перед символа с индексом <em>индекс2</em> (к самому
|
||
этому символу данный тег не приписывается). В одной
|
||
команде может присутствовать произвольное число пар
|
||
<em>индекс1-индекс2</em>. Если последний аргумент
|
||
<em>индекс2</em> опущен, то тег приписывается к
|
||
единственному символу с индексом <em>индекс1</em>. Если
|
||
в указанном промежутке нет символов (например,
|
||
<em>индекс1</em> указывает за конец файла или
|
||
<em>индекс2</em> оказывается не больше
|
||
<em>индекса1</em>), то команда не совершает никаких
|
||
действий.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag bind</strong> <em>имяТега</em>
|
||
?<em>послед</em>? ?<em>скрипт</em></dt>
|
||
|
||
<dd><p>Эта команда приписывает скрипт к тегу с именем
|
||
<em>имяТега</em>. При наступлении последовательности
|
||
событий, заданной аргументом <em>послед</em>, на
|
||
символе, к которому приписан тег с именем
|
||
<em>имяТега</em> , выполняется указанный
|
||
<em>скрипт</em>. Эта команда примитива похожа на
|
||
команду <a href="bind.html">bind</a>; единственное ее
|
||
отличие состоит в том, что она действует на символах,
|
||
а не на всем примитиве. Полное описание синтаксиса
|
||
последовательности и подстановок, производимых в
|
||
скрипте перед его выполнением, см. в п. 1.3. Если
|
||
указаны все аргументы, то создается новая привязка,
|
||
заменяющая все предыдущие привязки данной
|
||
последовательности к тегу <em>имяТега</em> (если
|
||
первым символом аргумента скрипт является
|
||
"+", то скрипт присоединяется к текущей
|
||
привязке, а не замещает ее). В этом случае команда
|
||
возвращает пустую строку. Если аргумент
|
||
<em>скрипт</em> опущен, то команда возвращает скрипт,
|
||
привязанный к тегу <em>имяТега</em> (при отсутствии
|
||
такого скрипта возникает ошибка). Если опущены и
|
||
аргумент <em>скрипт</em>, и аргумент <em>послед</em>,
|
||
то команда возвращает список всех последовательностей,
|
||
привязки к которым определены для тега с именем
|
||
<em>имяТега</em>.</p>
|
||
|
||
<p>Привязки можно определять только для событий,
|
||
связанных с "Мышью" и клавиатурой (например,
|
||
<strong>Enter</strong>, <strong>Leave</strong>,
|
||
<strong>ButtonPress</strong>, <strong>Motion</strong>
|
||
и <strong>KeyPress</strong>), или для виртуальных
|
||
событий. Привязки событий для текстового примитива
|
||
используют текущую метку (см. "<a
|
||
href="#МЕТКИ">Метки</a>"). Событие
|
||
<strong>Enter</strong> наступает для тега при первом
|
||
появлении этого тега на текущем символе, а событие
|
||
<strong>Leave</strong> наступает, когда текущий символ
|
||
оказывается несвязанным с данным тегом. События
|
||
<strong>Enter</strong> и <strong>Leave</strong> могут
|
||
наступить либо в результате перемещения текущей метки,
|
||
либо как следствие изменения символа в позиции текущей
|
||
метки. Обратите внимание на то, что эти события
|
||
отличаются от событий <strong>Enter</strong> и
|
||
<strong>Leave</strong> для окон. События, связанные с
|
||
"Мышью" и клавиатурой, направлены на текущий
|
||
символ. Если в привязке используется виртуальное
|
||
событие, то оно может наступить только в случае если
|
||
для его определения был использован выход с
|
||
подчеркиванием, связанный с "Мышью" или
|
||
клавиатурой.</p>
|
||
|
||
<p>К текущему символу может быть приписано много тегов,
|
||
причем каждый из этих тегов может иметь привязку для
|
||
одной и той же последовательности событий. В таком
|
||
случае исполняется по одной привязке к каждому из
|
||
тегов в порядке от наименьшего приоритета к
|
||
наибольшему. Если к одному тегу подходят несколько
|
||
образцов привязок, то выбирается самая конкретная из
|
||
них (подробности приведены в п. 1.3). Команды continue
|
||
и break в скрипте привязки обрабатываются так же, как
|
||
и в случае привязок, созданных командой <a
|
||
href="bind.html"><strong>bind</strong></a>.</p>
|
||
|
||
<p>Если есть привязки и к примитиву в целом (созданные с
|
||
помощью команды <a
|
||
href="bind.html"><strong>bind</strong></a>), то они
|
||
служат дополнением привязок к тегам. Сначала
|
||
выполняются привязки к тегам, а затем привязки ко
|
||
всему примитиву.</p>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag cget</strong> <em>имяТега
|
||
параметр</em></dt>
|
||
|
||
<dd>Команда возвращает текущее значение параметра с именем
|
||
<em>параметр</em>, ассоциированного с тегом
|
||
<em>имяТега</em>. Параметр может иметь любое значение,
|
||
воспринимаемое командой примитива <strong>tag
|
||
configure</strong>.
|
||
|
||
<dt><em>имяПути</em> <strong>tag configure</strong>
|
||
<em>имяТега</em> ?<em>параметр</em>? ?<em>значение</em>?
|
||
?<em>параметр значение ...</em>?</dt>
|
||
|
||
<dd>Эта команда похожа на команду примитива
|
||
<strong>configure</strong>; ее отличие состоит в том,
|
||
что она модифицирует параметры, связанные с тегом
|
||
<em>имяТега</em>, а не со всем текстовым
|
||
примитивом. Если аргумент <em>параметр</em> не задан, то
|
||
команда возвращает список значений всех параметров тега
|
||
<em>имяТега</em> (формат списка описан в
|
||
<strong>Tk_ConfigureInfo</strong>). Если
|
||
<em>параметр</em> задан, а его <em>значение</em> нет, то
|
||
возвращается часть списка, относящаяся к указанному
|
||
параметру. Если заданы одна или несколько пар
|
||
<em>параметр-значение</em>, то команда присваивает
|
||
указанным параметрам тега <em>имяТега</em> новые
|
||
значения; в этом случае она возвращает пустую
|
||
строку. Подробно параметры тегов описаны выше (см. "<a
|
||
href="#ТЕГИ">Теги</a>").</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag delete</strong>
|
||
<em>имяТега</em> ?<em>имяТега ...</em>?</dt>
|
||
|
||
<dd>Стирает всю информацию о тегах для каждого из
|
||
аргументов <em>имяТега</em>. Команда снимает теги с
|
||
символов и удаляет всю остальную информацию о них
|
||
например, привязки и характеристики вывода на
|
||
экран. Возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag lower</strong>
|
||
<em>имяТегаНижеЭтого</em></dt>
|
||
|
||
<dd>Изменяет приоритет тега с именем <em>имяТега</em> ,
|
||
устанавливая его непосредственно перед тегом с именем
|
||
<em>нижеЭтого</em>. Если аргумент <em>нижеЭтого</em>
|
||
опущен, то тег <em>имяТега</em> получается самый нижний
|
||
приоритет среди всех тегов.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag names</strong>
|
||
?<em>индекс</em>?</dt>
|
||
|
||
<dd>Возвращает список имен всех тегов, активных в позиции,
|
||
указанной аргументом <em>индекс</em>. Если аргумент
|
||
<em>индекс</em> опущен, то команда возвращает список
|
||
всех существующих тегов в тексте (это все теги,
|
||
установленные командой примитива "<em>имяПути</em>
|
||
<strong>tag</strong>" и не удаленные командой
|
||
примитива "<em>имяПути</em> <strong>tag
|
||
delete</strong>", в том числе и те из них, которые
|
||
в текущий момент не относятся ни к какому
|
||
символу). Выводимый список отсортирован в порядке
|
||
приоритетов тегов (от тега с наименьшим приоритетом к
|
||
тегу с наибольшим).</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag nextrange</strong>
|
||
<em>имяТега индекс1</em> ?<em>индекс2</em>?</dt>
|
||
|
||
<dd>Команда ищет последовательность символов, помеченных
|
||
тегом <em>имяТега</em>, первый символ которой стоит
|
||
после символа с индексом <em>индекс1</em>, а последний
|
||
символ предшествует символу с индексом
|
||
<em>индекс2</em>. В случае, если таких
|
||
последовательностей несколько, выбирается первая из
|
||
них. Команда возвращает список из двух элементов, первый
|
||
из которых индекс первого символа последовательности: а
|
||
второй индекс символа, непосредственно следующего за
|
||
последним символом последовательности. Если подходящей
|
||
последовательности нет, то команда возвращает пустую
|
||
строку. Если аргумент <em>индекс2</em> не задан, то его
|
||
значением по умолчанию считается конец текста.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag prevrange</strong>
|
||
<em>имяТега индекс1</em> ?<em>индекс2</em>?</dt>
|
||
|
||
<dd>Команда ищет последовательность символов, помеченных
|
||
тегом <em>имяТега</em>, первый символ которой стоит
|
||
перед символом с индексом <em>индекс1</em>, но не
|
||
раньше, чем символ с индексом <em>индекс2</em> (символ с
|
||
этим индексом допускается). В случае, если таких
|
||
последовательностей несколько, выбирается ближайшая к
|
||
символу с индексом <em>индекс1</em>. Команда возвращает
|
||
список из двух элементов, первый из которых индекс
|
||
первого символа последовательности: а второй индекс
|
||
символа, непосредственно следующего за последним
|
||
символом последовательности. Если подходящей
|
||
последовательности нет, то команда возвращает пустую
|
||
строку. Если аргумент <em>индекс2</em> не задан, то его
|
||
значением по умолчанию считается начало текста.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag raise</strong>
|
||
<em>имяТега</em> ?<em>ВышеЭтого</em>?</dt>
|
||
|
||
<dd>Изменяет приоритет тега с именем <em>имяТега</em> ,
|
||
устанавливая его непосредственно после тега с именем
|
||
<em>вышеЭтого</em>. Если аргумент <em>вышеЭтого</em>
|
||
опущен, то тег <em>имяТега</em> получается самый большой
|
||
приоритет среди всех тегов.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag ranges</strong>
|
||
<em>имяТега</em></dt>
|
||
|
||
<dd>Возвращает список всех участков текста, помеченных
|
||
тегом с именем <em>имяТега</em>. Первые два элемента
|
||
списка описывают первый участок, следующие два второй и
|
||
т.д. Первый элемент каждой пары представляет собой
|
||
индекс первого символа на соответствующем участке,
|
||
второй элемент пары индекс символа, непосредственно
|
||
следующего за последним символом участка. Если тегом
|
||
<em>имяТега</em> не помечен ни один символ, то команда
|
||
возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>tag remove</strong>
|
||
<em>имяТега индекс1</em> ?<em>индекс2 индекс1 индекс2
|
||
...?</em></dt>
|
||
|
||
<dd>Снимает пометку тегом <em>имяТега</em> со всех
|
||
символов в промежутках, указанных индексами
|
||
<em>индекс1</em> и <em>индекс2</em> (на символ с
|
||
индексом <em>индекс2</em> команда не действует). Если в
|
||
указанном промежутке нет символов (например, если
|
||
<em>индекс1</em> указывает за конец текста или
|
||
<em>индекс2</em> оказывается не меньше
|
||
<em>индекса1</em>), то команда не совершает никаких
|
||
действий. Возвращает пустую строку.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>window</strong> <em>параметр</em>
|
||
?<em>арг арг ...</em>? </dt>
|
||
|
||
<dd><p>Команда используется для работы со вставленными
|
||
окнами. Поведение команды зависит от значения аргумента
|
||
<em>параметр</em>. В настоящее время поддерживаются
|
||
следующие формы команды:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>window cget</strong>
|
||
<em>индекс параметр</em></dt>
|
||
|
||
<dd>Возвращает значение параметра конфигурации
|
||
вставленного окна. Окно задается аргументом
|
||
<em>индекс</em>, а аргумент <em>параметр</em> указывает
|
||
имя конкретного параметра конфигурации; это имя должно
|
||
быть одним из тех, которые описаны во фрагменте "<a
|
||
href="#ВСТАВЛЕННЫЕ_ОКНА">Вставленные
|
||
окна</a>".</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>window configure</strong>
|
||
<em>индекс</em> ?<em>параметр значение ...</em>?</dt>
|
||
|
||
<dd>Запрашивает или модифицирует значения параметров
|
||
конфигурации вставленного окна. Если <em>параметр</em>
|
||
не указан, то возвращает список, содержащий значения
|
||
всех допустимых параметров вставленного окна (формат
|
||
списка описан в <strong>Tk_ConfigureInfo</strong>). Если
|
||
<em>параметр</em> задан, а его новое <em>значение</em>
|
||
нет, то команда возвращает часть полного списка,
|
||
относящуюся к указанному параметру. Если заданы одна или
|
||
несколько пар <em>параметр-значение</em>, то указанным
|
||
<em>параметр</em>ам присваиваются новые
|
||
<em>значения</em>, а команда возвращает пустую
|
||
строку. Список возможных параметров приведен в фрагменте
|
||
"<a href="#ВСТАВЛЕННЫЕ_ОКНА">Вставленные
|
||
окна</a>".</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>window create</strong>
|
||
<em>индекс</em> ?<em>параметр значение ...</em>?</dt>
|
||
|
||
<dd>Команда создает ссылку на новое окно, положение
|
||
которого в тексте определяется аргументом
|
||
<em>индекс</em>. Конфигурация окна задается произвольным
|
||
числом пар <em>параметр-значение</em>. Список возможных
|
||
параметров см. в "<a
|
||
href="#ВСТАВЛЕННЫЕ_ОКНА">ВСТАВЛЕННЫЕ
|
||
ОКНА</a>". Команда возвращает пустую строку.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>window names</strong></dt>
|
||
|
||
<dd>Возвращает список имен всех вставленных в настоящий
|
||
момент в окно окон.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>xview</strong> <em>параметр арг</em></dt>
|
||
|
||
<dd><p>Команда используется для запроса горизонтального положения
|
||
текста в окне примитива и изменения этого положения. Она
|
||
может принимать одну из следующих форм:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>xview</strong></dt>
|
||
|
||
<dd>Возвращает список из двух элементов, каждый из которых
|
||
представляет собой вещественное число в промежутке между
|
||
"0" и "1". В совокупности эти два
|
||
числа описывают, какая часть документа по горизонтали
|
||
видна в окне. Если, например, значение первого числа
|
||
равно ".2", а второго ".6", то слева
|
||
от экрана не видно 20% текста, 40% видимы на экране и
|
||
еще 40% не видимы справа от экрана. Числа относятся
|
||
только к строчкам, которые действительно попадают на
|
||
экран. Если все строчки в окне короткие и полностью
|
||
умещаются на экране, то команда возвращает значения
|
||
"0" и "1", даже если в тексте
|
||
фактически присутствуют строчки, длина которых намного
|
||
превышает ширину окна. Те же самые значения передаются
|
||
полосам прокрутки через параметр
|
||
<strong>-xscrollcommand</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>xview moveto</strong>
|
||
<em>число</em></dt>
|
||
|
||
<dd>Сдвигает содержимое окна таким образом, чтобы часть
|
||
текста по горизонтали, описываемая аргументом
|
||
<em>число</em>, находилась слева от
|
||
экрана. <em>Число</em> должно быть вещественным числом в
|
||
промежутке между "0" и "1".</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>xview scroll</strong>
|
||
<em>число что</em></dt>
|
||
|
||
<dd>Команда сдвигает содержимое окна влево или вправо в
|
||
соответствии со значениями аргументов <em>число</em> и
|
||
<em>что</em>. Число должно быть целым. Аргумент что
|
||
может принимать значения <strong>units</strong> и
|
||
<strong>pages</strong>, а также их аббревиатуры. Если
|
||
аргумент <em>что</em> имеет значение
|
||
<strong>units</strong>, то сдвиг происходит на
|
||
<em>число</em>символов средней ширины; в случае значения
|
||
<strong>pages</strong> сдвиг выполняется на
|
||
<em>число</em> страниц (размер страницы равен размеру
|
||
экрана). Если <em>число</em> отрицательно, то сдвиг
|
||
происходит вправо, в противном случае влево.</dd>
|
||
</dl>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> yview <em>параметр арг</em></dt>
|
||
|
||
<dd><p>Команда используется для запроса вертикального положения
|
||
текста в окне примитива и изменения этого положения. Она
|
||
может принимать одну из следующих форм:</p>
|
||
|
||
<dl>
|
||
<dt><em>имяПути</em> <strong>yview</strong></dt>
|
||
|
||
<dd>Возвращает список из двух элементов, каждый из которых
|
||
представляет собой вещественное число в промежутке между
|
||
"0" и "1". Первый элемент списка
|
||
указывает положение в тексте первого символа верхней
|
||
строчки на экране (например, значение "0.5"
|
||
означает, что этот символ находится в середине
|
||
текста). Второй элемент списка указывает положение
|
||
символа, следующего непосредственно за последним
|
||
символом нижней строчки экрана. Те же самые значения
|
||
передаются полосам прокрутки через параметр
|
||
<strong>-yscrollcommand</strong>.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>yview moveto</strong>
|
||
<em>число</em></dt>
|
||
|
||
<dd>Сдвигает содержимое окна таким образом, чтобы символ,
|
||
положение которого задано аргументом <em>число</em>,
|
||
оказался в верхней строчке экрана. <em>Число</em> должно
|
||
быть вещественным числом в промежутке между
|
||
"0" и "1"; значение "0"
|
||
указывает на первый символ в тексте, значение
|
||
"0.33" на символ, отстоящий от начала текста
|
||
на "1/3" и т.д.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>yview scroll</strong>
|
||
<em>число что</em></dt>
|
||
|
||
<dd>Команда сдвигает содержимое окна вверх или вниз в
|
||
соответствии со значениями аргументов <em>число</em> и
|
||
<em>что</em>. Число должно быть целым. Аргумент что
|
||
может принимать значения <strong>units</strong> и
|
||
<strong>pages</strong>, а также их аббревиатуры. Если
|
||
аргумент <em>что</em> имеет значение
|
||
<strong>units</strong>, то сдвиг происходит на
|
||
<em>число</em> строчек; в случае значения
|
||
<strong>pages</strong> сдвиг выполняется на
|
||
<em>число</em> страниц (размер страницы равен размеру
|
||
экрана). Если <em>число</em> отрицательно, то сдвиг
|
||
происходит вверх, в противном случае вниз.</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>yview ?-pickplace?</strong>
|
||
<em>индекс</em></dt>
|
||
|
||
<dd><p>Сдвигает содержимое окна примитива таким образом,
|
||
чтобы сделать видимым символ с индексом
|
||
<em>индекс</em>. Если аргумент
|
||
<strong>-pickplace</strong> не задан, то символ с
|
||
указанным индексом появляется в верхней строчке
|
||
экрана. Если же этот аргумент задан, то примитив
|
||
определяет место появления символа на экране по
|
||
следующему правилу:</p>
|
||
|
||
<ol>
|
||
<li>Если символ с индексом <strong>индекс</strong>
|
||
уже виден на экране, то ничего не изменяется.</li>
|
||
|
||
<li>Если этот символ находится лишь незначительно выше
|
||
экрана, то он оказывается в верхней строчке
|
||
экрана.</li>
|
||
|
||
<li>Если этот символ находится лишь незначительно ниже
|
||
экрана, то он оказывается в нижней строчке
|
||
экрана.</li>
|
||
|
||
<li>В остальных случаях указанный символ оказывается в
|
||
центре экрана.</li>
|
||
</ol>
|
||
|
||
<p>Параметр <strong>-pickplace</strong> устарел после
|
||
введения команды примитива <strong>see</strong>,
|
||
которая управляет движениями как в горизонтальном, так
|
||
и в вертикальном направлении, в то время, как
|
||
<strong>-pickplace</strong> влияет только на движение
|
||
по вертикали.</p>
|
||
</dd>
|
||
|
||
<dt><em>имяПути</em> <strong>yview</strong> <em>число</em></dt>
|
||
|
||
<dd>Команда сдвигает содержимое в окне таким образом,
|
||
чтобы первый символ строки с номером, следующим за
|
||
номером <em>число</em>, оказался в верхней строчке
|
||
экрана. Аргумент <em>число</em> должен быть
|
||
целым. Команда использовалась для прокрутки, но теперь
|
||
она устарела.
|
||
</dd>
|
||
</dl>
|
||
</dd>
|
||
</dl>
|
||
|
||
<h2><a name="ПРИВЯЗКИ"></a>ПРИВЯЗКИ</h2>
|
||
|
||
<p>Tk автоматически создает привязки класса, которые определяют
|
||
следующее поведение текстовых примитивов по умолчанию. В
|
||
приводимом ниже описании "слово" это непрерывная
|
||
последовательность символов, состоящая из букв, цифр и символов
|
||
подчеркивания "_", либо из любого другого одиночного
|
||
символа.</p>
|
||
|
||
<ol>
|
||
|
||
<li>Щелчок клавишей 1 "Мыши" устанавливает курсор
|
||
ввода непосредственно перед символом, на котором расположен
|
||
курсор "Мыши".</li>
|
||
|
||
<li>Движение "Мыши" с нажатой клавишей 1 растягивает
|
||
выделение от курсора ввода то символа под курсором
|
||
"Мыши".</li>
|
||
|
||
<li>Двойной щелчок по клавише 1 "Мыши" выделяет слово,
|
||
на котором находится курсор "Мыши", и устанавливает
|
||
курсор ввода на начало этого слова. Если тащить
|
||
"Мышь" после двойного щелчка, то выделение
|
||
растягивается на полные слова.</li>
|
||
|
||
<li>Тройной щелчок по клавише 1 "Мыши" выделяет
|
||
строку, на которой находится курсор "Мыши", и
|
||
устанавливает курсор ввода на начало этой строки. Если тащить
|
||
"Мышь" после тройного щелчка, то выделение
|
||
растягивается на полные строки.</li>
|
||
|
||
<li>Край выделения можно переместить, таща "Мышь" с
|
||
нажатой клавишей 1 при нажатой клавише <strong>Shift</strong>:
|
||
при этом движется край выделения, ближайший к курсору
|
||
"Мыши" в момент нажатия клавиши 1. Если перед
|
||
началом движения по клавише "Мыши" был сделан
|
||
двойной щелчок, то выделение будет растягиваться на полные
|
||
слова; если тройной щелчок то на полные строки.</li>
|
||
|
||
<li>Щелчок по клавише 1 "Мыши" при нажатой клавише
|
||
Control перемещает курсор ввода, не изменяя выделения.</li>
|
||
|
||
<li>При нажатии на клавиши обычных символов эти символы вводятся
|
||
на месте курсора ввода.</li>
|
||
|
||
<li>Содержимое окна примитива можно сдвинуть с помощью движения
|
||
"Мыши" при нажатой клавише 2. Если щелкнуть по
|
||
клавише 2 "Мыши", не перемещая "Мышь", то
|
||
выделение в тексте копируется в место курсора
|
||
"Мыши". Нажатие на клавишу Insert также приводит к
|
||
копированию выделения, но в место курсора ввода, а не курсора
|
||
"Мыши".</li>
|
||
|
||
<li>При движении "Мыши" вне экрана с нажатой клавишей
|
||
1 содержимое примитива автоматически прокручивается и на
|
||
экране появляется дополнительная порция текста (если вне
|
||
экрана в направлении движения "Мыши" есть еще
|
||
текст).</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Left</strong> или
|
||
<strong>Right</strong> приводит к сдвигу курсора ввода на один
|
||
символ влево или вправо соответственно; при этом всякое
|
||
выделение в тексте отменяется. Нажатие на клавиши
|
||
<strong>Left</strong> или <strong>Right</strong> при нажатой
|
||
клавише <strong>Shift</strong> приводит к сдвигу курсора ввода
|
||
и расширению выделения на один символ.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Control-Left</strong> или
|
||
<strong>Control-Right</strong> сдвигает курсор ввода на целое
|
||
слово, а нажатие на клавиши
|
||
<strong>Control-Shift-Left</strong> и
|
||
<strong>Control-Shift-Right</strong> приводит к сдвигу курсора
|
||
ввода и расширению выделения на одно слово.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Control-b</strong> и
|
||
<strong>Control-f</strong> приводит к такому же результату,
|
||
что и нажатие на <strong>Left</strong> и
|
||
<strong>Right</strong> соответственно. Комбинации клавиш
|
||
<strong>Meta-b</strong> и <strong>Meta-f</strong> дают тот же
|
||
эффект, что и <strong>Control-Left</strong> и
|
||
<strong>Control-Right</strong> соответственно.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Up</strong> и
|
||
<strong>Down</strong> переводит курсор ввода на одну строчку
|
||
вверх или вниз, отменяя при этом любое выделение в
|
||
тексте. Нажатие на клавиши <strong>Up</strong> и
|
||
<strong>Down</strong> при нажатой клавише
|
||
<strong>Shift</strong> приводит к сдвигу курсора ввода и
|
||
растягиванию выделения до нового положения курсора. Комбинации
|
||
<strong>Control-Up</strong> и <strong>Control-Down</strong>
|
||
сдвигают курсор ввода на один абзац (группу строчек,
|
||
отделенную от соседней группы пустой строчкой), а комбинации
|
||
<strong>Control-Shift-Up</strong> и
|
||
<strong>Control-Shift-Down</strong> приводят к тому же к
|
||
растягиванию выделения до нового положения курсора
|
||
ввода. Комбинации <strong>Control-p</strong> и
|
||
<strong>Control-n</strong> дают тот же результат, что и
|
||
<strong>Up</strong> и <strong>Down</strong>
|
||
соответственно.</li>
|
||
|
||
<li>Клавиши <strong>Next</strong> и <strong>Prior</strong>
|
||
сдвигают курсор ввода вперед или назад на одну страницу; при
|
||
этом выделения в тексте отменяются. Нажатие на клавиши
|
||
<strong>Next</strong> и <strong>Prior</strong> при нажатой
|
||
клавише <strong>Shift</strong> приводит к сдвигу курсора ввода
|
||
и растягиванию выделения до нового положения
|
||
курсора. <strong>Control-v</strong> сдвигает видимую часть
|
||
текста на одну страницу вперед, причем курсор ввода не меняет
|
||
своего положения и выделение также остается неизменным.</li>
|
||
|
||
<li>Комбинации <strong>Control-Next</strong> и
|
||
<strong>Control-Prior</strong> сдвигают видимую часть текста
|
||
на одну страницу вправо или влево, причем курсор ввода не
|
||
меняет своего положения, и выделение также остается
|
||
неизменным.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Home</strong> и
|
||
<strong>Control-a</strong> помещает курсор ввода в начало
|
||
текущей строчки, причем все выделения в примитиве
|
||
отменяются. <strong>Shift-Home</strong> помещает курсор ввода
|
||
в начало текущей строчки и растягивает выделение до нового
|
||
положения курсора. Нажатие на клавиши <strong>End</strong> и
|
||
<strong>Control-e</strong> помещает курсор ввода в конец
|
||
текущей строчки, причем все выделения в примитиве
|
||
отменяются. <strong>Shift-End</strong> помещает курсор ввода в
|
||
конец текущей строчки и растягивает выделение до нового
|
||
положения курсора.</li>
|
||
|
||
<li>Комбинации <strong>Control-Home</strong> и
|
||
<strong>Meta-<</strong> устанавливают курсор ввода в начало
|
||
текста, причем все выделения в примитиве
|
||
отменяются. <strong>Control-Shift-Home</strong> устанавливает
|
||
курсор ввода в начало текста и растягивает выделение до нового
|
||
положения курсора.</li>
|
||
|
||
<li>Комбинации <strong>Control-End</strong> и
|
||
<strong>Meta-></strong> устанавливают курсор ввода в конец
|
||
текста, причем все выделения в примитиве
|
||
отменяются. <strong>Control-Shift-End</strong> устанавливает
|
||
курсор ввода в конец текста и растягивает выделение до нового
|
||
положения курсора.</li>
|
||
|
||
<li>Клавиша <strong>Select</strong> и комбинация
|
||
<strong>Control-Space</strong> устанавливают опорную точку
|
||
выделения в текущее положение курсора ввода. Текущее выделение
|
||
при этом не изменяется. Комбинации
|
||
<strong>Shift-Select</strong> и
|
||
<strong>Control-Shift-Space</strong> растягивают выделение до
|
||
текущего положения курсора ввода; если в тексте не было
|
||
выделения, то выделяются символы между опорной точкой
|
||
выделения и курсором ввода.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Control-/</strong> приводит к
|
||
выделению всего содержимого примитива.</li>
|
||
|
||
<li><strong>Control-\\</strong> отменяет выделение в примитиве.</li>
|
||
|
||
<li>Клавиша <strong>F16</strong> (на многих станциях Sun
|
||
обозначенная <strong>Copy</strong>) или
|
||
<strong>Meta-w</strong> копируют выделение в примитиве (если
|
||
оно есть) в буфер обмена.</li>
|
||
|
||
<li>Клавиша <strong>F20</strong> (на многих станциях Sun
|
||
обозначенная <strong>Cut</strong>) или
|
||
<strong>Control-w</strong> копируют выделение в примитиве в
|
||
буфер обмена и удаляют выделение. Если выделения нет, то
|
||
нажатие на эти клавиши не приводит ни к каким действиям.</li>
|
||
|
||
<li>Клавиша <strong>F18</strong> (на многих станциях Sun
|
||
обозначенная <strong>Paste</strong>) или
|
||
<strong>Control-y</strong> вставляет содержимое буфера обмена
|
||
в положении курсора ввода.</li>
|
||
|
||
<li>Нажатие на клавишу <strong>Delete</strong> приводит к
|
||
удалению выделения (если оно есть в примитиве). Если выделения
|
||
нет, то нажатие на эту клавишу приводит к удалению символа
|
||
справа от курсора ввода.</li>
|
||
|
||
<li><strong>Backspace</strong> и <strong>Control-h</strong>
|
||
удаляют выделение (если оно есть в примитиве). Если выделения
|
||
нет, то нажатие на эти клавиши приводит к удалению символа
|
||
слева от курсора ввода.</li>
|
||
|
||
<li><strong>Control-d</strong> удаляет символ справа от курсора
|
||
ввода.</li>
|
||
|
||
<li><strong>Meta-d</strong> удаляет слово справа от курсора ввода.</li>
|
||
|
||
<li>Нажатие на клавиши <strong>Control-k</strong> приводит к
|
||
удалению символов справа от курсора ввода до конца
|
||
строки. Если курсор ввода находится в конце строки, то
|
||
удаляется символ перевода строки.</li>
|
||
|
||
<li><strong>Control-o</strong> открывает новую строку, вставляя
|
||
символ перевода строки перед курсором ввода; положение курсора
|
||
ввода при этом не изменяется.</li>
|
||
|
||
<li><strong>Meta-backspace</strong> и
|
||
<strong>Meta-Delete</strong> удаляют слово слева от курсора
|
||
ввода.</li>
|
||
|
||
<li><strong>Control-x</strong> удаляет выделение в текстовом
|
||
примитиве.</li>
|
||
|
||
<li><strong>Control-t</strong> меняет местами два символа справа
|
||
от курсора ввода.</li>
|
||
|
||
<li>Если примитив сделан недоступным с помощью параметра
|
||
<strong>-state</strong>, то текст можно двигать по экрану и
|
||
выделять, однако курсор ввода не будет отображаться в
|
||
примитиве и никакие модификации текста невозможны.</li>
|
||
|
||
<li>Определяя новые привязки к отдельным примитивам или
|
||
переопределяя привязки класса, поведение текстовых примитивов
|
||
можно изменить.</li>
|
||
</ol>
|
||
|
||
<h2><a name="ВОПРОСЫ_ПРОИЗВОДИТЕЛЬНОСТИ"></a>ВОПРОСЫ ПРОИЗВОДИТЕЛЬНОСТИ</h2>
|
||
|
||
<p>Текстовые примитивы должны обрабатываться эффективно при самых
|
||
разнообразных условиях. В них используется 2-3 байта основной
|
||
памяти на каждый символ текста, поэтому текст длиной 1 Мегабайт
|
||
и более вполне может эффективно обрабатываться на большинстве
|
||
рабочих станций. Внутреннее представление текста имеет вид
|
||
модифицированного B-дерева, поэтому обработка даже длинных
|
||
текстов довольно эффективна. Реализация меток также позволяет
|
||
использовать много меток. В большинстве случаев удобно
|
||
пользоваться большим числом уникальных тегов или тегом,
|
||
приписанным к большому числу различных частей текста.</p>
|
||
|
||
<p>Проблема эффективности может возникнуть при использовании
|
||
сотен или тысяч различных тегов со следующими характеристиками:
|
||
первая часть текста, приписанная к каждому тегу, начинается
|
||
вблизи начала текста, а последняя кончается вблизи его конца или
|
||
имеется единственная такая часть, включающая в себя почти весь
|
||
текст. Цена добавления или удаления таких тегов пропорциональна
|
||
числу тегов с такими свойствами. Напротив, тысячи различных
|
||
тегов обрабатываются эффективно, если области их действия
|
||
невелики и равномерно распределены по всему тексту.</p>
|
||
|
||
<p>Эффективность может понижаться при наличии очень длинных
|
||
строк текста, содержащих большое число меток и тегов.</p>
|
||
|
||
<p>При каждом мигании курсора ввода строчка экрана, на которой он
|
||
находится, перерисовывается целиком, что приводит к постоянному
|
||
потоку графической информации. Для устранения этого эффекта
|
||
установите атрибут <strong>insertOffTime</strong> в
|
||
"0".</p>
|
||
|
||
</body>
|
||
</html>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|