X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/0fb5e8f3c060e54ab596f4a901d3e6a2869041e9..b78709940eae7782a365f158d4a89b2f2d6bfea6:/disobedience/queue-generic.h diff --git a/disobedience/queue-generic.h b/disobedience/queue-generic.h index 1888602..fdf37a9 100644 --- a/disobedience/queue-generic.h +++ b/disobedience/queue-generic.h @@ -2,20 +2,21 @@ * This file is part of DisOrder * Copyright (C) 2006-2008 Richard Kettlewell * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA + * along with this program. If not, see . + */ +/** @file disobedience/queue-generic.h + * @brief Disobedience queue widgets */ #ifndef QUEUE_GENERIC_H #define QUEUE_GENERIC_H @@ -54,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; @@ -89,6 +90,18 @@ struct queuelike { /** @brief Menu callbacks */ struct tabtype tabtype; + + /** @brief Drag-drop callback, or NULL for no drag+drop + * @param src Row to move + * @param dst Destination position + * + * If the rearrangement is impossible then the displayed queue must be put + * back. + */ + void (*drop)(struct queuelike *ql, int src, int dst); + + /** @brief Stashed drag target row */ + GtkTreePath *drag_target; }; enum { @@ -133,6 +146,9 @@ void ql_remove_activate(GtkMenuItem *menuitem, int ql_play_sensitive(void *extra); void ql_play_activate(GtkMenuItem *menuitem, gpointer user_data); +int ql_adopt_sensitive(void *extra); +void ql_adopt_activate(GtkMenuItem *menuitem, + gpointer user_data); gboolean ql_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data);