設置來源元件
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 指定從這個視窗進行拖動時可能的行為的遮罩位元
targets參數是一個由下面的結構組成的陣列:
struct GtkTargetEntry { gchar *target; guint flags; guint info; }; |
這一結構指定一個代表拖動類型的字串,可選的旗標和應用程式指派的整數識別字。
如果一個元件不必再擔當拖曳操作的來源,用gtk_drag_source_unset()函式可以刪除一套拖曳目標類型。
void gtk_drag_source_unset( GtkWidget *widget ); |
來源元件上的信號
在一個拖曳操作中來源元件將被發送下面的這些信號。
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 ); |
目的元件上的信號
在一個拖曳操作中目的元件將被發送下面的這些信號。
drag_data_received | void (*drag_data_received)(GtkWidget *widget, GdkDragContext *dc, gint x, gint y, GtkSelectionData *selection_data, guint info, guint t, gpointer data) |
1 則留言