Выборы
Выборы — Функции для обработки межпроцессного взаимодействия через выборы
Функции
Типы и значения
| GtkSelectionData | |
| struct | GtkTargetEntry |
| GtkTargetList | |
| struct | GtkTargetPair |
Иерархия объектов
GBoxed ├── GtkSelectionData ╰── GtkTargetList
Включения
#include <gtk/gtk.h>
Описание
Механизм выбора предоставляет основу для различных типов взаимодействия между процессами. В частности, перетаскивание и GtkClipboard работают через выбор. Вам очень редко или никогда не придется использовать большинство функций в этом разделе напрямую; GtkClipboard предоставляет более удобный интерфейс к тем же возможностям.
Некоторые из определенных в этом разделе типов данных используются и в API GtkClipboard, и в API перетаскивания. Объекты 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. |
Возвращаемое значение
Переданный список GtkTargetList.
gtk_target_list_unref ()
void
gtk_target_list_unref (GtkTargetList *list); Уменьшает счётчик ссылок списка GtkTargetList на единицу. Если счётчик ссылок становится равным нулю, список освобождается.
Параметры
list | Список GtkTargetList. |
gtk_target_list_add ()
void gtk_target_list_add (GtkTargetList *list,GdkAtom target,guint flags,guint info);
Добавляет целевой объект в конец списка GtkTargetList.
Параметры
list | Список GtkTargetList. | |
target | Интернированный атом, представляющий целевой объект. | |
flags | Флаги для этого целевого объекта. | |
info | Идентификатор, который будет возвращён приложению. |
gtk_target_list_add_table ()
void gtk_target_list_add_table (GtkTargetList *list,const GtkTargetEntry *targets,guint ntargets);
Добавляет таблицу записей GtkTargetEntry в начало списка.
Параметры
list | Список GtkTargetList. | |
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 | Список GtkTargetList. | |
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 | Список GtkTargetList. | |
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 | экземпляр GdkDisplay, где устанавливается выделенная область | |
widget | новый владелец выделенной области (виджет GtkWidget), или | [allow-none] |
selection | интернированный атом, представляющий выделенную область для заявления о владении | |
time_ | временная метка, с которой необходимо заявить о владении выделенной областью |
Возвращаемое значение
ИСТИНА, если операция выполнена успешно
С: 2.2
gtk_selection_add_target ()
void gtk_selection_add_target (GtkWidget *widget,GdkAtom selection,GdkAtom target,guint info);
Добавляет указанный целевой формат в список поддерживаемых форматов для данного виджета и выделения.
Параметры
widget | ||
selection | выделение | |
target | целевой формат для добавления. | |
info | Целое беззнаковое число, которое будет возвращено приложению. |
gtk_selection_add_targets ()
void gtk_selection_add_targets (GtkWidget *widget,GdkAtom selection,const GtkTargetEntry *targets,guint ntargets);
Добавляет таблицу целевых форматов в начало списка поддерживаемых форматов для данного виджета и выделения.
Параметры
widget | ||
selection | выделение | |
targets | таблица целевых форматов для добавления. | [array length=ntargets] |
ntargets | количество элементов в |
gtk_selection_clear_targets ()
void gtk_selection_clear_targets (GtkWidget *widget,GdkAtom selection);
Удаляет все зарегистрированные целевые форматы для данного выделения для виджета.
Параметры
widget | ||
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 | ||
str | строка UTF-8 | |
len | длина |
gtk_selection_data_get_text ()
guchar *
gtk_selection_data_get_text (const GtkSelectionData *selection_data); Возвращает содержимое данных выделения в виде строки UTF-8.
Параметры
selection_data |
Возвращаемое значение
Если данные выделения содержали распознаваемый тип текста и его можно было преобразовать в 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 | ||
pixbuf |
Since: 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);
Устанавливает содержимое выделения из списка URI. Строка преобразуется в форму, определенную selection_data->target .
Параметры
selection_data | ||
uris | a | [array zero-terminated=1] |
С: 2.6
gtk_selection_data_get_uris ()
gchar **
gtk_selection_data_get_uris (const GtkSelectionData *selection_data); Получает содержимое данных выделения в виде массива URI.
Параметры
selection_data |
Возвращает
если данные выделения содержат список URI, новый выделенный NULL-завершающий массив строк, содержащий URI, в противном случае 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 быть использован для предоставления списка URI.
Параметры
selection_data | объект GtkSelectionData |
Возвращает
TRUE, если selection_data содержит список целевых объектов и подходящий целевой объект для списков URI включён, в противном случае 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); Возвращает атом выбора GdkAtom данных выбора.
Параметры
selection_data | указатель на структуру GtkSelectionData. |
С версии: 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. | [массив length=n_targets] |
n_targets | длина массива |
С: 2.10
gtk_targets_include_uri ()
gboolean gtk_targets_include_uri (GdkAtom *targets,gint n_targets);
Определяет, можно ли использовать какой-либо из целевых типов в targets для предоставления списка URI.
Параметры
targets | массив GdkAtoms. | [массив 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. | [массив 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.20/gtk3-Selections.html