GTK+ 2.0 Tutorial

<<< Previous

Drag-and-drop (DND)

Next >>>


Функции

Настройка исходного виджета

Функция gtk_drag_source_set() определяет ряд целевых типов операции перетаскивания на виджете.

void gtk_drag_source_set( GtkWidget *widget, GdkModifierType start_button_mask, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions );

Параметры показывают следующее:

Параметр 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)


<<< Previous

Home

Next >>>

Properties

Up

GLib