| |
GTK+ 2.0 Tutorial |
||
---|---|---|
Drag-and-drop (DND) |
Функция gtk_drag_source_set() определяет ряд целевых типов операции перетаскивания на виджете.
void gtk_drag_source_set( GtkWidget *widget, GdkModifierType start_button_mask, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions ); |
Параметры показывают следующее:
start_button_mask - определяет bitmask кнопок которые могут начать перетаскивание (например GDK_BUTTON1_MASK)
targets - определяет таблицу целевых данных типов поддерживающих перетаскивание
actions - определяет bitmask возможных действий перетаскивания из этого окна
Параметр targets - массив следующей структуры:
struct GtkTargetEntry { gchar *target; guint flags; guint info; }; |
Поля определяют строку представляющую тип перетаскивания, дополнительные флаги и приложение заданного целочисленного идентификатора.
Если виджет больше не обязан действовать как источник для операций перетаскивания, функция gtk_drag_source_unset() может использоваться, чтобы удалить ряд типов адресата перетаскивания.
void gtk_drag_source_unset( GtkWidget *widget ); |
Исходному виджету посылают следующие сигналы в течение операции перетаскивания.
Таблица 1. Сигналы исходных виджетов
drag_begin |
void (*drag_begin)(GtkWidget *widget, GdkDragContext *dc, gpointer data) |
drag_motion |
gboolean (*drag_motion)(GtkWidget *widget, GdkDragContext *dc, gint x, gint y, guint t, gpointer data) |
drag_data_get |
void (*drag_data_get)(GtkWidget *widget, GdkDragContext *dc, GtkSelectionData *selection_data, guint info, guint t, gpointer data) |
drag_data_delete |
void (*drag_data_delete)(GtkWidget *widget, GdkDragContext *dc, gpointer data) |
drag_drop |
gboolean (*drag_drop)(GtkWidget *widget, GdkDragContext *dc, gint x, gint y, guint t, gpointer data) |
drag_end |
void (*drag_end)(GtkWidget *widget, GdkDragContext *dc, gpointer data) |
gtk_drag_dest_set() - определяет виджет который может принять перетаскиваемый объект и определяет типы приёма.
gtk_drag_dest_unset() - определяет, что виджет больше не может осуществлять приём.
void gtk_drag_dest_set( GtkWidget *widget, GtkDestDefaults flags, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions ); void gtk_drag_dest_unset( GtkWidget *widget ); |
Виджету назначения посылают следующие сигналы в течение операции перетаскивания.
Таблица 2. Сигналы виджета назначения
drag_data_received |
void (*drag_data_received)(GtkWidget *widget, GdkDragContext *dc, gint x, gint y, GtkSelectionData *selection_data, guint info, guint t, gpointer data) |
Properties |
GLib |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |