Выбор
Выбор — Функции для обработки межпроцессного взаимодействия через выбор
Функции
Типы и значения
| GtkSelectionData | |
| struct | GtkTargetEntry |
| GtkTargetList | |
| struct | GtkTargetPair |
Иерархия объектов
GBoxed ├── GtkSelectionData ╰── GtkTargetList
Включения
#include <gtk/gtk.h>
Описание
Механизм выбора предоставляет основу для различных типов взаимодействия между процессами. В частности, перетаскивание и GtkClipboard работают через выбор. Вам очень редко или никогда не придётся использовать большинство функций в этом разделе напрямую; GtkClipboard предоставляет более удобный интерфейс к тем же возможностям.
Некоторые из определённых в этом разделе типов данных используются также в API GtkClipboard и перетаскивания. Объекты GtkTargetEntry и GtkTargetList представляют собой списки типов данных, которые поддерживаются при отправке или приёме данных. Объект GtkSelectionData используется для хранения фрагмента данных вместе с типом данных и другой связанной информацией.
Функции
gtk_target_entry_new ()
GtkTargetEntry * gtk_target_entry_new (const gchar *target,guint flags,guint info);
Создаёт новую запись GtkTargetEntry.
Параметры
target | Строковый идентификатор целевого объекта | |
flags | Набор флагов, см. GtkTargetFlags | |
info | Идентификатор, который будет возвращён приложению |
Возвращает
Указатель на новую запись GtkTargetEntry. Освободить с помощью gtk_target_entry_free()
gtk_target_entry_copy ()
GtkTargetEntry *
gtk_target_entry_copy (GtkTargetEntry *data); Создаёт копию записи GtkTargetEntry и её данных.
Параметры
data | Указатель на запись GtkTargetEntry |
Возвращает
Указатель на копию data . Освободить с помощью gtk_target_entry_free()
gtk_target_entry_free ()
void
gtk_target_entry_free (GtkTargetEntry *data); Освобождает запись GtkTargetEntry, возвращённую из gtk_target_entry_new() или gtk_target_entry_copy().
Параметры
data | Указатель на запись GtkTargetEntry. |
gtk_target_list_new ()
GtkTargetList * gtk_target_list_new (const GtkTargetEntry *targets,guint ntargets);
Создаёт новый список GtkTargetList из массива записей GtkTargetEntry.
Параметры
targets | Указатель на массив записей GtkTargetEntry. | [array length=ntargets][allow-none] |
ntargets | количество записей в |
gtk_target_list_ref ()
GtkTargetList *
gtk_target_list_ref (GtkTargetList *list); Увеличивает счётчик ссылок на GtkTargetList на единицу.
Параметры
list |
Возвращает
Переданный GtkTargetList.
gtk_target_list_unref ()
void
gtk_target_list_unref (GtkTargetList *list); Уменьшает счётчик ссылок на GtkTargetList на единицу. Если результат равняется нулю, освобождает список.
Параметры
list |
gtk_target_list_add ()
void gtk_target_list_add (GtkTargetList *list,GdkAtom target,guint flags,guint info);
Добавляет целевой объект в конец списка GtkTargetList.
Параметры
list | ||
target | интернированный атом, представляющий целевой объект | |
flags | флаги для этого целевого объекта | |
info | Идентификатор, который будет возвращён приложению |
gtk_target_list_add_table ()
void gtk_target_list_add_table (GtkTargetList *list,const GtkTargetEntry *targets,guint ntargets);
Добавляет таблицу GtkTargetEntry в начало списка целевых объектов.
Параметры
list | ||
targets | таблица GtkTargetEntry. | [array length=ntargets] |
ntargets | количество целевых объектов в таблице |
gtk_target_list_add_text_targets ()
void gtk_target_list_add_text_targets (GtkTargetList *list,guint info);
Добавляет поддерживаемые текстовые целевые объекты GtkSelectionData в список. Все целевые объекты добавляются с одинаковым info .
Параметры
list | ||
info | Идентификатор, который будет возвращён приложению |
С: 2.6
gtk_target_list_add_image_targets ()
void gtk_target_list_add_image_targets (GtkTargetList *list,guint info,gboolean writable);
Добавляет поддерживаемые целевые объекты изображений GtkSelectionData в список. Все целевые объекты добавляются с одинаковым info .
Параметры
list | ||
info | Идентификатор, который будет возвращён приложению | |
writable | Указывает, нужно ли добавлять только те целевые объекты, для которых GTK+ знает, как преобразовать pixbuf в нужный формат |
С: 2.6
gtk_target_list_add_uri_targets ()
void gtk_target_list_add_uri_targets (GtkTargetList *list,guint info);
Добавляет поддерживаемые URI-цели из GtkSelectionData в список целей. Все цели добавляются с одинаковым значением info.
Параметры
list | ||
info | идентификатор, который будет возвращён приложению |
С момента: 2.6
gtk_target_list_add_rich_text_targets ()
void gtk_target_list_add_rich_text_targets (GtkTargetList *list,guint info,gboolean deserializable,GtkTextBuffer *buffer);
Добавляет цели форматирования богатого текста, зарегистрированные с помощью gtk_text_buffer_register_serialize_format() или gtk_text_buffer_register_deserialize_format(), в список целей. Все цели добавляются с одинаковым значением info.
Параметры
list | ||
info | идентификатор, который будет возвращён приложению | |
deserializable | если | |
buffer |
С момента: 2.10
gtk_target_list_remove ()
void gtk_target_list_remove (GtkTargetList *list,GdkAtom target);
Удаляет цель из списка целей.
Параметры
list | ||
target | интернированный атом, представляющий цель |
gtk_target_list_find ()
gboolean gtk_target_list_find (GtkTargetList *list,GdkAtom target,guint *info);
Ищет заданную цель в GtkTargetList.
Параметры
list | ||
target | интернированный атом, представляющий цель для поиска | |
info | указатель на место для хранения информации о приложении для цели, или | [out][allow-none] |
gtk_target_table_free ()
void gtk_target_table_free (GtkTargetEntry *targets,gint n_targets);
Эта функция освобождает таблицу целей, возвращённую функцией gtk_target_table_new_from_list().
Параметры
targets | массив GtkTargetEntry. | [array length=n_targets] |
n_targets | количество элементов в массиве |
С момента: 2.10
gtk_target_table_new_from_list ()
GtkTargetEntry * gtk_target_table_new_from_list (GtkTargetList *list,gint *n_targets);
Эта функция создаёт массив GtkTargetEntry, содержащий те же цели, что и переданный list. Возвращённая таблица динамически выделяется и должна быть освобождена с помощью gtk_target_table_free(), когда больше не нужна.
Параметры
list | ||
n_targets | место для хранения количества целей в таблице. | [out] |
Возвращаемое значение
новая таблица.
[array length=n_targets][transfer full]
С момента: 2.10
gtk_selection-owner-set ()
gboolean gtk_selection_owner_set (GtkWidget *widget,GdkAtom selection,guint32 time_);
Захватывает владение указанной селекцией для определённого виджета или, если widget равен NULL, освобождает владение селекцией.
Параметры
Возвращаемое значение
TRUE, если операция выполнена успешно
gtk_selection_owner_set_for_display ()
gboolean gtk_selection_owner_set_for_display (GdkDisplay *display,GtkWidget *widget,GdkAtom selection,guint32 time_);
Захватывает владение указанной селекцией для определённого виджета или, если widget равен NULL, освобождает владение селекцией.
Параметры
display | the GdkDisplay где устанавливается селекция | |
widget | [allow-none] | |
selection | интернированный атом, представляющий селекцию для захвата. | |
time_ | временная метка для захвата селекции |
Возвращаемое значение
TRUE, если операция выполнена успешно
С момента: 2.2
gtk_selection_add_target ()
void gtk_selection_add_target (GtkWidget *widget,GdkAtom selection,GdkAtom target,guint info);
Добавляет указанный целевой тип в список поддерживаемых целевых типов для данного виджета и выделения.
Параметры
widget | виджет GtkWidget | |
selection | выделение | |
target | целевой тип для добавления. | |
info | Целое беззнаковое число, которое будет возвращено приложению. |
gtk_selection_add_targets ()
void gtk_selection_add_targets (GtkWidget *widget,GdkAtom selection,const GtkTargetEntry *targets,guint ntargets);
Добавляет таблицу целевых типов в список поддерживаемых целевых типов для данного виджета и выделения.
Параметры
widget | виджет GtkWidget | |
selection | выделение | |
targets | таблица целевых типов для добавления. | [array length=ntargets] |
ntargets | количество элементов в |
gtk_selection_clear_targets ()
void gtk_selection_clear_targets (GtkWidget *widget,GdkAtom selection);
Удаляет все зарегистрированные целевые типы для данного выделения для виджета.
Параметры
widget | виджет GtkWidget | |
selection | атом, представляющий выделение |
gtk_selection_convert ()
gboolean gtk_selection_convert (GtkWidget *widget,GdkAtom selection,GdkAtom target,guint32 time_);
Запрашивает содержимое выделения. При получении запроса генерируется сигнал «selection-received».
Параметры
widget | виджет, который выполняет запрос | |
selection | выделение, которое необходимо получить | |
target | формат данных (например, STRING) | |
time_ | Время запроса (обычно время события, которое его вызвало). В экстренных случаях можно использовать GDK_CURRENT_TIME |
gtk_selection_data_set ()
void gtk_selection_data_set (GtkSelectionData *selection_data,GdkAtom type,gint format,const guchar *data,gint length);
Сохраняет новые данные в объект GtkSelectionData. Должен вызываться только из обработчика события выбора.
Параметры
selection_data | указатель на объект GtkSelectionData. | |
type | тип данных выделения | |
format | формат (количество бит в единице) | |
data | указатель на данные (будет скопирован). | [array length=length] |
length | длина данных |
gtk_selection_data_set_text ()
gboolean gtk_selection_data_set_text (GtkSelectionData *selection_data,const gchar *str,gint len);
Устанавливает содержимое выделения из строки в кодировке UTF-8. Строка преобразуется в форму, определённую параметром selection_data->target .
Параметры
selection_data | объект GtkSelectionData | |
str | строка в UTF-8 | |
len | длина |
gtk_selection_data_get_text ()
guchar *
gtk_selection_data_get_text (const GtkSelectionData *selection_data); Получает содержимое данных выделения в виде строки UTF-8.
Параметры
selection_data | объект GtkSelectionData |
Возвращаемое значение
если данные выделения содержали распознанный тип текста и его можно было преобразовать в UTF-8, возвращается динамически выделенная строка, содержащая преобразованный текст, в противном случае NULL. Если результат не NULL, он должен быть освобождён с помощью g_free().
[type utf8][nullable][transfer full]
gtk_selection_data_set_pixbuf ()
gboolean gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data,GdkPixbuf *pixbuf);
Устанавливает содержимое выделения из GdkPixbuf. Pixbuf преобразуется в форму, определённую параметром selection_data->target .
Параметры
selection_data | объект GtkSelectionData | |
pixbuf | объект GdkPixbuf |
С: 2.6
gtk_selection_data_get_pixbuf ()
GdkPixbuf *
gtk_selection_data_get_pixbuf (const GtkSelectionData *selection_data); Получает содержимое данных выделения в виде GdkPixbuf.
Параметры
selection_data |
Возвращаемое значение
если данные выделения содержали распознанный тип изображения и его можно было преобразовать в GdkPixbuf, возвращается новый выделенный pixbuf, в противном случае NULL. Если результат не NULL, его необходимо освободить с помощью g_object_unref().
[nullable][transfer full]
С: 2.6
gtk_selection_data_set_uris ()
gboolean gtk_selection_data_set_uris (GtkSelectionData *selection_data,gchar **uris);
Устанавливает содержимое выделения из списка URIs. Строка преобразуется в форму, определяемую selection_data->target .
Параметры
selection_data | ||
uris | массив строк, оканчивающийся | [array zero-terminated=1] |
С: 2.6
gtk_selection_data_get_uris ()
gchar **
gtk_selection_data_get_uris (const GtkSelectionData *selection_data); Получает содержимое данных выделения в виде массива URIs.
Параметры
selection_data |
Возвращаемое значение
если данные выделения содержат список URIs, новый выделенный массив строк, оканчивающийся NULL, содержащий URIs, в противном случае NULL. Если результат не NULL, его необходимо освободить с помощью g_strfreev().
[array zero-terminated=1][element-type utf8][transfer full]
С: 2.6
gtk_selection_data_get_targets ()
gboolean gtk_selection_data_get_targets (const GtkSelectionData *selection_data,GdkAtom **targets,gint *n_atoms);
Получает содержимое selection_data в виде массива целевых объектов. Это можно использовать для интерпретации результатов получения стандартного целевого объекта TARGETS, который всегда предоставляется для любого выделения.
Параметры
selection_data | объект GtkSelectionData | |
targets | место для хранения массива целевых объектов. Результат, сохранённый здесь, должен быть освобожден с помощью | [out][array length=n_atoms][transfer container] |
n_atoms | место для хранения количества элементов в |
gtk_selection_data_targets_include_image ()
gboolean gtk_selection_data_targets_include_image (const GtkSelectionData *selection_data,gboolean writable);
На основе объекта GtkSelectionData, содержащего список целевых объектов, определяет, можно ли использовать любой из целевых объектов в targets для предоставления GdkPixbuf.
Параметры
selection_data | объект GtkSelectionData | |
writable | указывает, нужно ли принимать только целевые объекты, для которых GTK+ знает, как преобразовать pixbuf в формат |
Возвращаемое значение
TRUE, если selection_data содержит список целевых объектов и в нём присутствует подходящий целевой объект для изображений, в противном случае FALSE.
С: 2.6
gtk_selection_data_targets_include_text ()
gboolean
gtk_selection_data_targets_include_text
(const GtkSelectionData *selection_data); На основе объекта GtkSelectionData, содержащего список целевых объектов, определяет, можно ли использовать любой из целевых объектов в targets для предоставления текста.
Параметры
selection_data | объект GtkSelectionData |
gtk_selection_data_targets_include_uri ()
gboolean
gtk_selection_data_targets_include_uri
(const GtkSelectionData *selection_data); На основе объекта GtkSelectionData, содержащего список целевых объектов, определяет, можно ли использовать любой из целевых объектов в targets для предоставления списка URIs.
Параметры
selection_data | объект GtkSelectionData |
Возвращаемое значение
TRUE, если selection_data содержит список целевых объектов и в нём присутствует подходящий целевой объект для списков URIs, в противном случае FALSE.
С: 2.10
gtk_selection_data_targets_include_rich_text ()
gboolean gtk_selection_data_targets_include_rich_text (const GtkSelectionData *selection_data,GtkTextBuffer *buffer);
Учитывая объект GtkSelectionData, содержащий список целевых форматов, определяет, можно ли использовать какой-либо из целевых форматов в targets для передачи форматированного текста.
Параметры
selection_data | объект GtkSelectionData | |
buffer |
Возвращаемое значение
TRUE, если selection_data содержит список целевых форматов и включает подходящий целевой формат для форматированного текста, иначе FALSE.
С: 2.10
gtk_selection_data_get_selection ()
GdkAtom
gtk_selection_data_get_selection (const GtkSelectionData *selection_data); Возвращает атом селектора данных.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
атом селектора данных.
[transfer none]
С: 2.16
gtk_selection_data_get_data ()
const guchar *
gtk_selection_data_get_data (const GtkSelectionData *selection_data); Возвращает сырые данные селектора.
[skip]
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
сырые данные селектора.
[array][element-type guint8]
С: 2.14
gtk_selection_data_get_length ()
gint
gtk_selection_data_get_length (const GtkSelectionData *selection_data); Возвращает длину сырых данных селектора.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
длина данных селектора.
С: 2.14
gtk_selection_data_get_data_with_length ()
const guchar * gtk_selection_data_get_data_with_length (const GtkSelectionData *selection_data,gint *length);
Возвращает сырые данные селектора вместе с их длиной.
[rename-to gtk_selection_data_get_data]
Параметры
selection_data | указатель на GtkSelectionData. | |
length | место для возвращения длины сегмента данных. | [out] |
Возвращаемое значение
сырые данные селектора.
[array length=length]
С: 3.0
gtk_selection_data_get_data_type ()
GdkAtom
gtk_selection_data_get_data_type (const GtkSelectionData *selection_data); Возвращает тип данных селектора.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
тип данных селектора.
[transfer none]
С: 2.14
gtk_selection_data_get_display ()
GdkDisplay *
gtk_selection_data_get_display (const GtkSelectionData *selection_data); Возвращает дисплей селектора.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
дисплей селектора.
[transfer none]
С: 2.14
gtk_selection_data_get_format ()
gint
gtk_selection_data_get_format (const GtkSelectionData *selection_data); Возвращает формат селектора.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
формат селектора.
С: 2.14
gtk_selection_data_get_target ()
GdkAtom
gtk_selection_data_get_target (const GtkSelectionData *selection_data); Возвращает целевой формат селектора.
Параметры
selection_data | указатель на GtkSelectionData. |
Возвращаемое значение
целевой формат селектора.
[transfer none]
С: 2.14
gtk_targets_include_image ()
gboolean gtk_targets_include_image (GdkAtom *targets,gint n_targets,gboolean writable);
Определяет, можно ли использовать какой-либо из целевых форматов в targets для передачи GdkPixbuf.
Параметры
targets | массив GdkAtoms. | [array length=n_targets] |
n_targets | длина | |
writable | указывает, нужно ли принимать только целевые форматы, для которых GTK+ знает как преобразовать pixbuf в соответствующий формат |
Возвращаемое значение
TRUE, если targets включает подходящий целевой формат для изображений, иначе FALSE.
С: 2.10
gtk_targets_include_text ()
gboolean gtk_targets_include_text (GdkAtom *targets,gint n_targets);
Определяет, могут ли какие-либо из целевых объектов в targets использоваться для предоставления текста.
Параметры
targets | массив GdkAtoms. | [array length=n_targets] |
n_targets | длина |
Возвращаемое значение
TRUE, если targets включают подходящий целевой объект для текста, в противном случае FALSE.
С: 2.10
gtk_targets_include_uri ()
gboolean gtk_targets_include_uri (GdkAtom *targets,gint n_targets);
Определяет, могут ли какие-либо из целевых объектов в targets использоваться для предоставления списка uri.
Параметры
targets | массив GdkAtoms. | [array length=n_targets] |
n_targets | длина |
Возвращаемое значение
TRUE, если targets включают подходящий целевой объект для списков uri, в противном случае FALSE.
С: 2.10
gtk_targets_include_rich_text ()
gboolean gtk_targets_include_rich_text (GdkAtom *targets,gint n_targets,GtkTextBuffer *buffer);
Определяет, могут ли какие-либо из целевых объектов в targets использоваться для предоставления форматированного текста.
Параметры
targets | массив GdkAtoms. | [array length=n_targets] |
n_targets | длина | |
buffer |
Возвращаемое значение
TRUE, если targets включают подходящий целевой объект для форматированного текста, в противном случае FALSE.
С: 2.10
gtk_selection_remove_all ()
void
gtk_selection_remove_all (GtkWidget *widget); Удаляет все обработчики и снимает владение всеми выделениями для виджета. Вызывается при уничтожении виджета. Как правило, приложения не вызывают эту функцию.
Параметры
widget |
gtk_selection_data_copy ()
GtkSelectionData *
gtk_selection_data_copy (const GtkSelectionData *data); Создает копию GtkSelectionData и его данных.
Параметры
data | указатель на GtkSelectionData. |
Возвращаемое значение
указатель на копию data .
gtk_selection_data_free ()
void
gtk_selection_data_free (GtkSelectionData *data); Освобождает GtkSelectionData, возвращенный функцией gtk_selection_data_copy().
Параметры
data | указатель на GtkSelectionData. |
Типы и значения
GtkSelectionData
typedef struct _GtkSelectionData GtkSelectionData;
struct GtkTargetEntry
struct GtkTargetEntry {
gchar *target;
guint flags;
guint info;
};
Структура GtkTargetEntry представляет один тип данных, который может быть предоставлен виджетом для выделения или передан или получен во время перетаскивания.
Члены
gchar * | строковое представление типа целевого объекта | |
guint | GtkTargetFlags для перетаскивания | |
guint | целое число, назначенное приложением, которое будет передано в качестве параметра, например, сигналу “selection-get”. Это позволяет приложению идентифицировать тип целевого объекта без сложных сравнений строк. |
GtkTargetList
typedef struct _GtkTargetList GtkTargetList;
Структура GtkTargetList представляет собой список ссылок на GtkTargetPair и должна рассматриваться как непрозрачная.
struct GtkTargetPair
struct GtkTargetPair {
GdkAtom target;
guint flags;
guint info;
};
Структура GtkTargetPair используется для представления той же информации, что и таблица GtkTargetEntry, но в эффективной форме.
Члены
GdkAtom | GdkAtom представление типа целевого объекта | |
guint | GtkTargetFlags для перетаскивания | |
guint | целое число, назначенное приложением, которое будет передано в качестве параметра, например, сигналу “selection-get”. Это позволяет приложению идентифицировать тип целевого объекта без сложных сравнений строк. |
См. также
GtkWidget — большая часть работы с выделениями происходит через сигналы для GtkWidget. В частности, если вы используете функции в этом разделе, вам может потребоваться обратить внимание на сигналы “selection-get”, “selection-received” и “selection-clear-event”
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/gtk3-Selections.html