projman/hlp/ru/tk/selection.html
2018-02-05 17:23:37 +03:00

161 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>selection</title>
</head>
<body>
<h1>selection</h1>
<p>Управление X выделением</p>
<h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
<pre>
<strong>selection</strong> <em>параметр</em> ?<em>арг арг...</em>?
</pre>
<h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
<p>Команда предоставляет интерфейс Tcl для механизма Х выделения и
реализует полный набор функций выделения, описанный в
(1). Аргумент <em>параметр</em> определяет формат последующих
аргументов и поведение команды. В настоящее время поддерживаются
следующие формы команды:</p>
<dl>
<dt><strong>selection clear</strong>
?<strong>-displayof</strong> <em>окно</em>?
?<strong>-selection</strong> <em>выделение</em>?</dt>
<dd>Если на дисплее окна имеются выделения, их следует очистить
так, чтобы ни одно из окон не владело выделением. Параметр
<em>выделение</em> задает X выделение, которое должно быть
очищено; его значением должно быть имя атома, например,
PRIMARY или CLIPBOARD; полное описание см. в (1). По умолчанию
значением параметра <em>выделение</em> является PRIMARY, а
параметра <em>окно</em> &quot;.&quot;. Команда возвращает
пустую строку.</dd>
<dt><strong>selection get</strong> ?<strong>-displayof</strong>
<em>окно</em> ?<strong>-selection</strong> <em>выделение</em>?
?<strong>-type</strong> <em>тип</em>?</dt>
<dd>Ищет выделение на дисплее окна и возвращает его значение в
качестве результата. По умолчанию значением параметра
<em>выделение</em> является <strong>PRIMARY</strong>, а
параметра <em>окно</em> &quot;.&quot;. Параметр <em>тип</em>
задает вид возвращаемого результата (в терминологии (1)
&quot;цель&quot;), его значением должно быть имя атома,
например, <strong>STRING</strong> или
<strong>FILE_NAME</strong>; полное описание см. (1). По
умолчанию он имеет значение <strong>STRING</strong>. Владелец
выделения может выбрать для его вывода любой из форматов
<strong>STRING</strong>, <strong>ATOM</strong>,
<strong>INTEGER</strong> и т.д. (этот формат отличается от
типа выделения; детально различия описаны в (1)). Если формат,
в котором выделение возвращается, не строковый, например,
<strong>INTEGER</strong> или <strong>ATOM</strong>, то команда
<strong>selection</strong> преобразует выделение в строковый
формат, представляя его в виде набора полей, разделенных
пробелами: атомы представляются своими текстовыми именами, а
все остальное преобразуется в последовательность
шестнадцатиричных цифр.</dd>
<dt><strong>selection handle</strong>
?<strong>-selection</strong> <em>выделение</em>?
?<strong>-type</strong><em>тип</em>? ?<strong>-format</strong>
<em>формат</em>? <em>окно команда</em></dt>
<dd><p>Создает программу обработки запросов на поиск выделения:
при каждой попытке поиска выделения указанного типа в окне
(например, командой <strong>selection get</strong>) будет
выполняться <em>команда</em> . По умолчанию значением
параметра <em>выделение</em> является PRIMARY, параметра
<em>тип</em> STRING, и параметра <em>формат</em> тоже
STRING. Если значением параметра <em>команда</em> является
пустая строка, то все программы обработки для указанного
<em>окна</em> , <em>типа</em> и <em>выделения</em>
удаляются.</p>
<p>Если при запросе выделения окно является его владельцем и
<em>выделение</em> имеет указанный тип, то к команде
добавляется два числа (отделенных пробелами от имени команды
и друг от друга) и она исполняется как команда Tcl. Эти два
дополнительных числа представляют собой смещение и максБайт:
смещение задает положение первого символа в выделении, а
максБайт максимальное количество байтов для
поиска. Возвращаемое командой значение должно начинаться с
указанного символа в выделении и должно быть не длиннее
максБайт. Для очень больших выделений (длина которых
превышает максБайт) поиск будет повторяться многократно с
возрастающими смещениями. Если длина строки, возвращаемой
командой, меньше максБайт, то предполагается, что
возвращенное значение включает в себя весь остаток
выделения; если длина результата совпадает с максБайт, то
команда будет выполняться повторно пока она не возвратит,
наконец, строку, более короткую, чем указано параметром
максБайт. Значение максБайт всегда довольно велико (порядка
нескольких тысяч байтов).</p>
<p>Если в результате работы команды возникает ошибка, то
запрос на поиск отвергается, как если бы никакого выделения
вообще не существовало.</p>
<p>Аргумент <em>формат</em> задает представление, используемое
для передачи выделения автору запроса (см. (1), второй
столбец в Таблице 2), его значение по умолчанию STRING. Если
значением аргумента <em>формат</em> является STRING, то
<em>выделение</em> передается в виде 8-битовых символов
ASCII (т.е. в том же виде, в каком его возвращает
команда). Если его значение ATOM, то возвращаемое значение
разбивается на поля, отделенные друг от друга пробелами;
каждое поле преобразуется в свое атомарное значение и вместо
имени атома передается 32-битовое атомарное значение. В
любом другом формате возвращаемое командой значение
разбивается на поля, отделенные друг от друга пробелами, и
каждое поле преобразуется в целое 32-битовое число;
полученный массив целых чисел передается автору запроса.</p>
<p>Аргумент <em>формат</em> необходим лишь для обеспечения
совместимости пользователям, не использующим Tk. Если для
поиска выделения используется Tk, то на выходе из запроса
результат преобразуется назад в строку, поэтому аргумент
формат не играет роли.</p>
</dd>
<dt><strong>selection own</strong> ?<strong>-displayof</strong>
<em>окно</em>? ?<strong>-selection</strong>
<em>выделение</em>?</dt>
<dt><strong>selection own</strong>
?<strong>-command</strong> <em>команда</em>?
?<strong>-selection</strong> <em>выделение</em>?
<em>окно</em></dt>
<dd><p>Первая форма команды <strong>selection own</strong>
возвращает имя пути окна в данном приложении, владеющего
<em>выделением</em> на дисплее, содержащем <em>окно</em>;
если таких окон нет, то команда возвращает пустую строку. По
умолчанию значением параметра <em>выделение</em> является
PRIMARY, а параметра <em>окно</em> &quot;.&quot;.</p>
<p>Вторая форма команды <strong>selection own</strong> делает
<em>окно</em> новым владельцем <em>выделения</em> на дисплее
окна; она возвращает пустую строку. Текущий владелец
<em>выделения</em> (если такой существует) получает
сообщение о том, что он потерял выделение. Если задан
параметр <em>команда</em>, то его значением является скрипт
Tcl, который должен исполняться при попытке какого-либо
другого окна заявить права на выделение вне данного окна. По
умолчанию значением параметра <em>выделение</em> является
PRIMARY.</p>
</dd>
</dl>
</body>
</html>