GTK+ Reference Manual |
||||
---|---|---|---|---|
Буфер обмена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+.)
typedef struct _GtkClipboard GtkClipboard;
GtkClipboardReceivedFunc ()
void (*GtkClipboardReceivedFunc) (GtkClipboard *clipboard, GtkSelectionData *selection_data, gpointer data);
Функция вызывается, когда получен результат gtk_clipboard_request_contents(), или когда запрос не удался.
clipboard : |
|
selection_data : |
GtkSelectionData вмещает полученные данные. Если восстановление данных не удалось, то длинна поля selection_data будет отрицательной. |
data : |
user_data подставляемые в gtk_clipboard_request_contents(). |
void (*GtkClipboardTextReceivedFunc) (GtkClipboard *clipboard,
const gchar *text,
gpointer data);
Функция вызывается, когда получен результат gtk_clipboard_request_text() , или когда запрос не удался.
clipboard : |
|
text : |
Текст полученный, как строка в кодировке UTF-8, или NULL если восстановление данных не удалось. |
data : |
user_data подставляемые в gtk_clipboard_request_text(). |
void (*GtkClipboardImageReceivedFunc)
(GtkClipboard *clipboard,
GdkPixbuf *pixbuf,
gpointer data);
Функция вызывается, когда получен результат gtk_clipboard_request_image() , или когда запрос не удался.
clipboard : |
|
pixbuf : |
Получаемое изображение |
data : |
user_data подставляемые в gtk_clipboard_request_image(). |
Начиная с версии 2.6
void (*GtkClipboardTargetsReceivedFunc)
(GtkClipboard *clipboard,
GdkAtom *atoms,
gint n_atoms,
gpointer data);
Функция вызывается, когда получен результат gtk_clipboard_request_targets() , или когда запрос не удался.
clipboard : |
|
atoms : |
Поддерживаемое предназначение, как массив GdkAtom, или NULL если восстановление данных не удалось. |
n_atoms : |
Длина массива atoms. |
data : |
user_data подставляемые в gtk_clipboard_request_targets(). |
Начиная с версии 2.4
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 : |
|
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() |
void (*GtkClipboardClearFunc) (GtkClipboard *clipboard,
gpointer user_data_or_owner);
Функция вызывается когда содержимое буфера обмена изменено или очищено. Как только она вызвана, аргумент user_data_or_owner не будет больше использован.
clipboard : |
|
user_data_or_owner : |
аргумент user_data помещаемый в gtk_clipboard_set_with_data(), или аргумент owner помещаемый в gtk_clipboard_set_with_owner() |
GtkClipboard* gtk_clipboard_get (GdkAtom selection);Возвращает объект буфера обмена для данного выделения. Смотрите gtk_clipboard_get_for_display() для полного понимания.
selection : |
GdkAtom идентифицирует используемый буфер обмена. |
Возвращает : |
Соответствующий объект буфера обмена. Если нет существующих, то будет создан новый. Как только объект буфера обмена создан, он принадлежит GTK+ и становится постоянным, поэтому не должен уничтожаться. |
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
GdkDisplay* gtk_clipboard_get_display (GtkClipboard *clipboard);Определяет GdkDisplay связанный с clipboard
clipboard : |
|
Возвращает : |
GdkDisplay ассоциированный с clipboard |
Начиная с версии 2.2
gboolean gtk_clipboard_set_with_data (GtkClipboard *clipboard,
const GtkTargetEntry *targets,
guint n_targets,
GtkClipboardGetFunc get_func,
GtkClipboardClearFunc clear_func,
gpointer user_data);
Фактически устанавливает содержимое специального буфера обмена обеспечивая список поддерживаемых форматов для данных буфера обмена и вызывает функцию получения фактических данных, когда это требуется.
clipboard : |
|
targets : |
Массив содержащий информацию о доступных форматах для данных буфера обмена |
n_targets : |
Число элементов в targets |
get_func : |
Функция вызываемая для получения данных буфера обмена |
clear_func : |
Когда содержимое буфера обмена установлено снова, будет вызвана эта функция, а get_func не будет вызываться в последствии. |
user_data : |
Пользовательские данные помещаемые в get_func и clear_func. |
Возвращает : |
TRUE если установка данных буфера обмена выполнена. Если установка не удалась, обеспечивающие обратный вызов функции игнорируются. |
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 : |
|
targets : |
Массив содержащий информацию о доступных форматах для данных буфера обмена |
n_targets : |
Число элементов в targets |
get_func : |
Функция вызываемая для получения данных буфера обмена |
clear_func : |
Когда содержимое буфера обмена установлено снова, будет вызвана эта функция, а get_func не будет вызываться в последствии. |
owner : |
объект который владеет ("owns") данными. Этот объект будет помещён в обратный вызов после его вызова. |
Возвращает : |
TRUE если установка данных буфера обмена выполнена. Если установка не удалась, обеспечивающие обратный вызов функции игнорируются. |
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 : |
|
Возвращает : |
Владельца буфера обмена, если есть; иначе NULL. |
void gtk_clipboard_clear (GtkClipboard *clipboard);Очищает содержимое буфера обмена. В основном она должна вызываться только между вашими вызовами gtk_clipboard_set_with_owner() или gtk_clipboard_set_with_data(), и когда clear_func , подставленная вами, вызвана. Иначе буфер обмена сможет принадлежать кому-нибудь ещё.
clipboard : |
void gtk_clipboard_set_text (GtkClipboard *clipboard,
const gchar *text,
gint len);
Устанавливает содержимое буфера обмена в данную строку UTF-8. GTK+ сделает копию текста и будет отвечать на запросы о тексте, а также преобразует текст в требуемый формат.
clipboard : |
объект GtkClipboard |
text : |
строка UTF-8. |
len : |
Длина text, в байтах, или -1, в случае определения длины с помощью strlen(). |
void gtk_clipboard_set_image (GtkClipboard *clipboard,
GdkPixbuf *pixbuf);
Устанавливает содержимое буфера обмена в полученный GdkPixbuf. GTK+ возьмёт ответственность отвечать на запросы об изображении, а также преобразует изображение в требуемый формат.
clipboard : |
объект GtkClipboard |
pixbuf : |
Начиная с версии 2.6
void gtk_clipboard_request_contents (GtkClipboard *clipboard,
GdkAtom target,
GtkClipboardReceivedFunc callback,
gpointer user_data);
Запрашивает содержимое буфера обмена как полученную цель (target). Когда результаты получены, позже будет вызван получаемый обратный вызов.
clipboard : |
|
target : |
Атом, представляющий форму, в которую владелец буфера обмена должен преобразовать выделение. |
callback : |
Функция вызываемая при получении результатов (или неудачном поиске). Если поиск неудачен, длина поля selection_data будет отрицательной. |
user_data : |
Пользовательские данные помещаемые в callback |
void gtk_clipboard_request_text (GtkClipboard *clipboard,
GtkClipboardTextReceivedFunc callback,
gpointer user_data);
Запрашивает содержимое буфера обмена как текст. Когда текст получен, позже он будет преобразован в случае необходимости в UTF-8 и будет вызван callback.
Параметр text в callback будет содержать результирующий текст, если запрос успешен, или NULL если неудачен. Это может случиться по различным причинам, в особенности если буфер обмена был пуст или содержимое не может быть конвертировано в текстовый формат.
clipboard : |
|
callback : |
Функция вызывается, когда текст получен, или получение не удалось. (вызывается всегда, так или иначе.) |
user_data : |
Пользовательские данные отправляемые в callback. |
void gtk_clipboard_request_image (GtkClipboard *clipboard,
GtkClipboardImageReceivedFunc callback,
gpointer user_data);
Запрашивает содержимое буфера обмена как изображение. Когда изображение получено, оно будет конвертировано в GdkPixbuf, и вызывается callback.
Параметр pixbuf в callback будет содержать результирующий GdkPixbuf, если запрос успешен, или NULL если неудачен. Это может случиться по различным причинам, в особенности если буфер обмена был пуст или содержимое не может быть конвертировано в изображение.
clipboard : |
|
callback : |
Функция вызывается, когда изображение получено, или получение не удалось. (вызывается всегда, так или иначе.) |
user_data : |
Пользовательские данные отправляемые в callback. |
Начиная с версии 2.6
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.
|
|
|
|
|
Функция вызываемая после получения текста, или если поиск не удался. (Она вызывается в любом случае.) |
|
Пользовательские данные помещаемые
в |
Начиная с версии 2.10
void gtk_clipboard_request_targets (GtkClipboard *clipboard,
GtkClipboardTargetsReceivedFunc callback,
gpointer user_data);
Запрашивает содержимое буфера обмена, как список поддерживаемых целей. Когда список позже получен, вызывается callback.
Параметр targets в callback будет содержать результирующие цели если запрос удачен, или NULL если неудачен.
clipboard : |
|
callback : |
Функция вызывается, когда цель получена, или получение не удалось. (вызывается всегда, так или иначе.) |
user_data : |
Пользовательские данные отправляемые в callback. |
Начиная с версии 2.4
GtkSelectionData* gtk_clipboard_wait_for_contents
(GtkClipboard *clipboard,
GdkAtom target);
Запрос содержимого буфера обмена используя полученную цель (target). Эта функция ждёт данных, которые будут получены, используя основной цикл, таким образом события, паузы, и т.д., могут быть отправлены во время ожидания.
clipboard : |
|
target : |
Атом, представляющий форму, в которую владелец буфера обмена должен преобразовать выделение. |
Возвращает : |
Недавно-распределённый объект GtkSelectionData или NULL если поиск получаемой цели неудачен. Если не-NULL, значение может быть освобождено с помощью gtk_selection_data_free() после завершения. |
gchar* gtk_clipboard_wait_for_text (GtkClipboard *clipboard);Запрашивает содержимое буфера обмена как текст и преобразует результат в кодировку UTF-8, если необходимо. Эта функция ждет получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
clipboard : |
|
Возвращает : |
Вновь-размещённая строка в кодировке UTF-8, которая может быть освобождена используя g_free(), или NULL если получение данных не удалось. (это может случиться по разным причинам, в основном если буфер обмена пуст, или содержимое не может быть преобразовано в текстовую форму.) |
GdkPixbuf* gtk_clipboard_wait_for_image (GtkClipboard *clipboard);Запрашивает содержимое буфера обмена как изображение и преобразует результат в GdkPixbuf. Эта функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
clipboard : |
|
Возвращает : |
Вновь-размещенный объект GdkPixbuf , который может быть размещен с помощью g_object_unref(), или NULL , если поиск данных выделения не удался. ( это может случиться по разным причинам, в основном если буфер обмена пуст, или содержимое не может быть преобразовано в изображение.) |
Начиная с версии 2.6
guint8* gtk_clipboard_wait_for_rich_text
(GtkClipboard *clipboard,
GtkTextBuffer *buffer,
GdkAtom *format,
gsize *length);
Запрашивает содержимое буфера обмена как rich text. Эта функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
|
|
|
|
|
|
|
Указатель на место для хранения возвращаемого значения длины данных |
Возвращает : |
Вновь-размещённый бинарный блок
данных который должен освобождаться
с помощью |
Начиная с версии 2.10
gboolean gtk_clipboard_wait_is_text_available
(GtkClipboard *clipboard);
Проверка доступности текста для вставки. Это делается запросом TARGETS проверяя содержимое на любые поддерживаемые текстовые цели. Эта функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
Эта функция немного быстрее, чем вызов gtk_clipboard_wait_for_text(), так как не ищет фактический текст.
clipboard : |
|
Возвращает : |
TRUE когда текст доступен, иначе FALSE. |
gboolean gtk_clipboard_wait_is_image_available
(GtkClipboard *clipboard);
Проверка доступности изображения для вставки. Это делается запросом TARGETS проверяя содержимое на любые поддерживаемые изображения. Эта функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
Эта функция немного быстрее, чем вызов gtk_clipboard_wait_for_image() так как не ищет фактическое изображение.
clipboard : |
|
Возвращает : |
TRUE когда изображение доступно, иначе FALSE. |
Начиная с версии 2.6
gboolean gtk_clipboard_wait_is_rich_text_available
(GtkClipboard *clipboard,
GtkTextBuffer *buffer);
Проверяет доступность rich text для вставки. Это выполняется запросом атома TARGETS и проверкой содержит ли он любой поддерживаемый rich text. Эта функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
Эта функция немного быстрее,
чем вызов gtk_clipboard_wait_for_rich_text()
так как не ищет фактический текст.
|
|
|
|
Возвращает : |
Начина с версии 2.10
gboolean gtk_clipboard_wait_for_targets (GtkClipboard *clipboard,
GdkAtom **targets,
gint *n_targets);
Возвращает список целей присутствующих в буфере обмена, или NULL если нет доступных целей. Возвращаемый список может быть освобожден вызовом g_free(). Функция ожидает получения данных используя основной цикл, таким образом события, паузы, и т.д., могут отсылаться в течении ожидания.
clipboard : |
|
targets : |
Хранит массив целей. Сохранённый результат может быть освобождён функцией g_free(). |
n_targets : |
Хранит число пунктов в targets. |
Возвращает : |
TRUE если цели присутствуют в буфере обмена, иначе FALSE. |
Начиная с версии 2.4
gboolean gtk_clipboard_wait_is_target_available
(GtkClipboard *clipboard,
GdkAtom target);
Контролирует поддержку буфером обмена вставку данных определённого типа. Эта функция может использоваться для определения должен ли пункт "Paste" в меню быть чувствительным или нет.
Вместо этого, если вы хотите узнать, есть ли доступный текст в буфере обмена, используйте gtk_clipboard_wait_is_text_available().
clipboard : |
|
target : |
GdkAtom указывает какую цель искать. |
Возвращает : |
TRUE если цель доступна, иначе FALSE. |
Начиная с версии 2.6
void gtk_clipboard_set_can_store (GtkClipboard *clipboard,
const GtkTargetEntry *targets,
gint n_targets);
Сообщает, что данные буфера обмена должны быть сохранены где-нибудь ещё после завершения программы, или использования gtk_clipboard_store().
Это значение сбрасывается, когда изменяется владелец буфера обмена. То, где будут сохранены данные буфера обмена зависит от платформы, смотрите gdk_display_store_clipboard() для более полной информации.
clipboard : |
|
targets : |
Массив вмещающий информацию о том какие формы должны быть сохранены, или NULL указывающий на сохранение всех форм. |
n_targets : |
Число элементов в targets |
Начиная с версии 2.6
void gtk_clipboard_store (GtkClipboard *clipboard);Хранит текущие данные буфера обмена где-нибудь, после того как произошёл выход из приложения.
clipboard : |
Начиная с версии 2.6
void user_function (GtkClipboard *clipboard,
GdkEvent *event,
gpointer user_data) : Run first
clipboard : |
Объект получающий сигнал. |
event : |
|
user_data : |
Пользовательские данные, установленный когда подключен обработчик сигнала. |
GtkSelection |
GtkClipboard обеспечивает оболочку высокого уровня, вокруг подпрограмм низкого уровня, которые имеют дело с X выделением (X selections). Это так же позволяет непосредственную манипуляцию с X selections, хотя необходимо достаточно редко. |