Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Signals

Буфер обмена

Clipboards запоминание данных в буфер обмена

Краткий обзор

#include <gtk/gtk.h> GtkClipboard; void (*GtkClipboardReceivedFunc) (GtkClipboard *clipboard, GtkSelectionData *selection_data, gpointer data); void (*GtkClipboardTextReceivedFunc) (GtkClipboard *clipboard, const gchar *text, gpointer data); void (*GtkClipboardImageReceivedFunc) (GtkClipboard *clipboard, GdkPixbuf *pixbuf, gpointer data); void (*GtkClipboardTargetsReceivedFunc) (GtkClipboard *clipboard, GdkAtom *atoms, gint n_atoms, gpointer data); void (*GtkClipboardRichTextReceivedFunc) (GtkClipboard *clipboard, GdkAtom format, const guint8 *text, gsize length, gpointer data); void (*GtkClipboardGetFunc) (GtkClipboard *clipboard, GtkSelectionData *selection_data, guint info, gpointer user_data_or_owner); void (*GtkClipboardClearFunc) (GtkClipboard *clipboard, gpointer user_data_or_owner); GtkClipboard* gtk_clipboard_get (GdkAtom selection); GtkClipboard* gtk_clipboard_get_for_display (GdkDisplay *display, GdkAtom selection); GdkDisplay* gtk_clipboard_get_display (GtkClipboard *clipboard); gboolean gtk_clipboard_set_with_data (GtkClipboard *clipboard, const GtkTargetEntry *targets, guint n_targets, GtkClipboardGetFunc get_func, GtkClipboardClearFunc clear_func, gpointer user_data); gboolean gtk_clipboard_set_with_owner (GtkClipboard *clipboard, const GtkTargetEntry *targets, guint n_targets, GtkClipboardGetFunc get_func, GtkClipboardClearFunc clear_func, GObject *owner); GObject* gtk_clipboard_get_owner (GtkClipboard *clipboard); void gtk_clipboard_clear (GtkClipboard *clipboard); void gtk_clipboard_set_text (GtkClipboard *clipboard, const gchar *text, gint len); void gtk_clipboard_set_image (GtkClipboard *clipboard, GdkPixbuf *pixbuf); void gtk_clipboard_request_contents (GtkClipboard *clipboard, GdkAtom target, GtkClipboardReceivedFunc callback, gpointer user_data); void gtk_clipboard_request_text (GtkClipboard *clipboard, GtkClipboardTextReceivedFunc callback, gpointer user_data); void gtk_clipboard_request_image (GtkClipboard *clipboard, GtkClipboardImageReceivedFunc callback, gpointer user_data); void gtk_clipboard_request_targets (GtkClipboard *clipboard, GtkClipboardTargetsReceivedFunc callback, gpointer user_data); void gtk_clipboard_request_rich_text (GtkClipboard *clipboard, GtkTextBuffer *buffer, GtkClipboardRichTextReceivedFunc callback, gpointer user_data); GtkSelectionData* gtk_clipboard_wait_for_contents (GtkClipboard *clipboard, GdkAtom target); gchar* gtk_clipboard_wait_for_text (GtkClipboard *clipboard); GdkPixbuf* gtk_clipboard_wait_for_image (GtkClipboard *clipboard); guint8* gtk_clipboard_wait_for_rich_text (GtkClipboard *clipboard, GtkTextBuffer *buffer, GdkAtom *format, gsize *length); gboolean gtk_clipboard_wait_is_text_available (GtkClipboard *clipboard); gboolean gtk_clipboard_wait_is_image_available (GtkClipboard *clipboard); gboolean gtk_clipboard_wait_is_rich_text_available (GtkClipboard *clipboard, GtkTextBuffer *buffer); gboolean gtk_clipboard_wait_for_targets (GtkClipboard *clipboard, GdkAtom **targets, gint *n_targets); gboolean gtk_clipboard_wait_is_target_available (GtkClipboard *clipboard, GdkAtom target); void gtk_clipboard_set_can_store (GtkClipboard *clipboard, const GtkTargetEntry *targets, gint n_targets); void gtk_clipboard_store (GtkClipboard *clipboard);

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

GObject +----GtkClipboard

Сигналы

"owner-change" void user_function (GtkClipboard *clipboard, GdkEvent *event, gpointer user_data) : Run first

Описание

Объект 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(), чтобы обновить временную метку (timestamp) для собственности буфера обмена, не заботясь о вызове clear_func.

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

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

Детали

GtkClipboard

typedef struct _GtkClipboard GtkClipboard;

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().


GtkClipboardTextReceivedFunc ()

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

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

clipboard :

GtkClipboard

text :

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

data :

user_data подставляемые в gtk_clipboard_request_text().


GtkClipboardImageReceivedFunc ()

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

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

clipboard :

GtkClipboard

pixbuf :

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

data :

user_data подставляемые в gtk_clipboard_request_image().

Начиная с версии 2.6


GtkClipboardTargetsReceivedFunc ()

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

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

clipboard :

GtkClipboard

atoms :

Поддерживаемое предназначение, как массив GdkAtom, или NULL если восстановление данных не удалось.

n_atoms :

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

data :

user_data подставляемые в gtk_clipboard_request_targets().

Начиная с версии 2.4


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 :

Соответствующая полю информация отправленная адресату из массива 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+ и становится постоянным, поэтому не должен уничтожаться.


gtk_clipboard_get_for_display ()

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

Возвращает объект буфера обмена для данного выделения. Пункты меню Cut/copy/paste и горячие клавиши клавиатуры должны использовать по умолчанию буфер обмена, возвращённый помещённым GDK_SELECTION_CLIPBOARD в selection. (GDK_NONE поддерживается как синоним для GDK_SELECTION_CLIPBOARD по причине обратной совместимости.) Объект текущемго выделения или текст должен быть обеспечен буфером обмена идентифицированным GDK_SELECTION_PRIMARY. Пункты меню Cut/copy/paste концептуально копируют содержимое буфера обмена GDK_SELECTION_PRIMARY в буфер обмена по умолчанию, то есть они копируют выделение в то, что пользователь видит как буфер обмена.

(Передавать GDK_NONE - тоже самое, что использовать gdk_atom_intern ("CLIPBOARD", FALSE). Смотрите http://www.freedesktop.org/Standards/clipboards-spec для детального обсуждения "CLIPBOARD" против "PRIMARY" выбор для X window system. В Win32 GDK_SELECTION_PRIMARY буфер обмена по существу игнорируется.)

Возможно иметь произвольные названия буферов обмена; если вы создаёте новый буфер обмена, вы должны использовать название начинающееся с символа подчёркивания (потому, что ICCCM требует чтобы не стандартные атомы (atoms) имели префикс нижнего подчёркивания (underscore-prefixed)). Например, если ваше приложение называется "Foo" и имеет специальный буфер обмена (special-purpose clipboard), вы можете назвать его "_FOO_SPECIAL_CLIPBOARD".

display :

Дисплей для которого создаётся или восстанавливается буфер обмена

selection :

GdkAtom идентифицирует используемый буфер.

Возвращает :

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

Начиная с версии 2.2


gtk_clipboard_get_display ()

GdkDisplay* gtk_clipboard_get_display       (GtkClipboard *clipboard);

Определяет GdkDisplay связанный с clipboard

clipboard :

GtkClipboard

Возвращает :

GdkDisplay ассоциированный с clipboard

Начиная с версии 2.2


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);

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

clipboard :

GtkClipboard

targets :

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

n_targets :

Число элементов в targets

get_func :

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

clear_func :

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

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.

clipboard :

GtkClipboard

targets :

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

n_targets :

Число элементов в targets

get_func :

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

clear_func :

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

owner :

объект который владеет ("owns") данными. Этот объект будет помещён в обратный вызов после его вызова.

Возвращает :

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.


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);

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

clipboard :

GtkClipboard

target :

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

callback :

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

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 :

Функция вызывается, когда текст получен, или получение не удалось. (вызывается всегда, так или иначе.)

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 :

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

user_data :

Пользовательские данные отправляемые в callback.

Начиная с версии 2.6


gtk_clipboard_request_rich_text ()

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

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

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

clipboard :

GtkClipboard

buffer :

GtkTextBuffer

callback :

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

user_data :

Пользовательские данные помещаемые в callback.

Начиная с версии 2.10


gtk_clipboard_request_targets ()

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

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

Параметр targets в callback будет содержать результирующие цели если запрос удачен, или NULL если неудачен.

clipboard :

GtkClipboard

callback :

Функция вызывается, когда цель получена, или получение не удалось. (вызывается всегда, так или иначе.)

user_data :

Пользовательские данные отправляемые в callback.

Начиная с версии 2.4


gtk_clipboard_wait_for_contents ()

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

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

clipboard :

GtkClipboard

target :

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

Возвращает :

Недавно-распределённый объект GtkSelectionData или NULL если поиск получаемой цели неудачен. Если не-NULL, значение может быть освобождено с помощью gtk_selection_data_free() после завершения.


gtk_clipboard_wait_for_text ()

gchar*      gtk_clipboard_wait_for_text     (GtkClipboard *clipboard);

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

clipboard :

GtkClipboard

Возвращает :

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


gtk_clipboard_wait_for_image ()

GdkPixbuf*  gtk_clipboard_wait_for_image    (GtkClipboard *clipboard);

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

clipboard :

GtkClipboard

Возвращает :

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

Начиная с версии 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 :

GtkClipboard

buffer :

GtkTextBuffer

format :

length :

Указатель на место для хранения возвращаемого значения длины данных

Возвращает :

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

Начиная с версии 2.10


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);

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

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

clipboard :

GtkClipboard

buffer :

GtkTextBuffer

Возвращает :

TRUE если есть доступный rich text, иначе FALSE.

Начина с версии 2.10


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().

n_targets :

Хранит число пунктов в targets.

Возвращает :

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

Начиная с версии 2.4


gtk_clipboard_wait_is_target_available ()

gboolean gtk_clipboard_wait_is_target_available (GtkClipboard *clipboard, GdkAtom target);

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

Вместо этого, если вы хотите узнать, есть ли доступный текст в буфере обмена, используйте 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 указывающий на сохранение всех форм.

n_targets :

Число элементов в targets

Начиная с версии 2.6


gtk_clipboard_store ()

void        gtk_clipboard_store             (GtkClipboard *clipboard);

Хранит текущие данные буфера обмена где-нибудь, после того как произошёл выход из приложения.

clipboard :

GtkClipboard

Начиная с версии 2.6

Детали сигналов

Сигнал "owner-change"

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

clipboard :

Объект получающий сигнал.

event :

user_data :

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

Смотрите также

GtkSelection

GtkClipboard обеспечивает оболочку высокого уровня, вокруг подпрограмм низкого уровня, которые имеют дело с X выделением (X selections). Это так же позволяет непосредственную манипуляцию с X selections, хотя необходимо достаточно редко.