![]() |
![]() |
![]() |
Rhythmbox Development Reference Manual | ![]() |
---|---|---|---|---|
#define RB_TYPE_TREE_DRAG_DEST #define RB_TREE_DRAG_DEST (obj) #define RB_IS_TREE_DRAG_DEST (obj) #define RB_TREE_DRAG_DEST_GET_IFACE (obj) RbTreeDragSource; RbTreeDragSourceIface; RbTreeDragDest; RbTreeDragDestIface; enum RbTreeDestFlag; gboolean rb_tree_drag_source_row_draggable (RbTreeDragSource *drag_source, GList *path_list); gboolean rb_tree_drag_source_drag_data_delete (RbTreeDragSource *drag_source, GList *path_list); gboolean rb_tree_drag_source_drag_data_get (RbTreeDragSource *drag_source, GList *path_list, GtkSelectionData *selection_data); GType rb_tree_drag_dest_get_type (void); gboolean rb_tree_drag_dest_drag_data_received (RbTreeDragDest *drag_dest, GtkTreePath *dest, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data); gboolean rb_tree_drag_dest_row_drop_possible (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data); gboolean rb_tree_drag_dest_row_drop_position (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GList *targets, GtkTreeViewDropPosition *pos); void rb_tree_dnd_add_drag_dest_support (GtkTreeView *tree_view, RbTreeDestFlag flags, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions); void rb_tree_dnd_add_drag_source_support (GtkTreeView *tree_view, GdkModifierType start_button_mask, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions);
typedef struct { GTypeInterface g_iface; /* VTable - not signals */ gboolean (* rb_row_draggable) (RbTreeDragSource *drag_source, GList *path_list); gboolean (* rb_drag_data_get) (RbTreeDragSource *drag_source, GList *path_list, GtkSelectionData *selection_data); gboolean (* rb_drag_data_delete) (RbTreeDragSource *drag_source, GList *path_list); } RbTreeDragSourceIface;
typedef struct { GTypeInterface g_iface; /* VTable - not signals */ gboolean (* rb_drag_data_received) (RbTreeDragDest *drag_dest, GtkTreePath *dest, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data); gboolean (* rb_row_drop_possible) (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data); gboolean (* rb_row_drop_position) (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GList *targets, GtkTreeViewDropPosition *pos); /* optional */ GdkAtom (* rb_get_drag_target) (RbTreeDragDest *drag_dest, GtkWidget *widget, GdkDragContext *context, GtkTreePath *dest_path, GtkTargetList *target_list); } RbTreeDragDestIface;
typedef enum { RB_TREE_DEST_EMPTY_VIEW_DROP = 1 << 0, RB_TREE_DEST_CAN_DROP_INTO = 1 << 1, RB_TREE_DEST_CAN_DROP_BETWEEN = 1 << 2, RB_TREE_DEST_SELECT_ON_DRAG_TIMEOUT = 1 << 3 } RbTreeDestFlag;
gboolean rb_tree_drag_source_row_draggable (RbTreeDragSource *drag_source, GList *path_list);
Asks the EggTreeMultiDragSource whether a particular row can be used as the source of a DND operation. If the source doesn't implement this interface, the row is assumed draggable.
|
a EggTreeMultiDragSource |
|
|
Returns : |
TRUE if the row can be dragged
|
gboolean rb_tree_drag_source_drag_data_delete (RbTreeDragSource *drag_source, GList *path_list);
Asks the EggTreeMultiDragSource to delete the row at path
, because
it was moved somewhere else via drag-and-drop. Returns FALSE
if the deletion fails because path
no longer exists, or for
some model-specific reason. Should robustly handle a path
no
longer found in the model!
|
a EggTreeMultiDragSource |
|
|
Returns : |
TRUE if the row was successfully deleted
|
gboolean rb_tree_drag_source_drag_data_get (RbTreeDragSource *drag_source, GList *path_list, GtkSelectionData *selection_data);
Asks the EggTreeMultiDragSource to fill in selection_data
with a
representation of the row at path
. selection_data->target
gives
the required type of the data. Should robustly handle a path
no
longer found in the model!
|
a EggTreeMultiDragSource |
|
|
|
a EggSelectionData to fill with data from the dragged row |
Returns : |
TRUE if data of the required type was provided
|
gboolean rb_tree_drag_dest_drag_data_received (RbTreeDragDest *drag_dest, GtkTreePath *dest, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data);
|
|
|
|
|
|
|
|
Returns : |
gboolean rb_tree_drag_dest_row_drop_possible (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GtkTreeViewDropPosition pos, GtkSelectionData *selection_data);
|
|
|
|
|
|
|
|
Returns : |
gboolean rb_tree_drag_dest_row_drop_position (RbTreeDragDest *drag_dest, GtkTreePath *dest_path, GList *targets, GtkTreeViewDropPosition *pos);
|
|
|
|
|
|
|
|
Returns : |
void rb_tree_dnd_add_drag_dest_support (GtkTreeView *tree_view, RbTreeDestFlag flags, const GtkTargetEntry *targets, gint n_targets, GdkDragAction actions);
|
|
|
|
|
|
|
|
|