управление
"выделениями" (managing selections)
краткий обзор
один тип межпроцессорной коммуникации
поддерживается x и gtk это "выделение"
(selections). выделение (selection) идентифицирует
порцию данных, например часть текста,
выбранных пользователем каким либо
способом, например с помощью мыши. только
одно приложение в конкретный момент
времени может быть владельцем (the owner)
индивидуального выделения (particular
selection), предыдущий приложение-владелец
должен сообщить пользователю о том что
выделение было оставлено. другие
приложения могут просить содержание
выделения в различных формах, вызовом
targets. может быть любое число
выделений, но большинство приложений
x обрабатывает только одно - primary
selection.
в большинстве случаев для приложения
gtk не обязательно иметь дело с выделениями
самостоятельно. стандартные виджеты,
типа виджета ввода, уже имеют возможность
требовать выделения (например, когда
пользователь перемещается по тексту)
и отыскивать содержимое выделения,
принадлежащего другому виджету или
другому приложению (например, когда
пользователь щелкает второй кнопкой
мыши). однако, могут быть случаи, в которых
вы хотите дать другим виджетам способность
предоставлять выделение, или вы желаете
отыскать адресатов, не поддерживаемых
по умолчанию.
фундаментальное понятие обработки
выделений (selection) - atom. атом - целое
число, которое однозначно определяет
строку (на определенном дисплее).
определенные атомы предопределены
сервером x, и в некоторых случаях есть
константы в gtk.h, соответствующие этим
атомам. например константа
gdk_primary_selection соответствует строке
"primary". в других случаях, вы должны
использовать функции gdk_atom_intern() - получить
атом соответствующей строки и
gdk_atom_name() - получить название атома. и
selections и targets идентифицируются атомами
(atoms).
|