-/* Widget leakage debugging rubbish ---------------------------------------- */
-
-#if MDEBUG
-#define NW(what) do { \
- if(++current##what % 100 > max##what) { \
- fprintf(stderr, "%s:%d: %d %s\n", \
- __FILE__, __LINE__, current##what, #what); \
- max##what = current##what; \
- } \
-} while(0)
-#define WT(what) static int current##what, max##what
-#define DW(what) (--current##what)
-#else
-#define NW(what) do { } while(0)
-#define DW(what) do { } while(0)
-#define WT(what) struct neverused
-#endif
-
-#if MTRACK
-extern const char *mtag;
-#define MTAG(x) do { mtag = x; } while(0)
-#define MTAG_PUSH(x) do { const char *save_mtag = mtag; mtag = x; (void)0
-#define MTAG_POP() mtag = save_mtag; } while(0)
-#else
-#define MTAG(x) do { } while(0)
-#define MTAG_PUSH(x) do {} while(0)
-#define MTAG_POP() do {} while(0)
-#endif
+void play_completed(void *v,
+ const char *err);
+
+extern const GtkTargetEntry choose_targets[];
+
+/* Login details */
+
+void login_box(void);
+
+GtkWidget *login_window;
+
+/* User management */
+
+void manage_users(void);
+
+/* Help */
+
+void popup_help(void);
+
+/* RTP */
+
+int rtp_running(void);
+void start_rtp(void);
+void stop_rtp(void);
+
+/* Settings */
+
+void init_styles(void);
+extern GtkStyle *layout_style;
+extern GtkStyle *title_style;
+extern GtkStyle *even_style;
+extern GtkStyle *odd_style;
+extern GtkStyle *active_style;
+extern GtkStyle *tool_style;
+extern GtkStyle *search_style;
+extern GtkStyle *drag_style;
+
+extern const char *browser;
+
+void save_settings(void);
+void load_settings(void);
+void set_tool_colors(GtkWidget *w);
+void popup_settings(void);
+
+/* Playlists */
+
+void playlists_init(void);
+void playlist_window_create(gpointer callback_data,
+ guint callback_action,
+ GtkWidget *menu_item);
+extern char **playlists;
+extern int nplaylists;
+extern GtkWidget *menu_playlists_widget;
+extern GtkWidget *playlists_menu;
+extern GtkWidget *menu_editplaylists_widget;