краткое описание#include <gtk/gtk.h> gtktargetentry; gtktargetlist; gtktargetpair; gtktargetlist* gtk_target_list_new (const gtktargetentry *targets, guint ntargets); gtktargetlist* gtk_target_list_ref (gtktargetlist *list); void gtk_target_list_unref (gtktargetlist *list); void gtk_target_list_add (gtktargetlist *list, gdkatom target, guint flags, guint info); void gtk_target_list_add_table (gtktargetlist *list, const gtktargetentry *targets, guint ntargets); void gtk_target_list_add_text_targets (gtktargetlist *list, guint info); void gtk_target_list_add_image_targets (gtktargetlist *list, guint info, gboolean writable); void gtk_target_list_add_uri_targets (gtktargetlist *list, guint info); void gtk_target_list_add_rich_text_targets (gtktargetlist *list, guint info, gboolean deserializable, gtktextbuffer *buffer); void gtk_target_list_remove (gtktargetlist *list, gdkatom target); gboolean gtk_target_list_find (gtktargetlist *list, gdkatom target, guint *info); void gtk_target_table_free (gtktargetentry *targets, gint n_targets); gtktargetentry* gtk_target_table_new_from_list (gtktargetlist *list, gint *n_targets); gboolean gtk_selection_owner_set (gtkwidget *widget, gdkatom selection, guint32 time_); gboolean gtk_selection_owner_set_for_display (gdkdisplay *display, gtkwidget *widget, gdkatom selection, guint32 time_); void gtk_selection_add_target (gtkwidget *widget, gdkatom selection, gdkatom target, guint info); void gtk_selection_add_targets (gtkwidget *widget, gdkatom selection, const gtktargetentry *targets, guint ntargets); void gtk_selection_clear_targets (gtkwidget *widget, gdkatom selection); gboolean gtk_selection_convert (gtkwidget *widget, gdkatom selection, gdkatom target, guint32 time_); void gtk_selection_data_set (gtkselectiondata *selection_data, gdkatom type, gint format, const guchar *data, gint length); gboolean gtk_selection_data_set_text (gtkselectiondata *selection_data, const gchar *str, gint len); guchar* gtk_selection_data_get_text (gtkselectiondata *selection_data); gboolean gtk_selection_data_set_pixbuf (gtkselectiondata *selection_data, gdkpixbuf *pixbuf); gdkpixbuf* gtk_selection_data_get_pixbuf (gtkselectiondata *selection_data); gboolean gtk_selection_data_set_uris (gtkselectiondata *selection_data, gchar **uris); gchar** gtk_selection_data_get_uris (gtkselectiondata *selection_data); gboolean gtk_selection_data_get_targets (gtkselectiondata *selection_data, gdkatom **targets, gint *n_atoms); gboolean gtk_selection_data_targets_include_image (gtkselectiondata *selection_data, gboolean writable); gboolean gtk_selection_data_targets_include_text (gtkselectiondata *selection_data); gboolean gtk_selection_data_targets_include_uri (gtkselectiondata *selection_data); gboolean gtk_selection_data_targets_include_rich_text (gtkselectiondata *selection_data, gtktextbuffer *buffer); gboolean gtk_targets_include_image (gdkatom *targets, gint n_targets, gboolean writable); gboolean gtk_targets_include_text (gdkatom *targets, gint n_targets); gboolean gtk_targets_include_uri (gdkatom *targets, gint n_targets); gboolean gtk_targets_include_rich_text (gdkatom *targets, gint n_targets, gtktextbuffer *buffer); void gtk_selection_remove_all (gtkwidget *widget); gboolean gtk_selection_clear (gtkwidget *widget, gdkeventselection *event); gtkselectiondata* gtk_selection_data_copy (gtkselectiondata *data); void gtk_selection_data_free (gtkselectiondata *data); описаниемеханизм выделения обеспечивает основу для различных типов взаимодействия между процессами. в частности, drag and drop и gtkclipboard работают через выделения. вы будете очень редко или никогда не будете использовать большинство из функций описанных в этом разделе; gtkclipboard обеспечивает более хороший интерфейс к тем же самым функциональным возможностям. некоторые типовые данные определённые в этом разделе используются в gtkclipboard и drag-and-drop api's. структура gtktargetentry и объекты gtktargetlist представляют списки типов данных которые поддерживаются при отправки и получении данных. объект gtkselectiondata используется для сохранения части данных на ряду с типом данных и другой ассоциированной информацией. деталиgtktargetentrytypedef struct {
gchar *target;
guint flags;
guint info;
} gtktargetentry; структура gtktargetentry представляет единственный тип данных которым может быть снабжён виджет для выделения или поставки или получения в течении drag-and-drop процесса. она содержит строку представляющую тип перетаскивания, поля флагов (используются только для drag and drop - смотрите gtktargetflags), а также целочисленный id полученный приложением. целочисленный id будет позднее помещён как параметр сигнала для таких сигналов как "selection_get". это позволит приложениям идентифицировать тип цели без расширенного сравнения строк. gtktargetlisttypedef struct {
glist *list;
guint ref_count;
} gtktargetlist; структура gtktargetlist представляет рассчитанный список gtktargetpair. она используется для представления некоторой информации, такой как таблица gtktargetentry, но в эффективной форме. эта структура должна быть обработана как не прозрачная. gtktargetpairtypedef struct {
gdkatom target;
guint flags;
guint info;
} gtktargetpair; внутренне используемая структура обработки кода в процессе drag-and-drop и выделении. gtk_target_list_new ()gtktargetlist* gtk_target_list_new (const gtktargetentry *targets, guint ntargets); создаёт новый gtktargetlist из массива gtktargetentry.
gtk_target_list_ref ()void gtk_target_list_ref (gtktargetlist *list); увеличивает счёт ссылок gtktargetlist на один.
gtk_target_list_unref ()void gtk_target_list_unref (gtktargetlist *list); уменьшает счёт ссылок gtktargetlist на один. если результат нулевой, то список освобождается.
gtk_target_list_add ()void gtk_target_list_add (gtktargetlist *list, gdkatom target, guint flags, guint info); присоединяет другую цель к gtktargetlist.
gtk_target_list_add_table ()void gtk_target_list_add_table (gtktargetlist *list, const gtktargetentry *targets, guint ntargets); добавляет таблицу gtktargetentry к списку целей.
gtk_target_list_add_text_targets ()void gtk_target_list_add_text_targets
(gtktargetlist *list,
guint info); добавляет текстовые цели поддерживаемые gtkselection к списку целей. все цели добавляются с тем же самым info.
начиная с версии 2.6 gtk_target_list_add_image_targets ()void gtk_target_list_add_image_targets
(gtktargetlist *list,
guint info,
gboolean writable); добавляет целевые изображения поддерживаемые gtkselection к списку целей. все цели добавляются с тем же самым info.
начиная с версии 2.6 gtk_target_list_add_uri_targets ()void gtk_target_list_add_uri_targets (gtktargetlist *list, guint info); добавляет uri цели поддерживаемые gtkselection к списку целей. все цели добавляются с тем же самым info.
начиная с версии 2.6 gtk_target_list_remove ()void gtk_target_list_remove (gtktargetlist *list, gdkatom target); удаляет цель из списка целей.
gtk_target_list_find ()gboolean gtk_target_list_find (gtktargetlist *list, gdkatom target, guint *info); ищет полученную цель в gtktargetlist.
gtk_target_table_free ()void gtk_target_table_free (gtktargetentry *targets, gint n_targets);
эта функция освобождает таблицу
целей возвращенных
начиная с версии 2.10 gtk_target_table_new_from_list ()gtktargetentry* gtk_target_table_new_from_list (gtktargetlist *list, gint *n_targets);
эта функция создаёт массив
gtktargetentry
который содержит цели помещённые как
начиная с версии 2.10 gtk_selection_owner_set ()gboolean gtk_selection_owner_set (gtkwidget *widget, gdkatom selection, guint32 time_); требование монопольного использования данного выделения для специального виджета, или, если widget равен null, освобождение монопольного выделения.
gtk_selection_owner_set_for_display ()gboolean gtk_selection_owner_set_for_display (gdkdisplay *display, gtkwidget *widget, gdkatom selection, guint32 time_); требование монопольного использования данного выделения для специального виджета, или, если widget равен null, освобождение монопольного выделения.
начиная с версии 2.2 gtk_selection_add_target ()void gtk_selection_add_target (gtkwidget *widget, gdkatom selection, gdkatom target, guint info); добавляет определённую цель в список поддерживаемых целей для данного виджета и выделения.
gtk_selection_add_targets ()void gtk_selection_add_targets (gtkwidget *widget, gdkatom selection, const gtktargetentry *targets, guint ntargets); добавление таблицы целей в список поддерживаемых целей для данного виджета и выделения.
gtk_selection_clear_targets ()void gtk_selection_clear_targets (gtkwidget *widget, gdkatom selection); удаляет все цели зарегистрированные для данного выделения виджета.
gtk_selection_convert ()gboolean gtk_selection_convert (gtkwidget *widget, gdkatom selection, gdkatom target, guint32 time_); запрос содержимого выделения. при получении генерируется сигнал "selection_received".
gtk_selection_data_set ()void gtk_selection_data_set (gtkselectiondata *selection_data, gdkatom type, gint format, const guchar *data, gint length); сохранение новых данных в объекте gtkselectiondata. должен быть вызван только из callback-функции обработчика выделения. сохранённые данные заканчиваются нулём (zero-terminates).
gtk_selection_data_set_text ()gboolean gtk_selection_data_set_text (gtkselectiondata *selection_data, const gchar *str, gint len); устанавливает содержимое выделения в виде строки в кодировке utf-8. строка преобразуется в форму определённую selection_data->target.
gtk_selection_data_get_text ()guchar* gtk_selection_data_get_text (gtkselectiondata *selection_data); получает содержимое выделенных данных как строку в кодировке utf-8.
gtk_selection_data_set_pixbuf ()gboolean gtk_selection_data_set_pixbuf (gtkselectiondata *selection_data, gdkpixbuf *pixbuf); устанавливает содержимое выделения из gdkpixbuf. буфер изображения (pixbuf) преобразуется в определённую форму selection_data->target.
начиная с версии 2.6 gtk_selection_data_get_pixbuf ()gdkpixbuf* gtk_selection_data_get_pixbuf (gtkselectiondata *selection_data); получает содержимое выделенных данных как gdkpixbuf.
начиная с версии 2.6 gtk_selection_data_set_uris ()gboolean gtk_selection_data_set_uris (gtkselectiondata *selection_data, gchar **uris); устанавливает содержимое выделения из списка uris. строка преобразуется в определённую форму selection_data->target.
начиная с версии 2.6 gtk_selection_data_get_uris ()gchar** gtk_selection_data_get_uris (gtkselectiondata *selection_data); получает содержимое выделенных данных как массив uris.
начиная с версии 2.6 gtk_selection_data_get_targets ()gboolean gtk_selection_data_get_targets (gtkselectiondata *selection_data, gdkatom **targets, gint *n_atoms); получает содержимое selection_data как массив целей. это может использоваться для интерпретации результатов полученных стандартом targets целей, который всегда поставляется для любого выделения.
gtk_selection_data_targets_include_image ()gboolean gtk_selection_data_targets_include_image (gtkselectiondata *selection_data, gboolean writable); получает объект gtkselectiondata содержащий список целей, определяется если какие-нибудь цели в targets могут быть использованы для обеспечения gdkpixbuf.
начиная с версии 2.6 gtk_selection_data_targets_include_text ()gboolean gtk_selection_data_targets_include_text (gtkselectiondata *selection_data); получает объект gtkselectiondata содержащий список целей, определяется если какая-нибудь цель в targets может быть использована для обеспечения текста.
gtk_selection_data_targets_include_uri ()gboolean gtk_selection_data_targets_include_uri (gtkselectiondata *selection_data);
полученный объект gtkselectiondata
содержит список адресов, определяет
может ли какой нибудь адрес в
начиная с версии 2.10 gtk_selection_data_targets_include_rich_text ()gboolean gtk_selection_data_targets_include_rich_text (gtkselectiondata *selection_data, gtktextbuffer *buffer); полученный объект gtkselectiondata содержит список адресов, определяет может ли какой нибудь адрес в targets использоваться для обеспечения rich text.
начиная с версии 2.10 gtk_targets_include_image ()gboolean gtk_targets_include_image (gdkatom *targets, gint n_targets, gboolean writable);
определяет может ли какой
нибудь адрес в
начиная с версии 2.10 gtk_targets_include_text ()gboolean gtk_targets_include_text (gdkatom *targets, gint n_targets);
определяет может ли какой
нибудь адрес в
начиная с версии 2.10 gtk_targets_include_uri ()gboolean gtk_targets_include_uri (gdkatom *targets, gint n_targets);
определяет может ли какой
нибудь адрес в
начиная с версии 2.10 gtk_targets_include_rich_text ()gboolean gtk_targets_include_rich_text (gdkatom *targets, gint n_targets, gtktextbuffer *buffer);
определяет если какой нибудь
адрес в
начиная с версии 2.10 gtk_selection_remove_all ()void gtk_selection_remove_all (gtkwidget *widget); удаляет все обработчики и сбрасывает монопольное использование всех выделений для виджета. вызывается когда виджет прекратил существование. эту функцию приложения обычно не будут вызывать.
gtk_selection_clear ()gboolean gtk_selection_clear (gtkwidget *widget, gdkeventselection *event); вниманиеgtk_selection_clear устарела и не должна использоваться во вновь создаваемом коде. вместо вызова этой функции, привязывайте ваш обработчик selection_clear_event. вызов этой функции в любом другом контексте запрещён. обработчик по умолчанию для сигнала gtkwidget::selection_clear_event.
начиная с версии 2.2 gtk_selection_data_copy ()gtkselectiondata* gtk_selection_data_copy (gtkselectiondata *data); создаёт копию структуры gtkselectiondata и принадлежащих ей данных.
gtk_selection_data_free ()void gtk_selection_data_free (gtkselectiondata *data); освобождает структуру gtkselectiondata возвращаемую gtk_selection_data_copy().
смотрите также
|