Spec-Zone.ru › GTK 3.20

Буферы обмена

Буферы обмена — Хранение данных в буферах обмена

Функции

void (*GtkClipboardReceivedFunc) ()
void (*GtkClipboardTextReceivedFunc) ()
void (*GtkClipboardImageReceivedFunc) ()
void (*GtkClipboardTargetsReceivedFunc) ()
void (*GtkClipboardRichTextReceivedFunc) ()
void (*GtkClipboardURIReceivedFunc) ()
void (*GtkClipboardGetFunc) ()
void (*GtkClipboardClearFunc) ()
GtkClipboard * gtk_clipboard_get ()
GtkClipboard * gtk_clipboard_get_for_display ()
GdkDisplay * gtk_clipboard_get_display ()
GtkClipboard * gtk_clipboard_get_default ()
gboolean gtk_clipboard_set_with_data ()
gboolean gtk_clipboard_set_with_owner ()
GObject * gtk_clipboard_get_owner ()
void gtk_clipboard_clear ()
void gtk_clipboard_set_text ()
void gtk_clipboard_set_image ()
void gtk_clipboard_request_contents ()
void gtk_clipboard_request_text ()
void gtk_clipboard_request_image ()
void gtk_clipboard_request_targets ()
void gtk_clipboard_request_rich_text ()
void gtk_clipboard_request_uris ()
GtkSelectionData * gtk_clipboard_wait_for_contents ()
gchar * gtk_clipboard_wait_for_text ()
GdkPixbuf * gtk_clipboard_wait_for_image ()
guint8 * gtk_clipboard_wait_for_rich_text ()
gchar ** gtk_clipboard_wait_for_uris ()
gboolean gtk_clipboard_wait_is_text_available ()
gboolean gtk_clipboard_wait_is_image_available ()
gboolean gtk_clipboard_wait_is_rich_text_available ()
gboolean gtk_clipboard_wait_is_uris_available ()
gboolean gtk_clipboard_wait_for_targets ()
gboolean gtk_clipboard_wait_is_target_available ()
void gtk_clipboard_set_can_store ()
void gtk_clipboard_store ()

Сигналы

void owner-change Выполняется первым

Типы и значения

GtkClipboard

Иерархия объектов

    GObject
    ╰── GtkClipboard

Включаемые файлы

#include <gtk/gtk.h>

Описание

Объект GtkClipboard представляет буфер обмена данными, используемый для обмена между различными процессами или между различными виджетами в одном процессе. Каждый буфер обмена идентифицируется именем, закодированным как GdkAtom. (Преобразование в строки и из строк можно выполнить с помощью gdk_atom_intern() и gdk_atom_name().) Стандартный буфер обмена соответствует атому “CLIPBOARD”; другой часто используемый буфер — “PRIMARY”, который в X традиционно содержит выделенный текст.

Для поддержки нескольких форматов данных в буфере обмена одновременно, механизм буфера обмена позволяет использовать обратные вызовы вместо фактических данных. При установке содержимого буфера обмена можно либо предоставить данные непосредственно (через функции, такие как gtk_clipboard_set_text()), либо предоставить обратный вызов, который будет вызван позже, когда данные потребуются (через gtk_clipboard_set_with_data() или gtk_clipboard_set_with_owner().) Предоставление обратного вызова также позволяет избежать копирования данных, когда они не нужны.

gtk_clipboard_set_with_data() и gtk_clipboard_set_with_owner() довольно похожи; выбор между ними в основном зависит от того, что удобнее в конкретной ситуации. Первый наиболее полезен, когда требуется блок данных с обратными вызовами для его преобразования в различные типы данных, которые вы рекламируете. Когда вызывается предоставленный вами clear_func, вы просто освобождаете блок данных. Последний более полезен, когда содержимое буфера обмена отражает внутреннее состояние GObject (Например, для буфера PRIMARY, когда виджет ввода предоставляет содержимое буфера обмена, содержимое представляет собой просто текст выделенного фрагмента.) Если содержимое изменяется, виджет ввода может вызвать gtk_clipboard_set_with_owner(), чтобы обновить отметку времени владения буфером обмена, не беспокоясь о вызове clear_func.

Запрос данных из буфера обмена по своей сути асинхронный. Если содержимое буфера обмена предоставляется в том же процессе, то для получения данных будет произведен прямой вызов функции, но если оно предоставляется другим процессом, то данные нужно получить из другого процесса, что может занять некоторое время. Чтобы избежать блокировки пользовательского интерфейса, вызов для запроса выделения gtk_clipboard_request_contents() принимает обратный вызов, который будет вызван при получении содержимого (или при неудаче запроса). Если вы не хотите иметь дело с предоставлением отдельного обратного вызова, вы также можете использовать gtk_clipboard_wait_for_contents(). Это запускает цикл GLib главный цикл рекурсивно, ожидая содержимого. Это может упростить поток кода, но вы все равно должны учитывать, что другие обратные вызовы в вашей программе могут быть вызваны во время работы этого рекурсивного главного цикла.

Наряду с функциями получения содержимого буфера обмена как произвочного блока данных, также есть функции для получения его как текста, gtk_clipboard_request_text() и gtk_clipboard_wait_for_text(). Эти функции занимаются определением форматов, объявленных поставщиком буфера обмена, запросом буфера обмена в лучшем доступном формате и преобразованием результатов в кодировку UTF-8. (Стандартный формат представления строк в GTK+.)

Функции

GtkClipboardReceivedFunc ()

void
(*GtkClipboardReceivedFunc) (GtkClipboard *clipboard,
                             GtkSelectionData *selection_data,
                             gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_contents() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

selection_data

GtkSelectionData, содержащий полученные данные. Если получение данных завершилось ошибкой, то поле длины selection_data будет отрицательным.

data

переданные данные user_data в gtk_clipboard_request_contents().

[closure]

GtkClipboardTextReceivedFunc ()

void
(*GtkClipboardTextReceivedFunc) (GtkClipboard *clipboard,
                                 const gchar *text,
                                 gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_text() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

text

полученный текст в кодировке UTF-8, или NULL в случае ошибки получения данных.

[nullable]

data

переданные данные user_data в gtk_clipboard_request_text().

[closure]

GtkClipboardImageReceivedFunc ()

void
(*GtkClipboardImageReceivedFunc) (GtkClipboard *clipboard,
                                  GdkPixbuf *pixbuf,
                                  gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_image() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

pixbuf

полученное изображение

data

переданные данные user_data в gtk_clipboard_request_image().

[closure]

С: 2.6

GtkClipboardTargetsReceivedFunc ()

void
(*GtkClipboardTargetsReceivedFunc) (GtkClipboard *clipboard,
                                    GdkAtom *atoms,
                                    gint n_atoms,
                                    gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_targets() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

atoms

поддерживаемые целевые атомы в виде массива GdkAtom, или NULL в случае ошибки получения данных.

[nullable][array length=n_atoms]

n_atoms

длина массива atoms.

data

переданные данные user_data в gtk_clipboard_request_targets().

[closure]

С: 2.4

GtkClipboardRichTextReceivedFunc ()

void
(*GtkClipboardRichTextReceivedFunc) (GtkClipboard *clipboard,
                                     GdkAtom format,
                                     const guint8 *text,
                                     gsize length,
                                     gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_rich_text() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

format

Формат форматированного текста

text

полученный форматированный текст в кодировке UTF-8, или NULL в случае ошибки получения данных.

[nullable][type utf8]

length

Длина текста.

data

переданные данные user_data в gtk_clipboard_request_rich_text().

[closure]

С: 2.10

GtkClipboardURIReceivedFunc ()

void
(*GtkClipboardURIReceivedFunc) (GtkClipboard *clipboard,
                                gchar **uris,
                                gpointer data);

Функция, вызываемая при получении результатов gtk_clipboard_request_uris() или при ошибке запроса.

Параметры

clipboard

буфер обмена GtkClipboard

uris

полученные URI.

[array zero-terminated=1]

data

переданные данные user_data в gtk_clipboard_request_uris().

[closure]

С: 2.14

GtkClipboardGetFunc ()

void
(*GtkClipboardGetFunc) (GtkClipboard *clipboard,
                        GtkSelectionData *selection_data,
                        guint info,
                        gpointer user_data_or_owner);

Функция, которая будет вызвана для предоставления содержимого выделения. Если рекламировалось несколько типов данных, запрашиваемый тип можно определить по параметру info или проверив целевое поле selection_data . Если данные можно успешно преобразовать, они должны быть сохранены в объекте selection_data, вызвав gtk_selection_data_set() (или аналогичные функции, такие как gtk_selection_data_set_text()). Если данные не заданы, запрашивателю будет сообщено о неудачной попытке получить данные.

Параметры

clipboard

объект GtkClipboard

selection_data

аргумент GtkSelectionData, в котором должны храниться запрашиваемые данные.

info

поле info, соответствующее запрашиваемой цели из массива GtkTargetEntry, переданного в gtk_clipboard_set_with_data() или gtk_clipboard_set_with_owner().

user_data_or_owner

аргумент user_data, переданный в gtk_clipboard_set_with_data(), или аргумент owner, переданный в gtk_clipboard_set_with_owner()

GtkClipboardClearFunc ()

void
(*GtkClipboardClearFunc) (GtkClipboard *clipboard,
                          gpointer user_data_or_owner);

Функция, которая будет вызвана при изменении или очистке содержимого буфера обмена. После вызова аргумент user_data_or_owner больше не будет использоваться.

Параметры

clipboard

объект GtkClipboard

user_data_or_owner

аргумент user_data, переданный в gtk_clipboard_set_with_data(), или аргумент owner, переданный в gtk_clipboard_set_with_owner()

gtk_clipboard_get ()

GtkClipboard *
gtk_clipboard_get (GdkAtom selection);

Возвращает объект буфера обмена для заданного выделения. Смотрите gtk_clipboard_get_for_display() для получения полных сведений.

Параметры

selection

атом GdkAtom, идентифицирующий буфер обмена для использования

Возвращает

соответствующий объект буфера обмена. Если буфер обмена еще не существует, он будет создан. После создания объект буфера обмена является постоянным и, так как он принадлежит GTK+, его не нужно освобождать или отменять ссылку.

[transfer none]

gtk_clipboard_get_for_display ()

GtkClipboard *
gtk_clipboard_get_for_display (GdkDisplay *display,
                               GdkAtom selection);

Возвращает объект буфера обмена для заданного выделения. Элементы меню «Вырезать/Копировать/Вставить» и сочетания клавиш должны использовать стандартный буфер обмена, возвращаемый при передаче GDK_SELECTION_CLIPBOARD для selection . (GDK_NONE поддерживается как синоним для GDK_SELECTION_CLIPBOARD для обратной совместимости.) Текущий выделенный объект или текст должны быть предоставлены в буфере обмена, идентифицированном как GDK_SELECTION_PRIMARY. Элементы меню «Вырезать/Копировать/Вставить» концептуально копируют содержимое буфера обмена GDK_SELECTION_PRIMARY в стандартный буфер обмена, т.е. они копируют выделение в то, что пользователь видит как буфер обмена.

(Передача GDK_NONE эквивалентна использованию gdk_atom_intern ("CLIPBOARD", FALSE)).

См. Спецификацию буфера обмена FreeDesktop для подробного обсуждения выборов «CLIPBOARD» и «PRIMARY» в системе окон X. В Win32 буфер обмена GDK_SELECTION_PRIMARY по существу игнорируется.)

Возможны произвольные именованные буферы обмена; если вы создаёте новые буферы обмена, вы должны префикс имени выделения символом подчеркивания (поскольку ICCCM требует, чтобы нестандартные атомы имели префикс подчеркивания) и использовать именованный пространство имён. Например, если ваше приложение называется «Foo» и имеет специальный буфер обмена, вы можете назвать его «_FOO_SPECIAL_CLIPBOARD».

Параметры

display

объект GdkDisplay для которого должен быть получен или создан буфер обмена.

selection

атом GdkAtom, идентифицирующий буфер обмена для использования.

Возвращает

соответствующий объект буфера обмена. Если буфер обмена еще не существует, он будет создан. После создания объект буфера обмена является постоянным и, так как он принадлежит GTK+, его не нужно освобождать или отменять ссылку.

[transfer none]

С: 2.2

gtk_clipboard_get_display ()

GdkDisplay *
gtk_clipboard_get_display (GtkClipboard *clipboard);

Возвращает связанный с clipboard объект GdkDisplay.

Параметры

clipboard

объект GtkClipboard

Возвращает

объект GdkDisplay, связанный с clipboard .

[transfer none]

С: 2.2

gtk_clipboard_get_default ()

GtkClipboard *
gtk_clipboard_get_default (GdkDisplay *display);

Возвращает объект стандартного буфера обмена для использования с элементами меню «Вырезать/Копировать/Вставить» и сочетаниями клавиш.

Параметры

display

объект GdkDisplay для которого необходимо получить буфер обмена.

Возвращает

объект стандартного буфера обмена.

[transfer none]

С: 3.16

gtk_clipboard_set_with_data ()

gboolean
gtk_clipboard_set_with_data (GtkClipboard *clipboard,
                             const GtkTargetEntry *targets,
                             guint n_targets,
                             GtkClipboardGetFunc get_func,
                             GtkClipboardClearFunc clear_func,
                             gpointer user_data);

Виртуальная установка содержимого указанного буфера обмена путём предоставления списка поддерживаемых форматов данных буфера обмена и функции, которая будет вызвана для получения фактических данных при запросе.

[skip]

Параметры

clipboard

объект GtkClipboard

targets

массив, содержащий информацию о доступных форматах данных буфера обмена.

[array length=n_targets]

n_targets

количество элементов в targets

get_func

функция, которая будет вызвана для получения фактических данных буфера обмена.

[scope async]

clear_func

при повторной установке содержимого буфера обмена будет вызвана эта функция, и get_func не будет вызвана впоследствии.

[scope async]

user_data

пользовательские данные, которые будут переданы в get_func и clear_func.

Возвращаемое значение

TRUE, если установка данных буфера обмена выполнена успешно. Если установка данных буфера обмена завершилась неудачно, предоставленные обратные вызовы будут проигнорированы.

gtk_clipboard_set_with_owner ()

gboolean
gtk_clipboard_set_with_owner (GtkClipboard *clipboard,
                              const GtkTargetEntry *targets,
                              guint n_targets,
                              GtkClipboardGetFunc get_func,
                              GtkClipboardClearFunc clear_func,
                              GObject *owner);

Виртуальная установка содержимого указанного буфера обмена путём предоставления списка поддерживаемых форматов данных буфера обмена и функции, которая будет вызвана для получения фактических данных при запросе.

Разница между этой функцией и gtk_clipboard_set_with_data() заключается в том, что вместо общего указателя user_data передаётся объект GObject.

[skip]

Параметры

clipboard

объект GtkClipboard

targets

массив, содержащий информацию о доступных форматах данных буфера обмена.

[array length=n_targets]

n_targets

количество элементов в targets

get_func

функция, которая будет вызвана для получения фактических данных буфера обмена.

[scope async]

clear_func

при повторной установке содержимого буфера обмена будет вызвана эта функция, и get_func не будет вызвана впоследствии.

[scope async]

owner

объект, «владеющий» данными. Этот объект будет передан в обратные вызовы при их вызове.

Возвращаемое значение

TRUE, если установка данных буфера обмена выполнена успешно. Если установка данных буфера обмена завершилась неудачно, предоставленные обратные вызовы будут проигнорированы.

gtk_clipboard_get_owner ()

GObject *
gtk_clipboard_get_owner (GtkClipboard *clipboard);

Если обратные вызовы содержимого буфера обмена были установлены с помощью gtk_clipboard_set_with_owner(), и gtk_clipboard_set_with_data() или gtk_clipboard_clear() не были вызваны впоследствии, возвращает владельца, установленного функцией gtk_clipboard_set_with_owner().

Параметры

clipboard

объект GtkClipboard

Возвращаемое значение

владелец буфера обмена, если таковой имеется; в противном случае NULL.

[nullable][transfer none]

gtk_clipboard_clear ()

void
gtk_clipboard_clear (GtkClipboard *clipboard);

Очищает содержимое буфера обмена. Обычно это следует делать только между вызовами gtk_clipboard_set_with_owner() или gtk_clipboard_set_with_data() и вызовом предоставленной вами clear_func. В противном случае буфер обмена может быть принадлежать кому-то другому.

Параметры

clipboard

объект GtkClipboard

gtk_clipboard_set_text ()

void
gtk_clipboard_set_text (GtkClipboard *clipboard,
                        const gchar *text,
                        gint len);

Устанавливает содержимое буфера обмена на заданную строку UTF-8. GTK+ создаст копию текста и возьмёт на себя ответственность за ответы на запросы текста и за преобразование текста в требуемый формат.

Параметры

clipboard

объект GtkClipboard

text

строка UTF-8.

len

длина text в байтах, или -1, в этом случае длина будет определена с помощью strlen().

gtk_clipboard_set_image ()

void
gtk_clipboard_set_image (GtkClipboard *clipboard,
                         GdkPixbuf *pixbuf);

Устанавливает содержимое буфера обмена на заданный объект GdkPixbuf. GTK+ возьмёт на себя ответственность за ответы на запросы изображения и за преобразование изображения в требуемый формат.

Параметры

clipboard

объект GtkClipboard

pixbuf

объект GdkPixbuf

С: 2.6

gtk_clipboard_request_contents ()

void
gtk_clipboard_request_contents (GtkClipboard *clipboard,
                                GdkAtom target,
                                GtkClipboardReceivedFunc callback,
                                gpointer user_data);

Запрашивает содержимое буфера обмена как указанный целевой тип. Когда результаты будут получены, будет вызван предоставленный обратный вызов.

Параметры

clipboard

объект GtkClipboard

target

атом, представляющий собой формат, в который владелец буфера обмена должен преобразовать выбор.

callback

функция, вызываемая при получении результатов (или при сбое запроса). Если запрос не удался, поле length объекта selection_data будет отрицательным.

[scope async]

user_data

данные пользователя, передаваемые в callback

gtk_clipboard_request_text ()

void
gtk_clipboard_request_text (GtkClipboard *clipboard,
                            GtkClipboardTextReceivedFunc callback,
                            gpointer user_data);

Запрашивает содержимое буфера обмена в виде текста. Когда текст будет получен, он будет преобразован в UTF-8 при необходимости, и будет вызван callback.

Параметр text функции callback будет содержать полученный текст, если запрос выполнен успешно, или NULL в случае сбоя. Это может произойти по различным причинам, в частности, если буфер обмена был пустым или содержимое буфера обмена не удалось преобразовать в текстовую форму.

Параметры

clipboard

объект GtkClipboard

callback

функция, вызываемая при получении текста или при сбое запроса. (Она всегда вызывается каким-либо образом).

[scope async]

user_data

данные пользователя, передаваемые в callback.

gtk_clipboard_request_image ()

void
gtk_clipboard_request_image (GtkClipboard *clipboard,
                             GtkClipboardImageReceivedFunc callback,
                             gpointer user_data);

Запрашивает содержимое буфера обмена в виде изображения. Когда изображение будет получено, оно будет преобразовано в GdkPixbuf, и будет вызван callback.

Параметр pixbuf функции callback будет содержать полученный GdkPixbuf, если запрос выполнен успешно, или NULL в случае сбоя. Это может произойти по различным причинам, в частности, если буфер обмена был пустым или содержимое буфера обмена не удалось преобразовать в изображение.

Параметры

clipboard

объект GtkClipboard

callback

функция, вызываемая при получении изображения или при сбое запроса. (Она всегда вызывается каким-либо образом).

[scope async]

user_data

данные пользователя, передаваемые в callback.

С: 2.6

gtk_clipboard_request_targets ()

void
gtk_clipboard_request_targets (GtkClipboard *clipboard,
                               GtkClipboardTargetsReceivedFunc callback,
                               gpointer user_data);

Запрашивает содержимое буфера обмена в виде списка поддерживаемых целевых типов. Когда список будет получен, будет вызван callback.

Параметр targets функции callback будет содержать полученный список целевых типов, если запрос выполнен успешно, или NULL в случае сбоя.

Параметры

clipboard

объект GtkClipboard

callback

функция, вызываемая при получении списка целевых типов или при сбое запроса. (Она всегда вызывается каким-либо образом).

[scope async]

user_data

данные пользователя, передаваемые в callback.

С: 2.4

gtk_clipboard_request_rich_text ()

void
gtk_clipboard_request_rich_text (GtkClipboard *clipboard,
                                 GtkTextBuffer *buffer,
                                 GtkClipboardRichTextReceivedFunc callback,
                                 gpointer user_data);

Запрашивает содержимое буфера обмена в формате форматированного текста. Когда форматированный текст будет получен, будет вызван callback.

Параметр text функции callback будет содержать полученный форматированный текст, если запрос выполнен успешно, или NULL в случае сбоя. Параметр length будет содержать длину text. Эта функция может завершиться неудачей по различным причинам, в частности, если буфер обмена был пустым или содержимое буфера обмена не удалось преобразовать в форматированный текст.

Параметры

clipboard

объект GtkClipboard

buffer

объект GtkTextBuffer

callback

функция, вызываемая при получении текста или при сбое запроса. (Она всегда вызывается каким-либо образом).

[scope async]

user_data

данные пользователя, передаваемые в callback.

С: 2.10

gtk_clipboard_request_uris ()

void
gtk_clipboard_request_uris (GtkClipboard *clipboard,
                            GtkClipboardURIReceivedFunc callback,
                            gpointer user_data);

Запрашивает содержимое буфера обмена в виде URI. При получении URI будет вызван callback.

Параметр uris функции callback будет содержать полученный массив URI, если запрос выполнен успешно, или NULL в случае сбоя. Это может произойти по различным причинам, в частности, если буфер обмена был пустым или содержимое буфера обмена не удалось преобразовать в формат URI.

Параметры

clipboard

объект GtkClipboard

callback

функция, вызываемая при получении URI или при сбое запроса. (Она всегда вызывается каким-либо образом).

[scope async]

user_data

данные пользователя, передаваемые в callback.

С: 2.14

gtk_clipboard_wait_for_contents ()

GtkSelectionData *
gtk_clipboard_wait_for_contents (GtkClipboard *clipboard,
                                 GdkAtom target);

Запрашивает содержимое буфера обмена, используя указанный целевой формат. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Параметры

clipboard

a GtkClipboard

target

атом, представляющий собой формат, в который владелец буфера обмена должен преобразовать выделение.

Возвращаемое значение

новый выделенный объект GtkSelectionData или NULL, если получение указанного целевого формата завершилось неудачей. Если значение отлично от NULL, это значение необходимо освободить с помощью gtk_selection_data_free(), когда вы закончите с ним.

[nullable]

gtk_clipboard_wait_for_text ()

gchar *
gtk_clipboard_wait_for_text (GtkClipboard *clipboard);

Запрашивает содержимое буфера обмена в виде текста и преобразует результат в UTF-8, если необходимо. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Параметры

clipboard

a GtkClipboard

Возвращаемое значение

новая выделенная строка UTF-8, которую необходимо освободить с помощью g_free(), или NULL, если получение данных выделения завершилось неудачей. (Это может произойти по разным причинам, в частности, если буфер обмена был пуст или содержимое буфера обмена не удалось преобразовать в текстовую форму.).

[nullable]

gtk_clipboard_wait_for_image ()

GdkPixbuf *
gtk_clipboard_wait_for_image (GtkClipboard *clipboard);

Запрашивает содержимое буфера обмена в виде изображения и преобразует результат в GdkPixbuf. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Параметры

clipboard

a GtkClipboard

Возвращаемое значение

новый выделенный объект GdkPixbuf, который необходимо уничтожить с помощью g_object_unref(), или NULL, если получение данных выделения завершилось неудачей. (Это может произойти по разным причинам, в частности, если буфер обмена был пуст или содержимое буфера обмена не удалось преобразовать в изображение.).

[nullable][transfer full]

Since: 2.6

gtk_clipboard_wait_for_rich_text ()

guint8 *
gtk_clipboard_wait_for_rich_text (GtkClipboard *clipboard,
                                  GtkTextBuffer *buffer,
                                  GdkAtom *format,
                                  gsize *length);

Запрашивает содержимое буфера обмена в формате rich text. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Параметры

clipboard

a GtkClipboard

buffer

a GtkTextBuffer

format

место для возвращаемого формата данных.

[out]

length

место для возвращаемой длины данных.

[out]

Возвращаемое значение

новый выделенный двоичный блок данных, который необходимо освободить с помощью g_free(), или NULL, если получение данных выделения завершилось неудачей. (Это может произойти по разным причинам, в частности, если буфер обмена был пуст или содержимое буфера обмена не удалось преобразовать в текстовую форму.).

[nullable][array length=length][transfer full]

Since: 2.10

gtk_clipboard_wait_for_uris ()

gchar **
gtk_clipboard_wait_for_uris (GtkClipboard *clipboard);

Запрашивает содержимое буфера обмена в виде URI. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Параметры

clipboard

a GtkClipboard

Возвращаемое значение

новый выделенный NULL-завершающий массив строк, который необходимо освободить с помощью g_strfreev(), или NULL, если получение данных выделения завершилось неудачей. (Это может произойти по разным причинам, в частности, если буфер обмена был пуст или содержимое буфера обмена не удалось преобразовать в форму URI.).

[nullable][array zero-terminated=1][element-type utf8][transfer full]

Since: 2.14

gtk_clipboard_wait_is_text_available ()

gboolean
gtk_clipboard_wait_is_text_available (GtkClipboard *clipboard);

Проверяет наличие доступного для вставки текста. Это делается путем запроса атома TARGETS и проверки наличия поддерживаемых целевых форматов текста. Эта функция ожидает получения данных с помощью основного цикла, поэтому в ожидании могут быть обработаны события, таймауты и т. п.

Эта функция немного быстрее, чем вызов gtk_clipboard_wait_for_text(), так как ей не нужно получать фактический текст.

Параметры

clipboard

a GtkClipboard

Возвращаемое значение

TRUE, если текст доступен, FALSE в противном случае.

gtk_clipboard_wait_is_image_available ()

gboolean
gtk_clipboard_wait_is_image_available (GtkClipboard *clipboard);

Проверка наличия изображения, доступного для вставки. Это делается путём запроса атома TARGETS и проверки, содержит ли он какие-либо поддерживаемые целевые типы изображений. Данная функция ожидает получения данных с помощью основного цикла, поэтому во время ожидания могут быть обработаны события, таймауты и т.д.

Эта функция немного быстрее, чем вызов gtk_clipboard_wait_for_image(), так как ей не нужно получать фактические данные изображения.

Параметры

clipboard

объект GtkClipboard

Возвращаемое значение

TRUE, если изображение доступно, FALSE в противном случае.

С: 2.6

gtk_clipboard_wait_is_rich_text_available ()

gboolean
gtk_clipboard_wait_is_rich_text_available
                               (GtkClipboard *clipboard,
                                GtkTextBuffer *buffer);

Проверка наличия форматированного текста, доступного для вставки. Это делается путём запроса атома TARGETS и проверки, содержит ли он какие-либо поддерживаемые целевые типы форматированного текста. Эта функция ожидает получения данных с помощью основного цикла, поэтому во время ожидания могут быть обработаны события, таймауты и т.д.

Данная функция немного быстрее, чем вызов gtk_clipboard_wait_for_rich_text(), так как ей не требуется извлекать фактический текст.

Параметры

clipboard

объект GtkClipboard

buffer

объект GtkTextBuffer

Возвращаемое значение

TRUE, если форматированный текст доступен, FALSE в противном случае.

С: 2.10

gtk_clipboard_wait_is_uris_available ()

gboolean
gtk_clipboard_wait_is_uris_available (GtkClipboard *clipboard);

Проверка наличия списка URI, доступного для вставки. Это делается путём запроса атома TARGETS и проверки, содержит ли он целевые типы URI. Эта функция ожидает получения данных с помощью основного цикла, поэтому во время ожидания могут быть обработаны события, таймауты и т.д.

Данная функция немного быстрее, чем вызов gtk_clipboard_wait_for_uris(), так как ей не требуется извлекать фактические данные URI.

Параметры

clipboard

объект GtkClipboard

Возвращаемое значение

TRUE, если список URI доступен, FALSE в противном случае.

С: 2.14

gtk_clipboard_wait_for_targets ()

gboolean
gtk_clipboard_wait_for_targets (GtkClipboard *clipboard,
                                GdkAtom **targets,
                                gint *n_targets);

Возвращает список целевых типов, присутствующих в буфере обмена, или NULL, если целевые типы отсутствуют. Возвращаемый список необходимо освободить с помощью g_free(). Эта функция ожидает получения данных с помощью основного цикла, поэтому во время ожидания могут быть обработаны события, таймауты и т.д.

Параметры

clipboard

объект GtkClipboard

targets

место для хранения массива целевых типов. Результат, сохранённый здесь, необходимо освободить с помощью g_free().

[out][array length=n_targets][transfer container]

n_targets

место для хранения количества элементов в targets .

[out]

Возвращаемое значение

TRUE, если целевые типы присутствуют в буфере обмена, в противном случае FALSE.

С: 2.4

gtk_clipboard_wait_is_target_available ()

gboolean
gtk_clipboard_wait_is_target_available
                               (GtkClipboard *clipboard,
                                GdkAtom target);

Проверяет, поддерживает ли буфер обмена вставку данных указанного типа. Эта функция может использоваться для определения, должен ли пункт меню «Вставить» быть неактивным.

Если вам нужно проверить, есть ли текст в буфере обмена, используйте gtk_clipboard_wait_is_text_available().

Параметры

clipboard

объект GtkClipboard

target

Атом GdkAtom, указывающий, какой целевой тип искать.

Возвращаемое значение

TRUE, если целевой тип доступен, FALSE в противном случае.

С: 2.6

gtk_clipboard_set_can_store ()

void
gtk_clipboard_set_can_store (GtkClipboard *clipboard,
                             const GtkTargetEntry *targets,
                             gint n_targets);

Указывает, что данные буфера обмена должны быть сохранены где-либо при завершении приложения или при вызове gtk_clipboard_store().

Это значение сбрасывается при изменении владельца буфера обмена. Место хранения данных буфера обмена зависит от платформы, см. gdk_display_store_clipboard() для получения дополнительной информации.

Параметры

clipboard

объект GtkClipboard

targets

массив, содержащий информацию о том, какие форматы следует сохранить, или NULL, чтобы указать, что все форматы должны быть сохранены.

[allow-none][array length=n_targets]

n_targets

количество элементов в targets

С: 2.6

gtk_clipboard_store ()

void
gtk_clipboard_store (GtkClipboard *clipboard);

Сохраняет текущие данные буфера обмена в определённом месте, чтобы они сохранились после выхода приложения.

Параметры

clipboard

объект GtkClipboard

С: 2.6

Типы и значения

GtkClipboard

typedef struct _GtkClipboard GtkClipboard;

Подробности сигналов

Сигнал “owner-change”

void
user_function (GtkClipboard *clipboard,
               GdkEvent     *event,
               gpointer      user_data)

Сигнал ::owner-change генерируется, когда GTK+ получает событие, указывающее на изменение владельца выделения, связанного с clipboard.

Параметры

clipboard

GtkClipboard, на котором генерируется сигнал

event

событие GdkEventOwnerChange.

[тип Gdk.EventOwnerChange]

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Выполнить сначала

С: 2.6

См. также

GtkSelectionData

© 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-Clipboards.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API