chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Support global prefs through eclient interface.
[disorder]
/
disobedience
/
queue-generic.h
diff --git
a/disobedience/queue-generic.h
b/disobedience/queue-generic.h
index 2bf33e7583020c258ed4304834e326e3d80cb4c3..b774f226f838d4b5f2b726970d4b06d741ee8d25 100644
(file)
--- a/
disobedience/queue-generic.h
+++ b/
disobedience/queue-generic.h
@@
-1,21
+1,22
@@
/*
* This file is part of DisOrder
/*
* This file is part of DisOrder
- * Copyright (C) 2006-200
8
Richard Kettlewell
+ * Copyright (C) 2006-200
9
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
* 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.
*
* (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
+ * G
NU G
eneral Public License for more details.
+ *
* You should have received a copy of the GNU General Public License
* 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 <http://www.gnu.org/licenses/>.
+ */
+/** @file disobedience/queue-generic.h
+ * @brief Disobedience queue widgets
*/
#ifndef QUEUE_GENERIC_H
#define QUEUE_GENERIC_H
*/
#ifndef QUEUE_GENERIC_H
#define QUEUE_GENERIC_H
@@
-54,7
+55,7
@@
struct queuelike {
const char *name;
/** @brief Initialization function */
const char *name;
/** @brief Initialization function */
- void (*init)(
void
);
+ void (*init)(
struct queuelike *ql
);
/** @brief Columns */
const struct queue_column *columns;
/** @brief Columns */
const struct queue_column *columns;
@@
-91,18
+92,42
@@
struct queuelike {
struct tabtype tabtype;
/** @brief Drag-drop callback, or NULL for no drag+drop
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.
*/
*
* 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 Source target list */
+ const GtkTargetEntry *drag_source_targets;
- /** @brief Stashed drag target row */
- GtkTreePath *drag_target;
+ /** @brief Drag source actions */
+ GdkDragAction drag_source_actions;
+
+ /** @brief Destination target list */
+ const GtkTargetEntry *drag_dest_targets;
+
+ /** @brief Drag destination actions */
+ GdkDragAction drag_dest_actions;
+
};
};
+enum {
+ PLAYABLE_TRACKS_ID,
+ QUEUED_TRACKS_ID,
+ PLAYLIST_TRACKS_ID
+};
+
+#define PLAYABLE_TRACKS (char *)"text/x-disorder-playable-tracks"
+#define QUEUED_TRACKS (char *)"text/x-disorder-queued-tracks"
+#define PLAYLIST_TRACKS (char *)"text/x-disorder-playlist-tracks"
+
enum {
QUEUEPOINTER_COLUMN,
FOREGROUND_COLUMN,
enum {
QUEUEPOINTER_COLUMN,
FOREGROUND_COLUMN,
@@
-111,15
+136,8
@@
enum {
EXTRA_COLUMNS
};
EXTRA_COLUMNS
};
-/* TODO probably need to set "horizontal-separator" to 0, but can't find any
- * coherent description of how to set style properties in isolation. */
-#define BG_PLAYING 0
-#define FG_PLAYING 0
-
-#ifndef BG_PLAYING
-# define BG_PLAYING "#e0ffe0"
-# define FG_PLAYING "black"
-#endif
+#define BG_PLAYING "#e0ffe0"
+#define FG_PLAYING "black"
extern struct queuelike ql_queue;
extern struct queuelike ql_recent;
extern struct queuelike ql_queue;
extern struct queuelike ql_recent;
@@
-145,10
+163,14
@@
void ql_remove_activate(GtkMenuItem *menuitem,
int ql_play_sensitive(void *extra);
void ql_play_activate(GtkMenuItem *menuitem,
gpointer user_data);
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);
GtkWidget *init_queuelike(struct queuelike *ql);
gboolean ql_button_release(GtkWidget *widget,
GdkEventButton *event,
gpointer user_data);
GtkWidget *init_queuelike(struct queuelike *ql);
+void destroy_queuelike(struct queuelike *ql);
void ql_update_list_store(struct queuelike *ql) ;
void ql_update_row(struct queue_entry *q,
GtkTreeIter *iter);
void ql_update_list_store(struct queuelike *ql) ;
void ql_update_row(struct queue_entry *q,
GtkTreeIter *iter);
@@
-165,6
+187,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 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 */
#endif /* QUEUE_GENERIC_H */