#include "kvp.h"
#include "eventdist.h"
#include "split.h"
+#include "timeval.h"
#include <glib.h>
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdkkeysyms.h>
/* Types ------------------------------------------------------------------- */
struct choosenode;
struct progress_window;
-/** @brief Callback data structure
- *
- * This program is extremely heavily callback-driven. Rather than have
- * numerous different callback structures we have a single one which can be
- * interpreted adequately both by success and error handlers.
- */
-struct callbackdata {
- void (*onerror)(struct callbackdata *cbd,
- int code,
- const char *msg); /* called on error */
- union {
- const char *key; /* gtkqueue.c op_part_lookup */
- struct choosenode *choosenode; /* gtkchoose.c got_files/got_dirs */
- struct queuelike *ql; /* gtkqueue.c queuelike_completed */
- struct prefdata *f; /* properties.c */
- const char *user; /* users.c */
- struct {
- const char *user, *email; /* users.c */
- } edituser;
- } u;
-};
-
/** @brief Per-tab callbacks
*
* Some of the options in the main menu depend on which tab is displayed, so we
GtkWidget *menubar(GtkWidget *w);
/* Create the menu bar */
-
-void menu_update(int page);
-/* Called whenever the main menu might need to change. PAGE is the current
- * page if known or -1 otherwise. */
void users_set_sensitive(int sensitive);
int queued(const char *track);
/* Return nonzero iff TRACK is queued or playing */
+extern struct queue_entry *playing_track;
+
+/* Lookups */
+const char *namepart(const char *track,
+ const char *context,
+ const char *part);
+long namepart_length(const char *track);
+char *namepart_resolve(const char *track);
+
void namepart_update(const char *track,
const char *context,
const char *part);
/* Called when a namepart might have changed */
-extern struct queue_entry *playing_track;
-
/* Choose */
GtkWidget *choose_widget(void);
/* Called when we think the choose tree might need updating */
void play_completed(void *v,
- const char *error);
+ const char *err);
/* Login details */