Spec-Zone.ru › GTK 3.24

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

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

Функции

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 ()
GdkAtom gtk_clipboard_get_selection ()

Сигналы

void owner-change Run First

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

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

a 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 window. В Win32 буфер обмена GDK_SELECTION_PRIMARY фактически игнорируется.)

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

Параметры

display

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

selection

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

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

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

[transfer none]

С: 2.2

gtk_clipboard_get_display ()

GdkDisplay *
gtk_clipboard_get_display (GtkClipboard *clipboard);

Возвращает GdkDisplay ассоциированный с clipboard

Параметры

clipboard

a 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

Функция, вызываемая при получении результатов (или при сбое запроса). Если запрос не удался, значение поля 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

объект 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

объект GtkClipboard

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

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

[nullable]

gtk_clipboard_wait_for_image ()

GdkPixbuf *
gtk_clipboard_wait_for_image (GtkClipboard *clipboard);

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

Параметры

clipboard

объект GtkClipboard

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

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

[nullable][transfer full]

С: 2.6

gtk_clipboard_wait_for_rich_text ()

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

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

Параметры

clipboard

объект GtkClipboard

buffer

объект GtkTextBuffer

format

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

[out]

length

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

[out]

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

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

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

С: 2.10

gtk_clipboard_wait_for_uris ()

gchar **
gtk_clipboard_wait_for_uris (GtkClipboard *clipboard);

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

Параметры

clipboard

объект GtkClipboard

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

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

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

С: 2.14

gtk_clipboard_wait_is_text_available ()

gboolean
gtk_clipboard_wait_is_text_available (GtkClipboard *clipboard);

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

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

Параметры

clipboard

объект 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

gtk_clipboard_get_selection ()

GdkAtom
gtk_clipboard_get_selection (GtkClipboard *clipboard);

Получает селекцию, к которой относится данный буфер обмена.

Параметры

clipboard

объект GtkClipboard

Возвращает

селекцию

С: 3.22

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

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.

[type Gdk.EventOwnerChange]

user_data

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

Флаги: Run First

С: 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.24/gtk3-Clipboards.html

Spec-Zone.ru

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