X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/4942ee7d61bf22ba38bf026c7d05028cb7db0d54..e09e71f08264c22f6c6038988591f0069f5b6240:/disobedience/queue-generic.h diff --git a/disobedience/queue-generic.h b/disobedience/queue-generic.h index 8dd9fdb..c15b383 100644 --- a/disobedience/queue-generic.h +++ b/disobedience/queue-generic.h @@ -55,7 +55,7 @@ struct queuelike { const char *name; /** @brief Initialization function */ - void (*init)(void); + void (*init)(struct queuelike *ql); /** @brief Columns */ const struct queue_column *columns; @@ -92,13 +92,17 @@ struct queuelike { struct tabtype tabtype; /** @brief Drag-drop callback, or NULL for no drag+drop - * @param src Row to move - * @param dst Destination position + * @param ql Owning queuelike + * @param ntracks Number of tracks to be dropped + * @param tracks List of track names + * @param ids List of track IDs + * @param after_me Drop after this or NULL to drop at head * * If the rearrangement is impossible then the displayed queue must be put * back. */ - void (*drop)(int src, int dst); + void (*drop)(struct queuelike *ql, int ntracks, char **tracks, char **ids, + struct queue_entry *after_me); /** @brief Stashed drag target row */ GtkTreePath *drag_target; @@ -169,6 +173,8 @@ const char *column_length(const struct queue_entry *q, struct tabtype *ql_tabtype(struct queuelike *ql); struct queue_entry *ql_iter_to_q(GtkTreeModel *model, GtkTreeIter *iter); +struct queue_entry *ql_path_to_q(GtkTreeModel *model, + GtkTreePath *path); #endif /* QUEUE_GENERIC_H */