diff --git a/CHANGELOG b/CHANGELOG
index 718cc6e..948d3a3 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,10 @@
#########################################################
0.4.5
+07.02.2018
+- Tcl, Perl, PHP highlight comment procedure fixed
+- Help file Text.html utf-8 encoding
+
05.02.2018
- Added binding mouse button: click on notebook tab highlight opened file name in tree
- Change "Paste from Clipboard" function
@@ -386,5 +390,6 @@ Fixed bug with PageRise function
+
diff --git a/hlp/ru/tk/text.html b/hlp/ru/tk/text.html
index a2ef372..63a3328 100644
--- a/hlp/ru/tk/text.html
+++ b/hlp/ru/tk/text.html
@@ -6,15 +6,15 @@
text
- .
+ Создание текстового примитива и управление им.
-
+ СИНТАКСИС
- text
+ text имяПути параметры
-
+ СТАНДАРТНЫЕ ПАРАМЕТРЫ
- -background
@@ -43,2042 +43,2042 @@
- -yscrollcommand
-
+
Подробное описание этих параметров приведено в разделе
options.
-
+ ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА
- : | -height |
- : | height |
- : | Height |
+ Имя параметра: | -height |
+ Имя в Базе: | height |
+ Класс в Базе: | Height |
- ;
- , -font.
- .
+ Задает желаемую высоту окна в символах; размер символа
+ определяется шрифтом, который задан параметром -font. Значение параметра должно быть не меньше
+ единицы.
- : | -spacing1 |
- : | spacing1 |
- : | Spacing1 |
+ Имя параметра: | -spacing1 |
+ Имя в Базе: | spacing1 |
+ Класс в Базе: | Spacing1 |
-
- (
- ).
- .
- -spacing1 .
+ Запрашивает дополнительный промежуток перед каждой строкой
+ текста в примитиве (в любой из разрешенных форм для расстояний
+ на экране). При переносе строки заданное значение относится
+ только к первой строчке на экране. Параметр
+ -spacing1 в тегах подавляет данный.
- : | -spacing2 |
- : | spacing2 |
- : | Spacing2 |
+ Имя параметра: | -spacing2 |
+ Имя в Базе: | spacing2 |
+ Класс в Базе: | Spacing2 |
-
- ,
- (
- ). spacing2
- .
+ Задает величину дополнительного промежутка между двумя
+ последовательными строчками на экране, полученными в результате
+ переноса одной строки текста (в любой из разрешенных форм для
+ расстояний на экране). Параметр spacing2 в
+ тегах подавляет данный.
- : | -spacing3 |
- : | spacing3 |
- : | Spacing3 |
+ Имя параметра: | -spacing3 |
+ Имя в Базе: | spacing3 |
+ Класс в Базе: | Spacing3 |
-
- (
- ).
- .
- -spacing3 .
+ Запрашивает дополнительный промежуток после каждой строкой
+ текста в примитиве (в любой из разрешенных форм для расстояний
+ на экране). При переносе строки заданное значение относится
+ только к последней строчке на экране. Параметр
+ -spacing3 в тегах подавляет данный.
- : | -state |
- : | state |
- : | State |
+ Имя параметра: | -state |
+ Имя в Базе: | state |
+ Класс в Базе: | State |
- :
- (normal)
- (disabled). ,
- ,
- , .
+ Задает одно из двух состояний текста: нормальное
+ (normal) или недоступное
+ (disabled). Текст, находящийся в недоступном
+ состоянии, нельзя редактировать и в нем не отображается курсор
+ ввода, даже если данный примитив находится в фокусе ввода.
- : | -tabs |
- : | tabs |
- : | Tabs |
+ Имя параметра: | -tabs |
+ Имя в Базе: | tabs |
+ Класс в Базе: | Tabs |
- .
- ,
- . , ,
- ,
-
- left, right,
- center numeric.
- left;
- , ,
- . Right ,
- ,
- , center
-
- . Numeric ,
- ;
- ,
- ;
- ,
- . , -tabs {2c left
- 4c 6c center}
- ,
- ,
- .
- ,
- , Tk ,
- ,
- . -tabs
- . -tabs
- , Tk
- ,
- .
+ Задает набор положений табулятора в окне. Значение параметра
+ представляет собой список расстояний на экране, задающих эти
+ положения. Элемент списка, следующий за элементом, который
+ указывает очередное положение табулятора, может описывать способ
+ расположения текста относительно этого положения с помощью
+ ключевых слов left, right,
+ center или numeric. Значение
+ по умолчанию равно left; в этом случае левый
+ край текста, следующего за символом табуляции, располагается в
+ позиции табуляции. Right означает, что в
+ позиции табуляции располагается правый край текста, следующего
+ за символом табуляции, а center указывает на
+ необходимость центрировать текст относительно позиции
+ табуляции. Numeric означает, что в позиции
+ табуляции следует располагать десятичную точку текста; если в
+ тексте нет десятичной точки, то младшая значащая цифра числа
+ располагается непосредственно слева от позиции табуляции; если в
+ тексте нет чисел, то он выравнивается вправо по позиции
+ табуляции. Например, задание параметра -tabs {2c left
+ 4c 6c center} приводит к созданию трех позиций
+ табулятора с двухсантиметровым интервалом, первые два из которых
+ используют выравнивание влево, а третья выравнивание по
+ центру. Если в списке положений табулятора их оказывается
+ недостаточно, чтобы обеспечить все символы табуляции в строке
+ текста, то Tk создает дополнительные позиции табуляции,
+ экстраполируя промежуток и способ выравнивания текста, указанные
+ последним элементом списка. Параметр -tabs в
+ тегах подавляет данный. Если параметр -tabs не
+ задан или его значением является пустая строка, то Tk использует
+ табуляцию по умолчанию с шагом, равным восьми символам среднего
+ размера.
- : | -width |
- : | width |
- : | Width |
+ Имя параметра: | -width |
+ Имя в Базе: | width |
+ Класс в Базе: | Width |
- ;
- , -font.
- ,
- "0".
+
Задает желаемую ширину окна в символах; размер символа
+ определяется шрифтом, который задан параметром -font. Если
+ ширина символа в шрифте непостоянна, то для перевода числа
+ символов в единицы экрана используется ширина символа "0".
- : | -wrap |
- : | wrap |
- : | Wrap |
+ Имя параметра: | -wrap |
+ Имя в Базе: | wrap |
+ Класс в Базе: | Wrap |
- ,
- .
- none, char
- word. none
- ,
- .
-
- ,
- . char
- ;
- word
- .
+ Задает способ обращения с чересчур длинными строками, которые
+ не помещаются в одной строчке экрана. Может принимать одно из
+ значений none, char или
+ word. Значение none указывает
+ на то, что каждая строка текста отображается в единственной
+ строчке экрана не поместившиеся символы не выводятся. В
+ остальных двух режимах при необходимости осуществляется перенос
+ каждой строки текста, чтобы все ее содержимое отображалось на
+ экране. В режиме char переход на новую строчку
+ можно осуществлять после любого символа; в режиме
+ word перенос строки выполняется только после
+ конца слова.
-
+ ОПИСАНИЕ
- text (
- )
- . ,
- ,
- . text
- .
+ Команда text создает новое окно (задаваемое
+ аргументом имяПути) и превращает его в текстовый
+ примитив. Детали изображения текста, такие как цвет фона по
+ умолчанию и объемный вид, задаются с помощью описанных выше
+ дополнительных параметров. Команда text
+ возвращает имя пути нового окна.
-
- .
-
- , ,
- .
- .
- Tcl,
- , ,
- "",
- . (. "").
+ Текстовый примитив предназначен для вывода одной или нескольких
+ строк текста и для редактирования этого текста. Текстовые
+ примитивы поддерживают четыре способа отметить часть текста так
+ называемые теги, метки, вставленные окна и вставленные
+ изображения. Теги позволяют выводить различные части текста
+ различными шрифтами и цветом. Кроме того с тегами можно связать
+ команды Tcl, которые будут выполняться каждый раз при совершении
+ определенных действий, например, при нажатиях на клавиши
+ клавиатуры и "Мыши", если курсор находится в определенной части
+ текста. Подробно эти возможности описаны ниже (см. "Теги").
-
- .
- ,
- .
- (. "").
+ Метки представляют собой другой способ отметить часть
+ текста. Они предназначены для указания на различные интересные
+ места в тексте, возникающие в процессе его
+ редактирования. Подробно эти возможности описаны ниже
+ (см. "Метки").
-
- .
- (. "
- ").
+ Третий способ обеспечивает возможность вставки в текст
+ произвольных окон. Подробно эти возможности описаны ниже
+ (см. "Вставленные
+ окна").
-
- Tk.
- (. "
- ".)
+ Четвертый способ обеспечивает возможность вставки в текст
+ изображений Tk. Подробно эти возможности описаны ниже
+ (см. "Вставленные
+ изображения".)
-
+ ИНДЕКСЫ
-
- . ,
- ,
- .
- :
+ Аргументами многих команд примитива являются один или несколько
+ индексов. Индекс представляет собой строку, указывающую
+ конкретное место в тексте например, место вставки текста или
+ один из граничных символов удаляемого участка текста. Индексы
+ имеют следующий синтаксис:
- ...
+ база модификатор модификатор модификатор ...
- ,
-
- (, ).
- ,
- .
+ База это указатель начальной точки, а
+ модификаторы указывают сдвиг от начальной точки
+ (например, на один символ влево или вправо от базы). База
+ является обязательной частью индекса, а модификаторы
+ необязательной.
-
- :
+ База индекса должна быть представлена в одном из
+ следующих видов:
- - .
+ - строка.сим
- -
- .
- UNIX, ,
- , "1".
- "0".
- end,
- , .
+ - Указывает на символ с номером сим в строке с
+ номером строка . Для совместимости с другими
+ программами ОС UNIX, использующими тот же подход к нумерации,
+ строки нумеруются, начиная с "1". Нумерация символов
+ в строке начинается с "0". Если значением
+ сим является end, то база ссылается
+ на символ перевода строки, завершающий строку.
- @x,y
- - ,
- x
+
- Указывает на символ, в котором находится точка с
+ координатами в окне текста равными x и
y.
- end
- - ( ,
-
- ).
+ - Указывает на конец текста (на символ, следующий
+ непосредственно за последним символом перехода на новую
+ строку).
-
+ - метка
- - ,
- .
+ - Указывает на символ, следующий непосредственно за меткой с
+ именем метка.
- - .first
+ - тег.first
- - ,
- . ,
- , .
+ - Указывает на первый символ в тексте, помеченный тегом с
+ именем тег. Если в тексте нет символов, помеченных
+ тегом, то возникает ошибка.
- - .last
+ - тег.last
- - ,
- , .
- , ,
- .
+ - Указывает на символ, непосредственно следующий за последним
+ символом, помеченным тегом с именем тег. Если в
+ тексте нет символов, помеченных тегом, то возникает
+ ошибка.
-
+ - имяПути
- -
- .
- , .
+ - Указывает положение вставленного окна с именем
+ имяПути. Если вставленное окно с заданным именем
+ отсутствует, то возникает ошибка.
-
+ - имяИзобр
- -
- .
- , .
+ - Указывает положение вставленного изображения с именем
+ имяИзобр. Если вставленное изображение с заданным
+ именем отсутствует, то возникает ошибка.
- (, ,
- ,
- ), ,
- .
- ,
- . , ,
- chars wordend,
- ,
- .
+ Если вид базы не определяется однозначно (так, например, если
+ метка и имяИзобр имеют одинаковое значение, то
+ их нельзя различить), то предпочтение отдается виду,
+ встречающемуся в приведенном списке раньше. Если за индексом
+ базы идут модификаторы, то каждый из них должен быть представлен
+ в одном из описанных ниже видов. Ключевые слова, например,
+ chars или wordend, можно
+ сокращать, если результат сокращения позволяет однозначно
+ восстановить слово.
- - + chars
+ - + счет chars
- - ,
- .
- , ,
-
- .
- .
+ - Увеличивает индекс на счет символов, при
+ необходимости переходя на следующую строку. Если за символом с
+ текущим индексом следует меньше символов, чем счет,
+ то индекс устанавливается на последний символ в
+ тексте. Пробелы по обе стороны от значения счет
+ необязательны.
- - - chars
+ - - счет chars
- - ,
- .
- ,
- ,
- .
- .
+ - Уменьшает индекс на счет символов, при
+ необходимости переходя на предыдущую строку. Если перед
+ символом с текущим индексом идет меньше символов, чем
+ счет, то индекс устанавливается на первый символ в
+ тексте. Пробелы по обе стороны от значения счет
+ необязательны.
- - + lines
+ - + счет lines
- - ,
- .
- , ,
- .
- ,
- (
- ).
- .
+ - Увеличивает индекс на счет строк, сохраняя номер
+ символа в строке. Если за строкой с текущим индексом следует
+ меньше строк, чем счет, то индекс устанавливается на
+ символ с тем же номером в последней строчке текста. Если длина
+ строки с новым положением индекса меньше номера символа, то
+ индекс указывает на последний символ в этой строке (символ
+ перевода строки). Пробелы по обе стороны от значения
+ счет необязательны.
- - - lines
+ - - счет lines
- - ,
- .
- , ,
- .
- ,
- (
- ).
- .
+ - Уменьшает индекс на счет строк, сохраняя номер
+ символа в строке. Если перед строкой с текущим индексом идет
+ меньше строк, чем счет, то индекс устанавливается на
+ символ с тем же номером в первой строчке текста. Если длина
+ строки с новым положением индекса меньше номера символа, то
+ индекс указывает на последний символ в этой строке (символ
+ перевода строки). Пробелы по обе стороны от значения
+ счет необязательны.
- linestart
- - .
+ - Устанавливает индекс на первый символ в строке.
- lineend
- - (
- ).
+ - Устанавливает индекс на последний символ в строке (символ
+ перевода строки).
- wordstart
- - ,
- .
- ,
- (, , ).
+ - Устанавливает индекс на первый символ в слове, содержащем
+ символ с текущим значением индекса. Слово представляет собой
+ последовательность букв, цифр или символов подчеркивания
+ (состоящую, быть может, из одного символа).
- wordend
- - ,
- .
- ,
- .
+ - Устанавливает индекс на первый символ в слове, содержащем
+ символ с текущим значением индекса. Если текущее значение
+ индекса и без того указывает на последний символ в слове, то
+ оно не изменяется.
- ,
- . , ,
- "end-1 chars"
- , "insert
- wordstart-1 c" ,
- ,
- .
+ Если в команде задано несколько модификаторов, то они
+ применяются слева направо. Так, например, индекс
+ "end-1 chars" указывает на
+ предпоследний символ в тексте, а индекс "insert
+ wordstart-1 c" указывает на символ,
+ непосредственно предшествующий первому символу в слове,
+ содержащем символ с текущим значением индекса.
-
+ ТЕГИ
- .
- ,
- . ,
- " " (), "+"
- "-" :
- ,
- , .
- .
- ,
- .
- .
+ Участки текста можно помечать с помощью тегов. Тег представляет
+ собой символьную строку, которая привязана к некоторым символам
+ текста. В принципе теги могут содержать любые символы, однако
+ использования символов " " (пробел), "+"
+ и "-" лучше избегать: это специальные символы
+ индексов и использование тега, в котором присутствуют такие
+ символы, в качестве индекса невозможно. С символами данного
+ текста можно связать произвольное количество тегов. Каждый тег
+ может относиться к одному символу, последовательности символов
+ или к нескольким последовательностям символов. С отдельным
+ символом может быть связано произвольное количество тегов.
- ;
- .
- ( ,
- , )
- ,
- .
- " tag
- raise" " tag
+ Все теги упорядочены; на этот порядок опираются некоторые из
+ описываемых ниже функций работы с тегами. При определении тега
+ (путем связывания его с символами, или при установке параметров
+ его представления на экране, или при привязке к нему команд) он
+ получает более высокий приоритет, чем все существующие
+ теги. Приоритетный порядок тегов можно изменить с помощью команд
+ примитива "имяПути tag
+ raise" и "имяПути tag
lower".
-
- . -,
- .
- background,
- font foreground
- . "
- tag configure"
- .
- ,
- .
- :
+ В текстовых примитивах теги служат для достижения трех
+ целей. Во-первых, они управляют отображением информации на
+ экране. По умолчанию способ отображения текста определяется
+ значениями параметров background,
+ font и foreground текстового
+ примитива. Однако команда примитива "имяПути
+ tag configure" позволяет связать с каждым тегом
+ свои значения параметров отображения. Если с символом связан
+ тег, то значения параметров отображения для этого тега подавляют
+ значения по умолчанию. В настоящее время для тегов можно
+ пользоваться следующими параметрами:
- - -background
+ - -background цвет
- -
- , .
- ,
+
- Параметр цвет задает цвет фона для изображения
+ символов, связанных с данным тегом. Его значение может быть
+ представлено в любом виде, приемлемом для
Tk_GetColor.
- - -bgstipple
+ - -bgstipple двуцвет
- - ,
- .
- ,
- Tk_GetBitmap.
- ,
- .
+
- Параметр двуцвет задает двуцветное изображение,
+ предназначенное для вывода в качестве фона для текста. Его
+ значение может быть представлено в любом виде, приемлемом для
+ Tk_GetBitmap. Если параметр двуцвет
+ не задан или его значением является пустая строка, то
+ используется равномерное заполнение фона.
- - -borderwidth
+ - -borderwidth пиксели
- - ,
- .
- , Tk_GetPixels.
-
- -relief
- ;
- -background ,
- -borderwidth .
+ - Параметр пиксели задает ширину трехмерного бордюра,
+ окружающего фон. Его значение может быть представлено в любом
+ виде, приемлемом для Tk_GetPixels. Этот
+ параметр используется в сочетании с параметром
+ -relief для описания трехмерного
+ представления фона для символов; если параметр
+ -background для тега не задан, то параметр
+ -borderwidth игнорируется.
- - -fgstipple
+ - -fgstipple двуцвет
- - ,
-
- (,
- ).
- , Tk_GetBitmap.
-
- ,
- .
+ - Параметр двуцвет задает двуцветное изображение,
+ предназначенное для вывода в качестве фона для рисования
+ текста и другой информации переднего плана (например,
+ подчеркивания). Его значение может быть представлено в любом
+ виде, приемлемом для Tk_GetBitmap. Если
+ параметр двуцвет не задан или его значением является
+ пустая строка, то используется равномерное заполнение
+ фона.
- - -font
+ - -font имяШрифта
- -
- .
- , Параметр имяШрифта задает имя шрифта для
+ изображения символов. Его значение может быть представлено в
+ любом виде, которы описан в команде font.
- - -foreground
+ - -foreground цвет
- -
- , , .
- ,
+
- Параметр цвет задает цвет символов текста и другой
+ информации переднего плана, например, подчеркивания. Его
+ значение может быть представлено в любом виде, приемлемом для
Tk_GetColor.
- - -justify
+ - -justify вырав
- - ,
- ,
- .
- left,
- right center.
-
- .
+ - Если первый символ строчки на экране связан с тегом, для
+ которого задан такой параметр, то значение параметра
+ определяет способ выравнивания текста в строчке. Параметр
+ вырав может принимать значения left,
+ right и center. При переносе
+ строки выравнивание каждой из получившихся строчек на экране
+ определяется первым символом этой строчки.
- - -lmargin1
+ - -lmargin1 пиксели
- - ,
- ,
- .
-
- .
- ;
-
+
- Если первый символ строчки на экране связан с тегом, для
+ которого задан такой параметр, то значение параметра пиксели
+ задает величину отступа от левого края окна. Значение
+ параметра пиксели представляет собой расстояние на экране в
+ любом допустимом виде. При переносе строки этот параметр
+ применяется только к первой строчке на экране; отступом
+ остальных строк управляет параметр
-lmargin2.
- - -lmargin2
+ - -lmargin2 пиксели
- - ,
- ,
- (..
- ),
-
- .
- .
- ;
- .
+ - Если первый символ строчки на экране связан с тегом, для
+ которого задан такой параметр, и если строчка на экране не
+ является первой строчкой строки текста (т.е. она представляет
+ собой часть перенесенной строки текста), то значение параметра
+ пиксели задает величину отступа данной строчки от левого края
+ окна. Значение параметра пиксели представляет собой расстояние
+ на экране в любом допустимом виде. Этот параметр используется
+ только если допускается перенос строки; он применяется только
+ ко второй и последующим перенесенным строчкам.
- - -offset
+ - -offset пиксели
- - (
- )
- . ,
- , .
-
- .
+ - Параметр пиксели задает величину сдвига (в
+ пикселях) по вертикали базиса строки текста от базиса основной
+ строки. Например, для верхних индексов базисная строка
+ сдвигается вверх, а для нижних вниз. Значение параметра
+ пиксели представляет собой расстояние на экране в любом
+ допустимом виде.
- - -overstrike
+ - -overstrike булевское
- - ,
- .
- ,
+
- Указывает, следует ли проводить горизонтальную прямую
+ посередине символов. Значение параметра булевское
+ может быть представлено в любом виде, приемлемом для
Tk_GetBoolean.
- - -relief
+ - -relief обвид
- -
- , Tk_GetRelief.
-
- -borderwidth
- ;
- -background ,
- -relief .
+ - Значение параметра обвид задает объемный вид фона в
+ любом виде, приемлемом для Tk_GetRelief. Этот
+ параметр используется в сочетании с параметром
+ -borderwidth для установления трехмерного
+ вида фона для символов; если параметр
+ -background для данного тега не установлен,
+ то параметр -relief игнорируется.
- - -rmargin
+ - -rmargin пиксели
- - ,
- ,
-
- .
- .
- ,
- .
- .
+ - Если первый символ строчки на экране связан с тегом, для
+ которого задан такой параметр, то значение параметра пиксели
+ задает величину отступа между последним символом строчки и
+ правым краем окна. Значение параметра пиксели представляет
+ собой расстояние на экране в любом допустимом виде. Этот
+ параметр используется только, если перенос строки
+ допустим. При переносе строки этот параметр применяется только
+ ко всем перенесенным строчкам.
- - -spacing1
+ - -spacing1 пиксели
- -
- .
-
- .
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства над каждой строкой текста. Значение параметра
+ пиксели представляет собой расстояние на экране в любом
+ допустимом виде. При переносе строки этот параметр применяется
+ только к первой строчке на экране.
- - -spacing2
+ - -spacing2 пиксели
- -
- ,
- .
-
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства над каждой перенесенной строчкой из строчек,
+ составляющих одну строку текста. Значение параметра пиксели
+ представляет собой расстояние на экране в любом допустимом
+ виде.
- - -spacing3
+ - -spacing3 пиксели
- -
- .
-
- .
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства под каждой строкой текста. Значение параметра
+ пиксели представляет собой расстояние на экране в любом
+ допустимом виде. При переносе строки этот параметр применяется
+ только к последней строчке на экране.
- - -tabs
+ - -tabs списТаб
- -
- , -tabs
- .
- ,
- . ,
- (
- ).
- , (,
- -tags { }),
- 8-
- (. -tags
- ).
+ - Параметр списТаб задает набор положений табулятора
+ в том же виде, что и параметр -tabs для
+ текстового примитива. Этот параметр относится к строке текста
+ только в том случае, если он связан с первым символом
+ строки. Если значением параметра является пустая строка, то
+ параметр считается не заданным для данного тега (по
+ умолчанию). Если значением параметра является не пустая
+ строка, а пустой список (например, установка параметра имеет
+ вид -tags { }), то его значением считается
+ стандартный набор 8-символьных позиций табулятора
+ (см. описание параметра -tags для
+ примитива).
- - -underline
+ - -underline булевское
- - ,
- .
- ,
+
- Параметр булевское указывает, следует ли
+ подчеркивать символы. Значение параметра булевское может быть
+ представлено в любом виде, приемлемом для
Tk_GetBoolean.
- - -wrap
+ - -wrap режим
- - ,
- .
- , -wrap
- : none,
- char word.
- ,
- -wrap .
+ - Параметр режим задает способ обработки строк, длина
+ которых превышает ширину текстового окна. Допустимые значения
+ параметра те же, что и у параметра -wrap
+ текстового примитива: none,
+ char и word. Если этот
+ параметр задан, то он подавляет параметр
+ -wrap текстового примитива.
- ,
- ,
- .
-
- ,
- ;
- .
- , ,
- .
+ Если с символом связано несколько тегов, причем задаваемые ими
+ параметры вывода противоречат друг другу, то используются
+ значения параметров тегов с наивысшим приоритетом. Если
+ некоторый параметр вывода для конкретного тега не задан или если
+ его значением является пустая строка, то этот параметр при
+ выводе не используется; вместо него берется параметр тега со
+ следующим приоритетом. Если ни один из тегов не определяет
+ параметра вывода, то используется стиль, принятый для данного
+ примитива по умолчанию.
--, .
- ,
- : Tcl ,
- .
- ;
-
- .
- . tag
+Во-вторых, теги служат для привязки событий. Привязки к тегу
+осуществляются практически таким же образом, как и привязки к
+ классу примитива: заданная команда Tcl исполняется всякий раз,
+ когда на символе с данным тегом происходит указанное событие. С
+ помощью привязок к тегам можно задать поведение групп символов;
+ помимо прочего таким образом можно реализовать некоторые
+ свойства гипертекста. Подробное описание этих возможностей
+ см. ниже в описании команды примитива tag
bind.
-
- (. "" ).
+ Третья задача тегов обеспечивать управление выделениями
+ (См. "Выделение" ).
-
+ МЕТКИ
-
- .
- . ,
- ,
- . ,
- .
- . ,
- , ,
- .
- .
- " mark";
-
- .
+ Метки представляют собой другой способ отмечать части
+ текста. Они служат для запоминания фиксированных мест в
+ тексте. Метки похожи на теги в том, что они поименованы и
+ ссылаются на определенные места в тексте, однако они не связаны
+ ни с какими конкретными символами. Напротив, метка указывает на
+ промежуток между двумя символами. В каждый момент времени метка
+ указывает в точности на одно положение. При удалении символов,
+ окружающих положение метки, сама метка сохраняется, меняются
+ лишь ее соседи. Теги же теряют привязку к символам при удалении
+ этих символов. Для работы с метками предназначена команда
+ примитива "имяПути mark";
+ имя метки можно использовать в качестве индекса в командах
+ примитива этот индекс указывает на текущее положение метки.
- ,
- left
- right.
- .
- ,
- ;
- .
- .
+
Каждой метке приписывается притяжение, которое может
+ принимать значения left и
+ right. Притяжение определяет поведение метка
+ при вводе текста в положении метки. При левом притяжении метка
+ ведет себя, как если бы она была приписана к символу слева от
+ нее; такая метка будет оставаться слева от вновь вводимого
+ текста. Для метки с правым притяжением вновь вводимый текст
+ окажется слева от нее. По умолчанию притяжение имеет значение
right.
- :
- ;
- .
+ Пространства имен меток и тегов различны: одинаковые имена
+ могут использоваться для метки и тега; при этом они будут
+ ссылаться на различные объекты.
- . insert
- ; . (. " ").
- current ,
- "",
-
- ( : current
-
- ""; ,
- "" ).
- .
+ У двух меток есть особый смысл. Метка insert
+ связана с курсором ввода; см. описание ниже (см. "Курсор ввода"). Метка
+ current связана с символом, ближайшим к курсору
+ "Мыши", ее положение меняется автоматически при
+ изменении позиции курсора и любых изменениях текста в примитиве
+ (с одним исключением: метка current не
+ обновляется в ответ на изменение положения курсора при нажатой
+ клавише "Мыши"; обновление откладывается до момента,
+ когда все клавиши "Мыши" будут отпущены). Ни одну из
+ этих двух специальных меток нельзя удалить.
-
+ ВСТАВЛЕННЫЕ ОКНА
-
- .
- .
- ;
- (
- ,
-
- ).
- ;
- ,
- .
- ;
- ,
- . ,
- , .
+ Вставленное окно это третий тип ссылок в текстовом
+ примитиве. Ссылка на вставленное окно приводит к появлению окна
+ в заданном месте текста. В текстовом примитиве может быть любое
+ количество вставленных окон; в качестве вставленного окна может
+ быть использован любой примитив (при соблюдении обычных
+ ограничений управления геометрией, согласно которым текстовое
+ окно должно быть непосредственным предком вставленного окна или
+ потомком этого предка). Положение вставленного окна меняется
+ при редактировании или прокрутке текста; окно выводится или
+ стирается в зависимости от того, попадает ли оно в видимую часть
+ текста. Вставленное окно считается одним символом в индексном
+ пространстве текстового примитива; на него можно сослаться либо
+ по имени текстового окна, либо по значению индекса в индексном
+ пространстве. При удалении области текста, содержащей
+ вставленное окно, оно разрушается.
-
- window create
- .
-
- window configure.
- :
+ При добавлении в текстовый примитив вставленного окна с помощью
+ команды примитива window create с ним можно
+ связать несколько параметров конфигурации. Значения этих
+ параметров можно впоследствии изменить командой примитива
+ window configure. В настоящее время
+ поддерживаются следующие параметры:
- - -align
+ - -align где
- - ,
- , ,
- .
- : top (
- ), center (
- ), bottom
- ( )
- baseline (
- ).
+ - Если высота вставленного окна отличается от высоты строчки,
+ в которой оно выводится, то этот параметр определяет место,
+ где выводится окно. Параметр где может принимать следующие
+ значения: top (верхушка окна совпадает с
+ верхней частью строчки), center (окно
+ центрируется в области строчки), bottom
+ (нижняя часть окна совпадает с нижней частью строчки) и
+ baseline (нижняя часть окна совпадает с базой
+ строчки).
- - -create
+ - -create скрипт
- - Tcl,
- . ,
- -window.
-
- . ,
- .
+ - Задает скрипт Tcl, выполняемый для создания вставленного
+ окна. Этот скрипт выполняется при выводе окна, если для окна
+ не был указан параметр -window.Скрипт
+ создает окно и возвращает в качестве результата имя этого
+ окна. Если окно удаляется, то при его повторном выводе снова
+ исполняется тот же скрипт.
- - -padx
+ - -padx пиксели
- - ,
- .
-
- .
+ - Параметр пиксели задает размер дополнительного пространства,
+ которое следует оставить по обе стороны вставленного окна. Его
+ значение представляет собой расстояние на экране в любом
+ допустимом виде.
- - -pady
+ - -pady пиксели
- -
- ,
- .
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства, которое следует оставить сверху и снизу от
+ вставленного окна. Его значение представляет собой расстояние
+ на экране в любом допустимом виде.
- - -stretch
+ - -stretch булевское
- - ,
- ,
- , .
- -pady,
-
- .
+ - Параметр указывает, следует ли вытягивать вставленное окно
+ до высоты строчки, если запрошенная для него высота меньше
+ высоты строчки, на которой это окно выводится. Если для окна
+ задан также параметр -pady, то запрошенное
+ этим параметром обрамление сохраняется и при вытягивании
+ окна.
- - -window
+ - -window имяПути
- - .
+ - Задает имя выводимого окна.
-
+ ВСТАВЛЕННЫЕ ИЗОБРАЖЕНИЯ
-
- .
- .
- ,
-
- .
- .
-
- ;
- , ,
- image create.
- , ,
- .
+ Последним видом пометок в текстовых примитивах являются
+ вставленные изображения. Такая пометка приводит к выводу
+ изображения в заданном месте текста. В текстовом примитиве может
+ присутствовать произвольное количество вставленных изображений,
+ а одно и то же изображение может вставляться в произвольном
+ количестве мест в тексте. Положение вставленного изображения
+ меняется при редактировании или прокрутке текста. Вставленное
+ изображение считается одним символом в индексном пространстве
+ текстового примитива; на него можно сослаться либо по значению
+ индекса в индексном пространстве, либо по имени, которое оно
+ получает при создании командой image create. При
+ удалении области текста, содержащей вставленное изображение,
+ данная его копия стирается с экрана.
-
- При добавлении в текстовый примитив вставленного изображения с
+ помощью команды примитива image create
-
- .
- .
- -name (. ).
- -name ,
- -image.
- ,
- #nn, nn .
- .
-
- , ,
- -image -name
- image
+ команда возвращает уникальное имя данного вхождения изображения
+ в текст. Это имя в дальнейшем можно использовать для ссылок на
+ вхождение изображения. Имя совпадает со значением параметра
+ -name (см. ниже). Если параметр
+ -name не задан, то вместо него используется имя
+ -image. Если значение имяИзобр уже
+ использовано в примитиве, то к нему дописываются символы
+ #nn, где nn произвольное целое число. Таким
+ образом обеспечивается уникальность имени. После присвоения
+ имени данному вхождению изображения это имя в дальнейшем не
+ меняется, несмотря на то, что значения параметров
+ -image и -name можно поменять
+ с помощью команды image
configure.
-
- image create
- .
- При добавлении в текстовый примитив вставленного изображения с
+ помощью команды примитива image create с ним
+ можно связать несколько параметров конфигурации. Значения этих
+ параметров можно впоследствии изменить командой примитива image
- configure.
- :
+ configure. В настоящее время поддерживаются
+ следующие параметры:
- - -align
+ - -align где
- -
- , ,
- , .
- : top (
- ),
- center (
- ), bottom (
- ) baseline
- ( ).
+ - Если высота вставленного изображения отличается от высоты
+ строчки, в которой оно выводится, то этот параметр определяет
+ место, где выводится изображение. Параметр где может принимать
+ следующие значения: top (верхушка
+ изображения совпадает с верхней частью строчки),
+ center (изображение центрируется в области
+ строчки), bottom (нижняя часть изображения
+ совпадает с нижней частью строчки) и baseline
+ (нижняя часть изображения совпадает с базой строчки).
- - -image
+ - -image изобр
- - Tk.
- ,
- .
+ - Задает имя выводимого изображения Tk. Если значение
+ параметра не является допустимым именем изображения, то
+ возвращается сообщение об ошибке.
- - -name
+ - -name ИмяИзобр
- - .
- ,
- Tk.
- , #nn,
- .
+ - Задает имя ссылки на данное вхождение изображения. Если
+ параметр ИмяИзобр не задан, то именем служит имя
+ изображения Tk. Если значение параметра ИмяИзобр уже
+ использовалось, то к нему приписываются символы #nn, как
+ описано выше.
- - -padx
+ - -padx пиксели
- -
- ,
- .
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства, которое следует оставить по обе стороны
+ вставленного изображения. Его значение представляет собой
+ расстояние на экране в любом допустимом виде.
- - -pady
+ - -pady пиксели
- -
- ,
- .
- .
+ - Параметр пиксели задает размер дополнительного
+ пространства, которое следует оставить сверху и снизу от
+ вставленного изображения. Его значение представляет собой
+ расстояние на экране в любом допустимом виде.
-
+ ВЫДЕЛЕНИЕ
- .
- exportSelection
- ,
+
Выделение реализуется с помощью тегов. Если параметр
+ exportSelection текстового примитива имеет
+ значение истина, то с выделением ассоциируется тег
sel:
- -
- sel,
- .
+ - Если некоторые символы помечены тегом
+ sel, то текстовый примитив притязает на
+ владение выделением.
- - ,
- sel.
+ - Результатом поиска выделения будут служить все символы,
+ помеченные тегом sel.
- -
- , sel
- .
+ - Если выделение запрашивается другим приложением или другим
+ окном данного приложения, то тег sel
+ снимается со всех символов текста.
- sel
- ;
- " tag
- delete".
+
Тег sel определяется автоматически при
+ создании текстового примитива; его нельзя удалить командой
+ примитива "имяПути tag
+ delete". Кроме того параметры
selectBackground,
- selectBorderWidth
- selectForeground
- -background,
- -borderwidth -foreground
- sel:
-
- .
+ selectBorderWidth и
+ selectForeground текстового примитива связаны с
+ параметрами -background,
+ -borderwidth и -foreground
+ тега sel: изменение одного из этих параметров
+ примитива автоматически вызывает изменение соответствующего
+ параметра тега и наоборот.
-
+ КУРСОР ВВОДА
- insert
- .
-
- "mark unset".
- insert ;
- ,
- .
+ Метка с именем insert имеет в текстовых
+ примитивах специальное значение. Она определяется автоматически
+ при создании примитива и ее нельзя отменить командой примитива
+ "имяПутиmark unset". Метка
+ insert задает положение курсора ввода; курсор
+ ввода отображается в этом положении всякий раз, когда текстовый
+ примитив попадает в фокус ввода.
-
+ КОМАНДА ПРИМИТИВА
- text Tcl,
- .
- .
-
+ Команда text создает новую команду Tcl, имя
+ которой совпадает с именем текстового окна. С помощью этой
+ команды можно выполнять различные операции над примитивом. Ее
+ общий вид
- ? ...?
+ имяПути параметр ?арг арг ...?
- ;
- .
- .
- :
+ имяПути является именем команды; оно совпадает с
+ именем пути текстового примитива. Параметр и аргументы уточняют
+ поведение команды. Текстовые примитивы допускают следующие формы
+ команды:
- - bbox
+ - имяПути bbox индекс
- - ,
- , .
- x y
- ;
- . ,
- .
- ,
- .
+ - Возвращает список из четырех элементов, описывающий область
+ экрана, занимаемую символом с индексом индекс. Первые
+ два элемента списка представляют собой координаты x и y
+ верхнего левого угла этой области; последние два это ее ширина
+ и высота. Если символ виден на экране лишь частично, то
+ возвращаемые значения описывают видимую часть области. Если
+ символ на экране не виден, то возвращаемое значение является
+ пустым списком.
- - cget
-
+ - имяПути cget
+ параметр
- -
- .
- text.
+ - Возвращает текущее значение параметра конфигурации с именем
+ параметр. Параметр может быть любым из параметров
+ команды text.
- - compare 1
- 2
+ - имяПути compare индекс1 оп
+ индекс2
- - , 1
- 2, ,
- ;
- "1", ,
- "0" .
- "<", "<=",
- "=", ">=", ">"
- "!=".
- "=", "1",
- ;
- "<" "1",
- 1 ,
- 2, ..
+ - Сравнивает индексы, задаваемые параметрами индекс1
+ и индекс2, в соответствии с оператором отношения,
+ задаваемым параметром оп; команда возвращает
+ "1", если указанное отношение выполняется, и
+ "0" в противном случае. Параметр оп может принимать
+ одно из значений "<", "<=",
+ "=", ">=", ">" или
+ "!=". Если значением оператора является
+ "=", то команда возвращает "1", если оба
+ индекса ссылаются на один и тот же символ; при операторе
+ "<" команда возвращает "1", если
+ индекс1 ссылается на символ, предшествующий символу с
+ индексом индекс2, и т.д.
- - configure
- ?? ?
+
- имяПути configure
+ ?параметр? ?значение параметр значение
...?
- -
- . ,
- ,
- (
- Tk_ConfigureInfo). ,
- ,
- , .
- -,
-
- ,
- .
- text.
+ - Запрашивает значения параметров конфигурации примитива или
+ изменяет их. Если параметр не указан, то возвращает
+ список, содержащий значения всех допустимых в
+ имениПути параметров (формат списка описан в
+ Tk_ConfigureInfo). Если параметр задан, а его новое
+ значение нет, то команда возвращает часть полного
+ списка, относящуюся к указанному параметру. Если заданы одна
+ или несколько пар параметр-значение, то указанным
+ параметрам примитива присваиваются новые
+ значения, а команда возвращает пустую
+ строку. Параметр может быть любым из параметров
+ команды text.
- - debug
- ??
+ - имяПути debug
+ ?булевское?
- - ,
- ,
- Tcl_GetBoolean.
- , B-, ,
- .
- .
- .
- ,
- on off
- ,
- .
- :
- .
-
- .
+ - Если задан параметр булевское, то он может иметь
+ значение истина или ложь в виде, приемлемом для
+ Tcl_GetBoolean. Если значение параметра
+ истина, то в B-дереве, связанном с текстовыми примитивами,
+ будет выполняться внутренняя проверка согласованности. В
+ противном случае эта проверка будет отключена. Независимо от
+ полученного значения команда возвращает пустую строку. Если
+ параметр булевское не задан, то команда возвращает
+ on или off в зависимости от
+ того, подключена или нет в момент выполнения команды система
+ отладки. Переключатель отладки один на все текстовые
+ примитивы: изменение его значения в одном примитиве приводит к
+ изменению этого значения для всех примитивов. Проверка
+ согласованности для примитивов с длинными текстами может
+ привести к существенному замедлению работы.
- - delete 1
- ?2?
+ - имяПути delete индекс1
+ ?индекс2?
- - .
- 1 2,
- ,
- 1, ,
- 2
- (.. 2 ).
- 2 ,
- 1. ,
-
- . .
+ - Удаляет последовательность символов в тексте. Если заданы
+ оба параметра индекс1 и индекс2, то
+ удаляются все символы, начиная с символа с индексом
+ индекс1, и кончая символом, непосредственно
+ предшествующим символу с индексом индекс2
+ (т.е. символ с индексом индекс2 не удаляется). Если
+ параметр индекс2 не задан, то удаляется только символ
+ с индексом индекс1. Невозможно такое удаление, при
+ котором последний символ оставшегося текста не будет символом
+ перевода строки. Команда возвращает пустую строку.
- - dlineinfo
+ - имяПути dlineinfo индекс
- - ,
- , ,
- .
- x y ;
- ;
- .
- .
- none
- ,
- , .
- ,
- ,
- . ,
- , ,
- .
+ - Возвращает список из пяти элементов, описывающий область
+ экрана, занимаемую строчкой, содержащей символ с индексом
+ индекс. Первые два элемента списка представляют собой
+ координаты x и y верхнего левого угла этой области; следующие
+ два это ее ширина и высота; пятый элемент это расстояние от
+ верхней границы области вниз до базы строчки. Все значения
+ измеряются в пикселях. Если текущий режим переноса строки
+ имеет значение none и строка видна на экране
+ лишь частично, то возвращаемые значения описывают всю область
+ строки, включая и ее невидимые части. Если строчка короче
+ полной ширины экрана, то возвращаемые значения описывают
+ только ту ее часть, которая занята символами и вставленными
+ окнами. Если строчка, содержащая символ с индексом
+ индекс, на экране не видна, то возвращаемое значение
+ является пустым списком.
- - dump ??
- 1 ?2?
+ - имяПути dump ?переключатели?
+ индекс1 ?индекс2?
-
- 1
- 2 ( ), ,
- , .
- 2 ,
- 1.
- :
+ Возвращает содержимое текстового примитива от символа с
+ индексом индекс1 до символа с индексом
+ индекс2 (не включая последний), включая сам текст,
+ а также информацию о метках, тегах и вставленных окнах. Если
+ параметр индекс2 не задан, то по умолчанию
+ описывается символ с индексом индекс1. Возвращаемая
+ информация имеет следующий формат:
- 1 1 1 2 2 2 ...
+ ключ1 значение1 индекс1 ключ 2 значение 2 индекс 2 ...
- text,
+
Ключи могут принимать значения text,
mark, tagon,
- tagoff
- window.
- , ,
- .
- , , .
-
- ( ):
+ tagoff и
+ window. Соответствующими возвращаемыми
+ значениями будут текст, имя метки, имя тега или имя
+ окна. Возвращаемыми значениями индекса будут индекс начала
+ текста, метки, тегового перехода или окна. Для управления
+ результатом можно использовать один или несколько из
+ следующих переключателей (или их аббревиатур):
- -all
- - ,
- , .
- .
+ - Возвращается информация обо всех элементах тексте,
+ метках, тегах и окнах. Это значение принято по
+ умолчанию.
- - -command
+ - -command команда
- -
-
-
- .
- , .
+ - В этом случае вместо возвращения информации об элементах
+ текстового примитива на каждом из этих элементов в
+ указанной области текста выполняется
+ команда. Аргументами команды служат
+ ключ, значение и индекс соответствующего элемента.
- -mark
- - .
+ - Включить в результат информацию о метках.
- -tag
- -
- .
- tagon
- tagoff,
- .
+ - Включить в результат информацию о теговых
+ переходах. Информация о тегах возвращается в виде
+ элементов tagon и
+ tagoff, указывающих соответственно начало
+ и конец каждой области тега.
- -text
- - .
- ,
- 2.
- . ,
- ,
- ,
- .
- .
+ - Включить в результат информацию о тексте. Значением
+ служит текст до следующего элемента или до конца области,
+ указанного параметром индекс2. Текстовый элемент
+ не захватывает новых строк. Часть текста, содержащая
+ несколько строк и не включающая меток и теговых переходов,
+ будет выводиться в виде набора отрезков текста, каждый из
+ которых кончается символом перевода строки. Эти символы
+ являются частью результата.
- -window
- -
- . Tk ,
- , . (
- .)
- ,
- ,
- .
+ - Включить в результат информацию о вставленных
+ окнах. Значением является имя Tk пути вставленного окна,
+ за исключением случая, когда окно еще не создано. (Окно
+ должно содержать создающий скрипт.) В последнем случае
+ результатом служит пустая строка, а дополнительную
+ информацию об окне можно получить, задав значение его
+ индекса.
- - get 1
- ?2?
+ - имяПути get индекс1
+ ?индекс2?
- - .
- ,
- 1 ,
-
- 2 ( 2
- ). 2
- ,
- 1.
- (, 1
- 2 , 1),
- .
- ,
- .
+ - Возвращает последовательность символов в тексте. В
+ последовательность включаются все символы текста, начиная с
+ символа с индексом индекс1 и кончая символом,
+ непосредственно предшествующим символу с индексом
+ индекс2 (символ с индексом индекс2 в эту
+ последовательность не входит). Если параметр индекс2
+ опущен, то команда возвращает единственный символ с индексом
+ индекс1. Если в указанном интервале нет символов
+ (например, если индекс1 указывает за конец файла или
+ значение индекс2 меньше, чем индекс1), то
+ команда возвращает пустую строку. Если в указанном интервале
+ есть вставленные окна, то информация о них в возвращаемую
+ строку не входит.
- - image ??
- ? ...?
+ - имяПути image ?параметр?
+ ?арг арг ...?
-
- .
- .
- :
+ Команда предназначена для управления вставленными
+ изображениями. Поведение команды определяется значением
+ аргумента параметр. В настоящее время поддерживаются
+ следующие формы команды:
- - image cget
-
+ - имяПути image cget индекс
+ параметр
- -
- .
- ,
- ;
- , (. "
- ").
+ - Возвращает значение параметра конфигурации вставленного
+ изображения. Аргумент индекс указывает
+ вставленное изображение, а параметр задает имя
+ требуемого параметра конфигурации; это имя должно быть
+ элементом списка, приведенного (см. "Вставленные
+ изображения").
- - image configure
- ? ...?
+ - имяПути image configure
+ индекс ?параметр значение ...?
- -
- .
- , ,
-
- ( Tk_ConfigureInfo).
- , ,
- , .
- -,
- ;
- .
- (. "
- ").
+ - Запрашивает значение параметров вставленного изображения
+ или изменяет эти значения. Если ни один аргумент параметр
+ не задан, то возвращает список, содержащий значения всех
+ наличных параметров вставленного изображения с индексом
+ индекс (формат списка описан в Tk_ConfigureInfo). Если
+ параметр задан, а его значение нет, то команда возвращает
+ часть списка, относящуюся к данному параметру. Если задано
+ несколько пар параметр-значение, то команда придает
+ указанным параметрам новые значения; в этом случае команда
+ возвращает пустую строку. Описание поддерживаемых
+ параметров (см. "Вставленные
+ изображения").
- - image create
- ? ...?
+ - имяПути image create
+ индекс ?параметр значение ...?
- - ,
- ,
- .
-
- -.
- ,
- .
-
- (. "
- ").
+ - Команда создает новую ссылку на изображение, которое
+ появляется в тексте в положении, указанном аргументом
+ индекс. Для установки параметров конфигурации
+ изображения можно указать произвольное число пар
+ параметр-значение. Команда возвращает уникальный
+ идентификатор, который можно использовать в качестве
+ индекса при ссылке на данное изображение. Описания
+ поддерживаемых параметров и возвращаемого идентификатора
+ (см. "Вставленные
+ изображения").
- - image names
+ - имяПути image names
- - ,
- ,
- .
+ - Возвращает список, элементами которого служат имена всех
+ вхождений изображений, вставленных в данное
+ окно.
- - index
+ - имяПути index индекс
- - ;
- ., ,
- .
- , (. "").
+ - Возвращает положение символа с индексом индекс; положение
+ выдается в виде строч.симв, где строч это номер строчки, а
+ симв номер символа в этой строчке. Аргумент индекс может
+ иметь любую из форм, описанных выше (см. "Индексы").
- - insert
- ?
- ...?
+ - имяПути insert индекс
+ символы ?списТегов символы
+ списТегов...?
- -
- .
- (.. ,
- ),
-
- . ,
- ,
- ,
- ;
- ,
- .
- ;
- ,
- .
-
- -,
-
- , .
- .
+ - Вставляет значения всех аргументов символы непосредственно
+ перед символом с индексом индекс. Если
+ индекс ссылается на конец текста (т.е. на символ,
+ следующий за последним символом перевода строки), то новый
+ текст вставляется непосредственно перед последним символом
+ перевода строки. Если у команды один аргумент символы, а
+ аргументы списТегов отсутствуют, то ко вновь
+ введенному тексту будут приписаны все теги, присутствующие у
+ обоих символов слева и справа от нового текста; если тег
+ приписан лишь к одному из соседних символов, то на вновь
+ введенный текст он не распространяется. Аргументы
+ списТегов представляют собой списки имен тегов;
+ новым символам будут приписаны только эти теги, независимо
+ от состояния тегов по обе стороны от точки ввода. Если в
+ аргументах команды присутствует несколько пар
+ символы -списТегов, то результат ее выполнения
+ совпадает с результатом выполнения нескольких таких же
+ команд примитива, по одной на каждую пару. Последний
+ аргумент списТегов может быть опущен.
- - mark
- ? ...?
+ - имяПути mark параметр
+ ?арг арг ...?
-
- .
- .
- :
+ Эта команда предназначена для работы с
+ метками. Поведение команды определяется значением
+ аргумента параметр. В настоящее время
+ поддерживаются следующие формы команды:
- - mark gravity
- ??
+ - имяПути mark gravity
+ имяМетки ?направление?
- - ,
- left
- right, ,
- .
- ,
- left
- right,
- .
+ - Если аргумент направление не задан, то
+ команда возвращает значение left или
+ right, указывающее, притягивается ли
+ метка к символу слева или справа от нее. Если
+ направление задано, то оно должно иметь
+ значение left или
+ right, и притяжению метки с именем
+ имяМетки присваивается указанное значение.
- - mark names
+ - имяПути mark names
- - ,
- .
+ - Возвращает список, элементами которого являются имена
+ всех уже установленных меток.
- - mark next
-
+ - имяПути mark next
+ индекс
- - ,
- (
- ).
- ,
- .
- ,
- .
-
- ,
- . ,
- mark next
-
- ,
- dump.
- ,
- end,
- mark next
- end.
- ,
- .
+ - Возвращает имя первой метки, идущей за символом с
+ индексом индекс (или притягивающейся к этому
+ символу). Если аргумент индекс задан в числовом
+ виде, то поиск метки начинается с указанного
+ символа. Если значением аргумента индекс
+ является имя метки, то поиск очередной метки начинается
+ непосредственно после заданной метки. При этом
+ возвращаемым значением может оказаться имя метки с тем
+ же самым положением, если в этом положении находится
+ несколько меток. Смысл этого действия состоит в том,
+ что команда mark next позволяет
+ последовательно перебрать все метки в текстовом
+ примитиве в том же порядке, в котором информация о
+ метках выводится командой dump. Если
+ метка установлена в положении, указанном специальным
+ индексом end, то для операции
+ mark next эта метка находится
+ после индекса end. Если после
+ символа с индексом индекс меток нет, то команда
+ возвращает пустую строку.
- - mark previous
-
+ - имяПути mark previous
+ индекс
- - ,
- (
- ).
- , ,
- .
- ,
-
- .
- ,
- .
- , mark
- previous
- ,
- ,
- dump.
- ,
- .
+ - Возвращает имя первой метки, идущей перед символом с
+ индексом индекс (или притягивающейся к этому
+ символу). Если аргумент индекс задан в числовом
+ виде, то поиск метки начинается с символа,
+ непосредственно предшествующего указанному. Если
+ значением аргумента индекс является имя метки,
+ то поиск очередной метки начинается непосредственно
+ перед заданной меткой. При этом возвращаемым значением
+ может оказаться имя метки с тем же самым положением,
+ если в этом положении находится несколько меток. Смысл
+ этого действия состоит в том, что команда mark
+ previous позволяет последовательно перебрать
+ все метки в текстовом примитиве в порядке, обратном
+ тому, в котором информация о метках выводится командой
+ dump. Если перед символом с индексом
+ индекс меток нет, то команда возвращает пустую
+ строку.
- - mark set
-
+ - имяПути mark set
+ имяМетки индекс
- -
- .
- ,
- ;
- , .
- .
+ - Устанавливает метку с именем имяМетки
+ непосредственно перед символом с индексом индекс. Если
+ метка с именем имяМетки уже существует, то она
+ перемещается из своего старого положения в новое; если
+ такой метки нет, то создается новая метка. Команда
+ возвращает пустую строку.
- - mark unset
- ? ...?
+ - имяПути mark unset
+ имяМетки ?имяМетки имяМетки...?
- - .
- ;
- " mark names"
- .
- .
+ - Удаляет все метки с именами имяМетки.
+ Удаленные метки нельзя использовать в качестве индексов;
+ команда "имяПути mark names"
+ так же не возвращает их в списке меток. Команда
+ возвращает пустую строку.
- - scan
-
+ - имяПути scan параметр
+ арг
- .
-
- :
+ Команда используется для сканирования текстов. Она
+ может иметь один из двух видов в зависимости от значения
+ параметра:
- - scan mark x
+
- имяПути scan mark x
y
- - x y
-
- scan dragto.
- ""
- . .
+ - Записывает координаты x и y и текущий вид текстового
+ окна для последующего использования командами
+ scan dragto. Обычно эта команда связана
+ с нажатием клавиши "Мыши" в
+ примитиве. Возвращает пустую строку.
- - scan dragto
+
- имяПути scan dragto
x y
- - x y
- x y
- scan mark.
- ,
- 10 .
-
- ""
-
- . .
+ - Команда вычисляет разность значений аргументов x и y и
+ значений аргументов x и y последней выполненной на
+ примитиве команды scan mark. Затем
+ команда переносит сохраненный вид окна на расстояние, в
+ 10 раз пресыщающее вычисленную разность. Обычно эта
+ команда связывается с событиями движения курсора
+ "Мыши" в примитиве и предназначена для
+ перетаскивания текста по окну с высокой
+ скоростью. Возвращает пустую строку.
- - search
- ??
- ?
+ - имяПути search
+ ?переключатели? образец индекс
+ индексСтоп?
-
- ,
- . ,
-
- ;
- .
-
- ( ):
+ Ищет в примитиве с именем имяПути текст
+ подходящий под образец, начиная с символа с индексом
+ индекс. Если подходящая последовательность символов найдена,
+ то команда возвращает в качестве результата индекс первого
+ символа в этой последовательности; в противном случае
+ возвращает пустую строку. Для управления поиском можно
+ задать один или несколько из описываемых ниже переключателей
+ (или их аббревиатур):
- -forwards
- - "",
-
- , ,
- .
- .
+ - Поиск осуществляется в направлении "вперед",
+ подходящая последовательность символов ищется в
+ положении, указанном аргументом индекс, и
+ дальше по тексту. Это значение принято по
+ умолчанию.
- -backwards
- - "",
-
- , ,
- .
+ - Поиск осуществляется в направлении "назад",
+ подходящая последовательность символов ищется перед
+ положением, указанным аргументом индекс, и
+ ближе всего к нему.
- -exact
- - :
-
- .
- .
+ - Требует точного соответствия образцу: символы в
+ подходящей последовательности должны в точности
+ совпадать с символами образца. Это значение принято по
+ умолчанию.
- -regexp
- -
-
- , (
- . Указывает на необходимость считать образец регулярным
+ выражением и устанавливать соответствие согласно
+ правилам, принятым для регулярных выражений (подробности
+ см. в описании команды regexp).
- -nocase
- -
- .
+ - Игнорировать различие регистров в образце и
+ тексте.
- - -count
+ - -count имяПерем
- -
- ; ,
- .
+ - Аргумент имяПерем представляет собой имя
+ переменной; если подходящая последовательность найдена,
+ то в эту переменную заносится число символов в ней.
- --
- -
- ;
- ,
- "-"
+ - Единственная задача этого переключателя завершение
+ списка переключателей; следующий за ним аргумент будет
+ интерпретирован как образец, даже если он и
+ начинается с "-"
-
- .
-
- .
- .$.
- .
- . ,
- :
- ,
- ,
- ,
- .
- ,
- :
- , ,
- .
- ,
- .
+ Вся подходящая последовательность должна содержаться в
+ одной строке текста. Перед сопоставлении с регулярным
+ выражением из текста удаляются все символы перевода
+ строки. Для поиска соответствия такому символу можно
+ воспользоваться служебным символом .$. в регулярных
+ выражениях. Для точных соответствий переводы строк
+ сохраняются. Если задан аргумент индексСтоп, то
+ поиск прекращается по достижении символа с этим индексом:
+ для поиска вперед не будут рассматриваться соответствия,
+ начинающиеся на символе с этим индексом или позднее, для
+ поиска назад не рассматриваются соответствия, начинающиеся
+ раньше указанного индекса. Если аргумент
+ индексСтоп опущен, то поиск осуществляется по
+ всему тексту: по достижении одного из краев текста поиск
+ продолжается, начиная с другого края, до тех пор пока не
+ будет снова достигнуто исходное положение. Если аргумент
+ индексСтоп задан, то перескакивания на
+ противоположный край текста не происходит.
- - see
+ - имяПути see индекс
- - ,
- .
- ,
- ,
- . ,
- .
+
- Сдвигает содержимое окна таким образом, чтобы символ с
+ индексом индекс был виден полностью. Если этот
+ символ расположен недалеко от видимой части текста, то сдвиг
+ осуществляется настолько, чтобы он был виден у края
+ окна. Если же указанный символ располагается далеко, то в
+ результате сдвига он оказывается в центре окна.
- - tag
- ? ...?
+ - имяПути tag параметр
+ ?арг арг ...?
- .
- .
- :
+ Эта команда используется для работы с тегами. Ее поведение
+ определяется значением аргумента параметр. В
+ настоящее время поддерживаются следующие формы команды:
- - tag add
- 1 ?2 1 2 ...?
+ - имяПути tag add имяТега
+ индекс1 ?индекс2 индекс1 индекс2 ...?
- - ,
- 1
- 2 (
- ).
-
- 1-2.
- 2 ,
- 1.
- (,
- 1
- 2
- 1),
- .
+ - Приписывает тег имяТега ко всем символам,
+ начиная с индекса1 и кончая непосредственно
+ перед символа с индексом индекс2 (к самому
+ этому символу данный тег не приписывается). В одной
+ команде может присутствовать произвольное число пар
+ индекс1-индекс2. Если последний аргумент
+ индекс2 опущен, то тег приписывается к
+ единственному символу с индексом индекс1. Если
+ в указанном промежутке нет символов (например,
+ индекс1 указывает за конец файла или
+ индекс2 оказывается не больше
+ индекса1), то команда не совершает никаких
+ действий.
- - tag bind
- ?? ?
+ - имяПути tag bind имяТега
+ ?послед? ?скрипт
-
- .
- , ,
- ,
- ,
- .
- bind;
- , ,
- .
- ,
- , . . 1.3.
- , ,
-
- (
-
- "+",
- , ).
- .
- , ,
- (
- ).
- , ,
- ,
-
- .
+ Эта команда приписывает скрипт к тегу с именем
+ имяТега. При наступлении последовательности
+ событий, заданной аргументом послед, на
+ символе, к которому приписан тег с именем
+ имяТега , выполняется указанный
+ скрипт. Эта команда примитива похожа на
+ команду bind; единственное ее
+ отличие состоит в том, что она действует на символах,
+ а не на всем примитиве. Полное описание синтаксиса
+ последовательности и подстановок, производимых в
+ скрипте перед его выполнением, см. в п. 1.3. Если
+ указаны все аргументы, то создается новая привязка,
+ заменяющая все предыдущие привязки данной
+ последовательности к тегу имяТега (если
+ первым символом аргумента скрипт является
+ "+", то скрипт присоединяется к текущей
+ привязке, а не замещает ее). В этом случае команда
+ возвращает пустую строку. Если аргумент
+ скрипт опущен, то команда возвращает скрипт,
+ привязанный к тегу имяТега (при отсутствии
+ такого скрипта возникает ошибка). Если опущены и
+ аргумент скрипт, и аргумент послед,
+ то команда возвращает список всех последовательностей,
+ привязки к которым определены для тега с именем
+ имяТега.
- ,
- "" (,
+
Привязки можно определять только для событий,
+ связанных с "Мышью" и клавиатурой (например,
Enter, Leave,
ButtonPress, Motion
- KeyPress),
- .
- (. "").
- Enter
- ,
- Leave ,
- .
- Enter Leave
- ,
-
- . ,
- Enter
- Leave . ,
- "" ,
- .
- ,
-
- , ""
- .
+ и KeyPress), или для виртуальных
+ событий. Привязки событий для текстового примитива
+ используют текущую метку (см. "Метки"). Событие
+ Enter наступает для тега при первом
+ появлении этого тега на текущем символе, а событие
+ Leave наступает, когда текущий символ
+ оказывается несвязанным с данным тегом. События
+ Enter и Leave могут
+ наступить либо в результате перемещения текущей метки,
+ либо как следствие изменения символа в позиции текущей
+ метки. Обратите внимание на то, что эти события
+ отличаются от событий Enter и
+ Leave для окон. События, связанные с
+ "Мышью" и клавиатурой, направлены на текущий
+ символ. Если в привязке используется виртуальное
+ событие, то оно может наступить только в случае если
+ для его определения был использован выход с
+ подчеркиванием, связанный с "Мышью" или
+ клавиатурой.
- ,
-
- .
-
-
- .
- ,
- ( . 1.3). continue
- break ,
- , К текущему символу может быть приписано много тегов,
+ причем каждый из этих тегов может иметь привязку для
+ одной и той же последовательности событий. В таком
+ случае исполняется по одной привязке к каждому из
+ тегов в порядке от наименьшего приоритета к
+ наибольшему. Если к одному тегу подходят несколько
+ образцов привязок, то выбирается самая конкретная из
+ них (подробности приведены в п. 1.3). Команды continue
+ и break в скрипте привязки обрабатываются так же, как
+ и в случае привязок, созданных командой bind.
- (
- bind),
- .
- ,
- .
+Если есть привязки и к примитиву в целом (созданные с
+ помощью команды bind), то они
+ служат дополнением привязок к тегам. Сначала
+ выполняются привязки к тегам, а затем привязки ко
+ всему примитиву.
- - tag cget
-
+ - имяПути tag cget имяТега
+ параметр
- -
- ,
- . ,
- tag
+
- Команда возвращает текущее значение параметра с именем
+ параметр, ассоциированного с тегом
+ имяТега. Параметр может иметь любое значение,
+ воспринимаемое командой примитива tag
configure.
-
- tag configure
- ?? ??
- ? ...?
+ - имяПути tag configure
+ имяТега ?параметр? ?значение?
+ ?параметр значение ...?
- -
- configure; ,
- ,
- ,
- . ,
-
- (
- Tk_ConfigureInfo).
- , ,
- ,
- .
- -,
-
- ;
- . (. "").
+ - Эта команда похожа на команду примитива
+ configure; ее отличие состоит в том,
+ что она модифицирует параметры, связанные с тегом
+ имяТега, а не со всем текстовым
+ примитивом. Если аргумент параметр не задан, то
+ команда возвращает список значений всех параметров тега
+ имяТега (формат списка описан в
+ Tk_ConfigureInfo). Если
+ параметр задан, а его значение нет, то
+ возвращается часть списка, относящаяся к указанному
+ параметру. Если заданы одна или несколько пар
+ параметр-значение, то команда присваивает
+ указанным параметрам тега имяТега новые
+ значения; в этом случае она возвращает пустую
+ строку. Подробно параметры тегов описаны выше (см. "Теги").
- - tag delete
- ? ...?
+ - имяПути tag delete
+ имяТега ?имяТега ...?
- -
- .
-
- ,
- . .
+ - Стирает всю информацию о тегах для каждого из
+ аргументов имяТега. Команда снимает теги с
+ символов и удаляет всю остальную информацию о них
+ например, привязки и характеристики вывода на
+ экран. Возвращает пустую строку.
- - tag lower
-
+ - имяПути tag lower
+ имяТегаНижеЭтого
- - ,
-
- .
- ,
- .
+ - Изменяет приоритет тега с именем имяТега ,
+ устанавливая его непосредственно перед тегом с именем
+ нижеЭтого. Если аргумент нижеЭтого
+ опущен, то тег имяТега получается самый нижний
+ приоритет среди всех тегов.
- - tag names
- ??
+ - имяПути tag names
+ ?индекс?
- - , ,
- .
- ,
- ( ,
- "
- tag"
- " tag
- delete", ,
-
- ).
- (
- ).
+ - Возвращает список имен всех тегов, активных в позиции,
+ указанной аргументом индекс. Если аргумент
+ индекс опущен, то команда возвращает список
+ всех существующих тегов в тексте (это все теги,
+ установленные командой примитива "имяПути
+ tag" и не удаленные командой
+ примитива "имяПути tag
+ delete", в том числе и те из них, которые
+ в текущий момент не относятся ни к какому
+ символу). Выводимый список отсортирован в порядке
+ приоритетов тегов (от тега с наименьшим приоритетом к
+ тегу с наибольшим).
- - tag nextrange
- 1 ?2?
+ - имяПути tag nextrange
+ имяТега индекс1 ?индекс2?
- - ,
- ,
- 1,
-
- 2. ,
- ,
- . ,
- :
- ,
- .
- ,
- . 2 ,
- .
+ - Команда ищет последовательность символов, помеченных
+ тегом имяТега, первый символ которой стоит
+ после символа с индексом индекс1, а последний
+ символ предшествует символу с индексом
+ индекс2. В случае, если таких
+ последовательностей несколько, выбирается первая из
+ них. Команда возвращает список из двух элементов, первый
+ из которых индекс первого символа последовательности: а
+ второй индекс символа, непосредственно следующего за
+ последним символом последовательности. Если подходящей
+ последовательности нет, то команда возвращает пустую
+ строку. Если аргумент индекс2 не задан, то его
+ значением по умолчанию считается конец текста.
- - tag prevrange
- 1 ?2?
+ - имяПути tag prevrange
+ имяТега индекс1 ?индекс2?
- - ,
- ,
- 1,
- , 2 (
- ). ,
- ,
- 1.
- ,
- :
- ,
- .
- ,
- . 2 ,
- .
+ - Команда ищет последовательность символов, помеченных
+ тегом имяТега, первый символ которой стоит
+ перед символом с индексом индекс1, но не
+ раньше, чем символ с индексом индекс2 (символ с
+ этим индексом допускается). В случае, если таких
+ последовательностей несколько, выбирается ближайшая к
+ символу с индексом индекс1. Команда возвращает
+ список из двух элементов, первый из которых индекс
+ первого символа последовательности: а второй индекс
+ символа, непосредственно следующего за последним
+ символом последовательности. Если подходящей
+ последовательности нет, то команда возвращает пустую
+ строку. Если аргумент индекс2 не задан, то его
+ значением по умолчанию считается начало текста.
- - tag raise
- ??
+ - имяПути tag raise
+ имяТега ?ВышеЭтого?
- - ,
-
- .
- ,
- .
+ - Изменяет приоритет тега с именем имяТега ,
+ устанавливая его непосредственно после тега с именем
+ вышеЭтого. Если аргумент вышеЭтого
+ опущен, то тег имяТега получается самый большой
+ приоритет среди всех тегов.
- - tag ranges
-
+ - имяПути tag ranges
+ имяТега
- - ,
- .
- ,
- ..
- ,
- ,
- .
- ,
- .
+ - Возвращает список всех участков текста, помеченных
+ тегом с именем имяТега. Первые два элемента
+ списка описывают первый участок, следующие два второй и
+ т.д. Первый элемент каждой пары представляет собой
+ индекс первого символа на соответствующем участке,
+ второй элемент пары индекс символа, непосредственно
+ следующего за последним символом участка. Если тегом
+ имяТега не помечен ни один символ, то команда
+ возвращает пустую строку.
- - tag remove
- 1 ?2 1 2
+
- имяПути tag remove
+ имяТега индекс1 ?индекс2 индекс1 индекс2
...?
- -
- ,
- 1 2 (
- 2 ).
- (,
- 1
- 2
- 1),
- . .
+ - Снимает пометку тегом имяТега со всех
+ символов в промежутках, указанных индексами
+ индекс1 и индекс2 (на символ с
+ индексом индекс2 команда не действует). Если в
+ указанном промежутке нет символов (например, если
+ индекс1 указывает за конец текста или
+ индекс2 оказывается не меньше
+ индекса1), то команда не совершает никаких
+ действий. Возвращает пустую строку.
- - window
- ? ...?
+ - имяПути window параметр
+ ?арг арг ...?
-
- .
- .
- :
+ Команда используется для работы со вставленными
+ окнами. Поведение команды зависит от значения аргумента
+ параметр. В настоящее время поддерживаются
+ следующие формы команды:
- - window cget
-
+ - имяПути window cget
+ индекс параметр
- -
- .
- ,
- ;
- , "
- ".
+ - Возвращает значение параметра конфигурации
+ вставленного окна. Окно задается аргументом
+ индекс, а аргумент параметр указывает
+ имя конкретного параметра конфигурации; это имя должно
+ быть одним из тех, которые описаны во фрагменте "Вставленные
+ окна".
- - window configure
- ? ...?
+ - имяПути window configure
+ индекс ?параметр значение ...?
- -
- .
- , ,
- (
- Tk_ConfigureInfo).
- ,
- , ,
- .
- -,
-
- ,
- .
- "
- ".
+ - Запрашивает или модифицирует значения параметров
+ конфигурации вставленного окна. Если параметр
+ не указан, то возвращает список, содержащий значения
+ всех допустимых параметров вставленного окна (формат
+ списка описан в Tk_ConfigureInfo). Если
+ параметр задан, а его новое значение
+ нет, то команда возвращает часть полного списка,
+ относящуюся к указанному параметру. Если заданы одна или
+ несколько пар параметр-значение, то указанным
+ параметрам присваиваются новые
+ значения, а команда возвращает пустую
+ строку. Список возможных параметров приведен в фрагменте
+ "Вставленные
+ окна".
- - window create
- ? ...?
+ - имяПути window create
+ индекс ?параметр значение ...?
- - ,
-
- .
- -.
- . "
- ". .
+ - Команда создает ссылку на новое окно, положение
+ которого в тексте определяется аргументом
+ индекс. Конфигурация окна задается произвольным
+ числом пар параметр-значение. Список возможных
+ параметров см. в "ВСТАВЛЕННЫЕ
+ ОКНА". Команда возвращает пустую строку.
- - window names
+ - имяПути window names
- -
- .
+ - Возвращает список имен всех вставленных в настоящий
+ момент в окно окон.
- - xview
+ - имяПути xview параметр арг
-
- .
- :
+ Команда используется для запроса горизонтального положения
+ текста в окне примитива и изменения этого положения. Она
+ может принимать одну из следующих форм:
- - xview
+ - имяПути xview
- - ,
-
- "0" "1".
- ,
- . , ,
- ".2", ".6",
- 20% , 40%
- 40% .
- ,
- .
- ,
- "0" "1",
- ,
- .
-
+
- Возвращает список из двух элементов, каждый из которых
+ представляет собой вещественное число в промежутке между
+ "0" и "1". В совокупности эти два
+ числа описывают, какая часть документа по горизонтали
+ видна в окне. Если, например, значение первого числа
+ равно ".2", а второго ".6", то слева
+ от экрана не видно 20% текста, 40% видимы на экране и
+ еще 40% не видимы справа от экрана. Числа относятся
+ только к строчкам, которые действительно попадают на
+ экран. Если все строчки в окне короткие и полностью
+ умещаются на экране, то команда возвращает значения
+ "0" и "1", даже если в тексте
+ фактически присутствуют строчки, длина которых намного
+ превышает ширину окна. Те же самые значения передаются
+ полосам прокрутки через параметр
-xscrollcommand.
- - xview moveto
-
+ - имяПути xview moveto
+ число
- - ,
- ,
- ,
- .
- "0" "1".
+ - Сдвигает содержимое окна таким образом, чтобы часть
+ текста по горизонтали, описываемая аргументом
+ число, находилась слева от
+ экрана. Число должно быть вещественным числом в
+ промежутке между "0" и "1".
- - xview scroll
-
+ - имяПути xview scroll
+ число что
- -
-
- . .
- units
- pages, .
-
- units,
- ;
- pages
- (
- ). ,
- , .
+ - Команда сдвигает содержимое окна влево или вправо в
+ соответствии со значениями аргументов число и
+ что. Число должно быть целым. Аргумент что
+ может принимать значения units и
+ pages, а также их аббревиатуры. Если
+ аргумент что имеет значение
+ units, то сдвиг происходит на
+ числосимволов средней ширины; в случае значения
+ pages сдвиг выполняется на
+ число страниц (размер страницы равен размеру
+ экрана). Если число отрицательно, то сдвиг
+ происходит вправо, в противном случае влево.
- - yview
+ - имяПути yview параметр арг
-
- .
- :
+ Команда используется для запроса вертикального положения
+ текста в окне примитива и изменения этого положения. Она
+ может принимать одну из следующих форм:
- - yview
+ - имяПути yview
- - ,
-
- "0" "1".
-
- (, "0.5"
- ,
- ).
- ,
- .
-
+
- Возвращает список из двух элементов, каждый из которых
+ представляет собой вещественное число в промежутке между
+ "0" и "1". Первый элемент списка
+ указывает положение в тексте первого символа верхней
+ строчки на экране (например, значение "0.5"
+ означает, что этот символ находится в середине
+ текста). Второй элемент списка указывает положение
+ символа, следующего непосредственно за последним
+ символом нижней строчки экрана. Те же самые значения
+ передаются полосам прокрутки через параметр
-yscrollcommand.
- - yview moveto
-
+ - имяПути yview moveto
+ число
- - , ,
- ,
- .
-
- "0" "1"; "0"
- ,
- "0.33" ,
- "1/3" ..
+ - Сдвигает содержимое окна таким образом, чтобы символ,
+ положение которого задано аргументом число,
+ оказался в верхней строчке экрана. Число должно
+ быть вещественным числом в промежутке между
+ "0" и "1"; значение "0"
+ указывает на первый символ в тексте, значение
+ "0.33" на символ, отстоящий от начала текста
+ на "1/3" и т.д.
- - yview scroll
-
+ - имяПути yview scroll
+ число что
- -
-
- . .
- units
- pages, .
-
- units,
- ;
- pages
- (
- ). ,
- , .
+ - Команда сдвигает содержимое окна вверх или вниз в
+ соответствии со значениями аргументов число и
+ что. Число должно быть целым. Аргумент что
+ может принимать значения units и
+ pages, а также их аббревиатуры. Если
+ аргумент что имеет значение
+ units, то сдвиг происходит на
+ число строчек; в случае значения
+ pages сдвиг выполняется на
+ число страниц (размер страницы равен размеру
+ экрана). Если число отрицательно, то сдвиг
+ происходит вверх, в противном случае вниз.
- - yview ?-pickplace?
-
+ - имяПути yview ?-pickplace?
+ индекс
- ,
-
- .
- -pickplace ,
-
- . ,
-
- :
+ Сдвигает содержимое окна примитива таким образом,
+ чтобы сделать видимым символ с индексом
+ индекс. Если аргумент
+ -pickplace не задан, то символ с
+ указанным индексом появляется в верхней строчке
+ экрана. Если же этот аргумент задан, то примитив
+ определяет место появления символа на экране по
+ следующему правилу:
- -
- , .
+ - Если символ с индексом индекс
+ уже виден на экране, то ничего не изменяется.
- -
- ,
- .
+ - Если этот символ находится лишь незначительно выше
+ экрана, то он оказывается в верхней строчке
+ экрана.
- -
- ,
- .
+ - Если этот символ находится лишь незначительно ниже
+ экрана, то он оказывается в нижней строчке
+ экрана.
- -
- .
+ - В остальных случаях указанный символ оказывается в
+ центре экрана.
- -pickplace
- see,
- ,
- , ,
- -pickplace
- .
+ Параметр -pickplace устарел после
+ введения команды примитива see,
+ которая управляет движениями как в горизонтальном, так
+ и в вертикальном направлении, в то время, как
+ -pickplace влияет только на движение
+ по вертикали.
- - yview
+ - имяПути yview число
- - ,
- ,
- ,
- .
- . ,
- .
+
- Команда сдвигает содержимое в окне таким образом,
+ чтобы первый символ строки с номером, следующим за
+ номером число, оказался в верхней строчке
+ экрана. Аргумент число должен быть
+ целым. Команда использовалась для прокрутки, но теперь
+ она устарела.
-
+ПРИВЯЗКИ
- Tk ,
- .
- ""
- , ,
- "_",
- .
+ Tk автоматически создает привязки класса, которые определяют
+ следующее поведение текстовых примитивов по умолчанию. В
+ приводимом ниже описании "слово" это непрерывная
+ последовательность символов, состоящая из букв, цифр и символов
+ подчеркивания "_", либо из любого другого одиночного
+ символа.
- - 1 ""
- ,
- "".
+ - Щелчок клавишей 1 "Мыши" устанавливает курсор
+ ввода непосредственно перед символом, на котором расположен
+ курсор "Мыши".
- - "" 1
-
- "".
+ - Движение "Мыши" с нажатой клавишей 1 растягивает
+ выделение от курсора ввода то символа под курсором
+ "Мыши".
- - 1 "" ,
- "",
- .
- "" ,
- .
+ - Двойной щелчок по клавише 1 "Мыши" выделяет слово,
+ на котором находится курсор "Мыши", и устанавливает
+ курсор ввода на начало этого слова. Если тащить
+ "Мышь" после двойного щелчка, то выделение
+ растягивается на полные слова.
- - 1 ""
- , "",
- .
- "" ,
- .
+ - Тройной щелчок по клавише 1 "Мыши" выделяет
+ строку, на которой находится курсор "Мыши", и
+ устанавливает курсор ввода на начало этой строки. Если тащить
+ "Мышь" после тройного щелчка, то выделение
+ растягивается на полные строки.
- - , ""
- 1 Shift:
- ,
- "" 1.
- ""
- ,
- ; .
+ - Край выделения можно переместить, таща "Мышь" с
+ нажатой клавишей 1 при нажатой клавише Shift:
+ при этом движется край выделения, ближайший к курсору
+ "Мыши" в момент нажатия клавиши 1. Если перед
+ началом движения по клавише "Мыши" был сделан
+ двойной щелчок, то выделение будет растягиваться на полные
+ слова; если тройной щелчок то на полные строки.
- - 1 ""
- Control , .
+ - Щелчок по клавише 1 "Мыши" при нажатой клавише
+ Control перемещает курсор ввода, не изменяя выделения.
- -
- .
+ - При нажатии на клавиши обычных символов эти символы вводятся
+ на месте курсора ввода.
- -
- "" 2.
- 2 "", "",
-
- "". Insert
- , ,
- "".
+ - Содержимое окна примитива можно сдвинуть с помощью движения
+ "Мыши" при нажатой клавише 2. Если щелкнуть по
+ клавише 2 "Мыши", не перемещая "Мышь", то
+ выделение в тексте копируется в место курсора
+ "Мыши". Нажатие на клавишу Insert также приводит к
+ копированию выделения, но в место курсора ввода, а не курсора
+ "Мыши".
- - ""
- 1
- (
- ""
- ).
+ - При движении "Мыши" вне экрана с нажатой клавишей
+ 1 содержимое примитива автоматически прокручивается и на
+ экране появляется дополнительная порция текста (если вне
+ экрана в направлении движения "Мыши" есть еще
+ текст).
- - Left
- Right
- ;
- .
- Left Right
- Shift
- .
+ - Нажатие на клавиши Left или
+ Right приводит к сдвигу курсора ввода на один
+ символ влево или вправо соответственно; при этом всякое
+ выделение в тексте отменяется. Нажатие на клавиши
+ Left или Right при нажатой
+ клавише Shift приводит к сдвигу курсора ввода
+ и расширению выделения на один символ.
- - Control-Left
- Control-Right
- ,
- Control-Shift-Left
- Control-Shift-Right
- .
+ - Нажатие на клавиши Control-Left или
+ Control-Right сдвигает курсор ввода на целое
+ слово, а нажатие на клавиши
+ Control-Shift-Left и
+ Control-Shift-Right приводит к сдвигу курсора
+ ввода и расширению выделения на одно слово.
- - Control-b
- Control-f ,
- Left
- Right .
- Meta-b Meta-f
- , Control-Left
- Control-Right .
+ - Нажатие на клавиши Control-b и
+ Control-f приводит к такому же результату,
+ что и нажатие на Left и
+ Right соответственно. Комбинации клавиш
+ Meta-b и Meta-f дают тот же
+ эффект, что и Control-Left и
+ Control-Right соответственно.
- - Up
- Down
- ,
- . Up
- Down
- Shift
- .
- Control-Up Control-Down
- ( ,
- ),
- Control-Shift-Up
- Control-Shift-Down
-
- . Control-p
- Control-n ,
- Up Down
- .
+ - Нажатие на клавиши Up и
+ Down переводит курсор ввода на одну строчку
+ вверх или вниз, отменяя при этом любое выделение в
+ тексте. Нажатие на клавиши Up и
+ Down при нажатой клавише
+ Shift приводит к сдвигу курсора ввода и
+ растягиванию выделения до нового положения курсора. Комбинации
+ Control-Up и Control-Down
+ сдвигают курсор ввода на один абзац (группу строчек,
+ отделенную от соседней группы пустой строчкой), а комбинации
+ Control-Shift-Up и
+ Control-Shift-Down приводят к тому же к
+ растягиванию выделения до нового положения курсора
+ ввода. Комбинации Control-p и
+ Control-n дают тот же результат, что и
+ Up и Down
+ соответственно.
- - Next Prior
- ;
- .
- Next Prior
- Shift
-
- . Control-v
- ,
- .
+ - Клавиши Next и Prior
+ сдвигают курсор ввода вперед или назад на одну страницу; при
+ этом выделения в тексте отменяются. Нажатие на клавиши
+ Next и Prior при нажатой
+ клавише Shift приводит к сдвигу курсора ввода
+ и растягиванию выделения до нового положения
+ курсора. Control-v сдвигает видимую часть
+ текста на одну страницу вперед, причем курсор ввода не меняет
+ своего положения и выделение также остается неизменным.
- - Control-Next
- Control-Prior
- ,
- ,
- .
+ - Комбинации Control-Next и
+ Control-Prior сдвигают видимую часть текста
+ на одну страницу вправо или влево, причем курсор ввода не
+ меняет своего положения, и выделение также остается
+ неизменным.
- - Home
- Control-a
- ,
- . Shift-Home
-
- . End
- Control-e
- ,
- . Shift-End
-
- .
+ - Нажатие на клавиши Home и
+ Control-a помещает курсор ввода в начало
+ текущей строчки, причем все выделения в примитиве
+ отменяются. Shift-Home помещает курсор ввода
+ в начало текущей строчки и растягивает выделение до нового
+ положения курсора. Нажатие на клавиши End и
+ Control-e помещает курсор ввода в конец
+ текущей строчки, причем все выделения в примитиве
+ отменяются. Shift-End помещает курсор ввода в
+ конец текущей строчки и растягивает выделение до нового
+ положения курсора.
- - Control-Home
- Meta-<
- ,
- . Control-Shift-Home
-
- .
+ - Комбинации Control-Home и
+ Meta-< устанавливают курсор ввода в начало
+ текста, причем все выделения в примитиве
+ отменяются. Control-Shift-Home устанавливает
+ курсор ввода в начало текста и растягивает выделение до нового
+ положения курсора.
- - Control-End
- Meta->
- ,
- . Control-Shift-End
-
- .
+ - Комбинации Control-End и
+ Meta-> устанавливают курсор ввода в конец
+ текста, причем все выделения в примитиве
+ отменяются. Control-Shift-End устанавливает
+ курсор ввода в конец текста и растягивает выделение до нового
+ положения курсора.
- - Select
- Control-Space
- .
- .
- Shift-Select
- Control-Shift-Space
- ;
- ,
- .
+ - Клавиша Select и комбинация
+ Control-Space устанавливают опорную точку
+ выделения в текущее положение курсора ввода. Текущее выделение
+ при этом не изменяется. Комбинации
+ Shift-Select и
+ Control-Shift-Space растягивают выделение до
+ текущего положения курсора ввода; если в тексте не было
+ выделения, то выделяются символы между опорной точкой
+ выделения и курсором ввода.
- - Control-/
- .
+ - Нажатие на клавиши Control-/ приводит к
+ выделению всего содержимого примитива.
-- Control-\\ .
+- Control-\\ отменяет выделение в примитиве.
- - F16 ( Sun
- Copy)
- Meta-w (
- ) .
+ - Клавиша F16 (на многих станциях Sun
+ обозначенная Copy) или
+ Meta-w копируют выделение в примитиве (если
+ оно есть) в буфер обмена.
- - F20 ( Sun
- Cut)
- Control-w
- . ,
- .
+ - Клавиша F20 (на многих станциях Sun
+ обозначенная Cut) или
+ Control-w копируют выделение в примитиве в
+ буфер обмена и удаляют выделение. Если выделения нет, то
+ нажатие на эти клавиши не приводит ни к каким действиям.
- - F18 ( Sun
- Paste)
- Control-y
- .
+ - Клавиша F18 (на многих станциях Sun
+ обозначенная Paste) или
+ Control-y вставляет содержимое буфера обмена
+ в положении курсора ввода.
- - Delete
- ( ).
- ,
- .
+ - Нажатие на клавишу Delete приводит к
+ удалению выделения (если оно есть в примитиве). Если выделения
+ нет, то нажатие на эту клавишу приводит к удалению символа
+ справа от курсора ввода.
- - Backspace Control-h
- ( ).
- ,
- .
+ - Backspace и Control-h
+ удаляют выделение (если оно есть в примитиве). Если выделения
+ нет, то нажатие на эти клавиши приводит к удалению символа
+ слева от курсора ввода.
- - Control-d
- .
+ - Control-d удаляет символ справа от курсора
+ ввода.
- - Meta-d .
+ - Meta-d удаляет слово справа от курсора ввода.
- - Control-k
-
- . ,
- .
+ - Нажатие на клавиши Control-k приводит к
+ удалению символов справа от курсора ввода до конца
+ строки. Если курсор ввода находится в конце строки, то
+ удаляется символ перевода строки.
- - Control-o ,
- ;
- .
+ - Control-o открывает новую строку, вставляя
+ символ перевода строки перед курсором ввода; положение курсора
+ ввода при этом не изменяется.
- - Meta-backspace
- Meta-Delete
- .
+ - Meta-backspace и
+ Meta-Delete удаляют слово слева от курсора
+ ввода.
- - Control-x
- .
+ - Control-x удаляет выделение в текстовом
+ примитиве.
- - Control-t
- .
+ - Control-t меняет местами два символа справа
+ от курсора ввода.
- -
- -state,
- ,
- .
+ - Если примитив сделан недоступным с помощью параметра
+ -state, то текст можно двигать по экрану и
+ выделять, однако курсор ввода не будет отображаться в
+ примитиве и никакие модификации текста невозможны.
- -
- ,
- .
+ - Определяя новые привязки к отдельным примитивам или
+ переопределяя привязки класса, поведение текстовых примитивов
+ можно изменить.
-
+ ВОПРОСЫ ПРОИЗВОДИТЕЛЬНОСТИ
-
- . 2-3
- , 1
-
- .
- B-,
- .
- .
- ,
- .
+ Текстовые примитивы должны обрабатываться эффективно при самых
+ разнообразных условиях. В них используется 2-3 байта основной
+ памяти на каждый символ текста, поэтому текст длиной 1 Мегабайт
+ и более вполне может эффективно обрабатываться на большинстве
+ рабочих станций. Внутреннее представление текста имеет вид
+ модифицированного B-дерева, поэтому обработка даже длинных
+ текстов довольно эффективна. Реализация меток также позволяет
+ использовать много меток. В большинстве случаев удобно
+ пользоваться большим числом уникальных тегов или тегом,
+ приписанным к большому числу различных частей текста.
-
- :
- , ,
- ,
- ,
- .
- . ,
- ,
- .
+ Проблема эффективности может возникнуть при использовании
+ сотен или тысяч различных тегов со следующими характеристиками:
+ первая часть текста, приписанная к каждому тегу, начинается
+ вблизи начала текста, а последняя кончается вблизи его конца или
+ имеется единственная такая часть, включающая в себя почти весь
+ текст. Цена добавления или удаления таких тегов пропорциональна
+ числу тегов с такими свойствами. Напротив, тысячи различных
+ тегов обрабатываются эффективно, если области их действия
+ невелики и равномерно распределены по всему тексту.
-
- , .
+ Эффективность может понижаться при наличии очень длинных
+ строк текста, содержащих большое число меток и тегов.
- ,
- , ,
- .
- insertOffTime
+
При каждом мигании курсора ввода строчка экрана, на которой он
+ находится, перерисовывается целиком, что приводит к постоянному
+ потоку графической информации. Для устранения этого эффекта
+ установите атрибут insertOffTime в
"0".
@@ -2088,3 +2088,5 @@
+
+
diff --git a/install.tcl b/install.tcl
index 5859336..5d14f87 100644
--- a/install.tcl
+++ b/install.tcl
@@ -18,7 +18,6 @@ package require msgcat
package require BWidget
-
::msgcat::mclocale en
::msgcat::mcload msgs
@@ -398,3 +397,4 @@ proc SetVarLang {lang} {
+
diff --git a/lib/highlight/java.tcl b/lib/highlight/java.tcl
index b2669e8..98d24b8 100644
--- a/lib/highlight/java.tcl
+++ b/lib/highlight/java.tcl
@@ -209,7 +209,3 @@ proc HighLightJAVA {text line lineNumber node} {
}
}
-
-
-
-
diff --git a/lib/highlight/perl.tcl b/lib/highlight/perl.tcl
index 62f6083..3ddd264 100644
--- a/lib/highlight/perl.tcl
+++ b/lib/highlight/perl.tcl
@@ -151,14 +151,6 @@ proc HighLightPERL {text line lineNumber node} {
break
}
}
- ## COMENTS ##
- set workLine [$text get $lineNumber.0 $lineNumber.end]
- if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
- set p [lindex $word 1]
- $text tag add comments $lineNumber.$p $lineNumber.end
- } else {
- $text tag remove comments $lineNumber.0 $lineNumber.end
- }
# DEDERER
# hightlight [, {, }, ], ( , )
@@ -196,9 +188,19 @@ proc HighLightPERL {text line lineNumber node} {
break
}
}
+ ## COMENTS ##
+ set workLine [$text get $lineNumber.0 $lineNumber.end]
+ if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
+ set p [lindex $word 1]
+ $text tag add comments $lineNumber.$p $lineNumber.end
+ $text tag raise comments
+ } else {
+ $text tag remove comments $lineNumber.0 $lineNumber.end
+ }
}
+
diff --git a/lib/highlight/rivet.tcl b/lib/highlight/rivet.tcl
index 7032dbe..3556605 100644
--- a/lib/highlight/rivet.tcl
+++ b/lib/highlight/rivet.tcl
@@ -159,6 +159,7 @@ proc HighLightRIVET {text line lineNumber node} {
if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
set p [lindex $word 1]
$text tag add comments $lineNumber.$p $lineNumber.end
+ $text tag raise comments
} else {
$text tag remove comments $lineNumber.0 $lineNumber.end
}
@@ -233,17 +234,3 @@ proc HighLightRIVET {text line lineNumber node} {
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/highlight/tcl.tcl b/lib/highlight/tcl.tcl
index 91548fc..e81ad15 100644
--- a/lib/highlight/tcl.tcl
+++ b/lib/highlight/tcl.tcl
@@ -165,14 +165,6 @@ proc HighLightTCL {text line lineNumber node} {
}
}
- # add comment #
- set workLine [$text get $lineNumber.0 $lineNumber.end]
- if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
- set p [lindex $word 1]
- $text tag add comments $lineNumber.$p $lineNumber.end
- } else {
- $text tag remove comments $lineNumber.0 $lineNumber.end
- }
# DEDERER
# hightlight [, {, }, ]
set startPos 0
@@ -208,20 +200,14 @@ proc HighLightTCL {text line lineNumber node} {
break
}
}
+ # add comment #
+ set workLine [$text get $lineNumber.0 $lineNumber.end]
+ if {[regexp -indices "(^|\t|;| )#" $workLine word]} {
+ set p [lindex $word 1]
+ $text tag add comments $lineNumber.$p $lineNumber.end
+ $text tag raise comments
+ } else {
+ $text tag remove comments $lineNumber.0 $lineNumber.end
+ }
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-