1 #ifndef GBEMOL_APP_H
2 #define GBEMOL_APP_H
3 
4 #include <gtk/gtk.h>
5 #include <stdarg.h>
6 #include "gbemol-mpd.h"
7 #include "gbemol-library.h"
8 #include "gbemol-info.h"
9 #include "gbemol-playlist.h"
10 
11 #define ICON_FILE PIXMAPS_DIR"/gbemol.png"
12 
13 #define GBEMOL_VERSION "0.3.2"
14 
15 /*
16  * Type macros.
17  */
18 
19 G_BEGIN_DECLS
20 
21 #define GBEMOL_TYPE_APP         (gbemol_app_get_type ())
22 #define GBEMOL_APP(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GBEMOL_TYPE_APP, GbemolApp))
23 #define GBEMOL_APP_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), GBEMOL_TYPE_APP, GbemolAppClass))
24 #define GBEMOL_IS_APP(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GBEMOL_TYPE_APP))
25 #define GBEMOL_IS_APP_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GBEMOL_TYPE_APP))
26 #define GBEMOL_APP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GBEMOL_TYPE_APP, GbemolAppClass))
27 
28 #define GBEMOL_DEFAULT_HEIGHT 120
29 #define GBEMOL_DEFAULT_WIDTH  500
30 
31 typedef struct _GbemolApp GbemolApp;
32 typedef struct _GbemolAppClass GbemolAppClass;
33 typedef struct _GbemolAppPrivate GbemolAppPrivate;
34 
35 struct _GbemolApp {
36 	GtkContainer parent;
37 
38 	GbemolMpd* mpd;
39 	GbemolLibrary* lib;
40 	GbemolPlaylist* pls;
41 	GbemolInfo* info;
42 
43 	GtkWidget* notebook;
44 	GbemolAppPrivate* priv;
45 };
46 
47 struct _GbemolAppClass {
48 	GtkContainerClass parent;
49 };
50 
51 GType gbemol_app_get_type (void);
52 
53 GbemolApp* gbemol_app_new (void);
54 void gbemol_app_set_mpd (GbemolApp* app, GbemolMpd* mpd);
55 void gbemol_app_connect_mpd (GbemolApp* app);
56 void gbemol_app_set_song (GbemolApp* app, GbemolMpdSong* song);
57 void gbemol_app_set_status (GbemolApp* app, gchar *context, gchar *msg, ...);
58 void gbemol_app_set_state (GbemolApp* app);
59 void gbemol_app_destroy (GbemolApp* app);
60 void gbemol_app_set_connected (GbemolApp* app, gboolean connected);
61 void gbemol_app_connect_mpd (GbemolApp* app);
62 void gbemol_app_set_time (GbemolApp* app, int elapsed, int total);
63 void gbemol_app_set_volume (GbemolApp* app, gint volume);
64 void gbemol_app_set_random (GbemolApp* app, gboolean random);
65 void gbemol_app_set_repeat (GbemolApp* app, gboolean repeat);
66 void gbemol_app_create_status_icon (GbemolApp* obj);
67 void gbemol_app_destroy_status_icon (GbemolApp* obj);
68 void gbemol_app_error_dialog_new (GbemolApp* app, gchar* primary_msg, gchar* secondary_msg);
69 void gbemol_app_reconnect_dialog_new (GbemolApp* app, gchar* msg);
70 void gbemol_app_set_top (GbemolApp* app, gboolean top);
71 void gbemol_app_set_stick (GbemolApp* app, gboolean stick);
72 void gbemol_app_show (GbemolApp* app);
73 void gbemol_app_hide (GbemolApp* app);
74 void gbemol_app_full_mode (GbemolApp* app);
75 void gbemol_app_compact_mode (GbemolApp* app);
76 
77 G_END_DECLS
78 
79 #endif
80