функции
настройка исходного
виджета
функция
gtk_drag_source_set() определяет ряд целевых
типов операции перетаскивания на
виджете.
void gtk_drag_source_set( gtkwidget *widget,
gdkmodifiertype start_button_mask,
const gtktargetentry *targets,
gint n_targets,
gdkdragaction actions );
|
параметры
показывают следующее:
widget -
определяет исходный виджет перетаскивания
start_button_mask
- определяет bitmask кнопок которые могут
начать перетаскивание (например
gdk_button1_mask)
targets -
определяет таблицу целевых данных
типов поддерживающих перетаскивание
n_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)
|
|