1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 3 /* 4 * Goo 5 * 6 * Copyright (C) 2004 Free Software Foundation, Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef GOO_WINDOW_H 23 #define GOO_WINDOW_H 24 25 #include <gtk/gtk.h> 26 #include <brasero3/brasero-drive.h> 27 #include "album-info.h" 28 #include "goo-player.h" 29 30 #define GOO_TYPE_WINDOW (goo_window_get_type ()) 31 #define GOO_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_WINDOW, GooWindow)) 32 #define GOO_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_WINDOW_TYPE, GooWindowClass)) 33 #define GOO_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_WINDOW)) 34 #define GOO_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_WINDOW)) 35 #define GOO_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GOO_TYPE_WINDOW, GooWindowClass)) 36 37 typedef struct _GooWindow GooWindow; 38 typedef struct _GooWindowClass GooWindowClass; 39 typedef struct _GooWindowPrivate GooWindowPrivate; 40 41 struct _GooWindow 42 { 43 GtkApplicationWindow __parent; 44 GtkWidget *preferences_dialog; 45 GtkWidget *properties_dialog; 46 GooWindowPrivate *priv; 47 }; 48 49 struct _GooWindowClass 50 { 51 GtkApplicationWindowClass __parent_class; 52 53 /*<signals>*/ 54 55 void (*update_cover) (GooWindow *window); 56 }; 57 58 GType goo_window_get_type (void); 59 GtkWidget * goo_window_new (BraseroDrive *drive); 60 void goo_window_close (GooWindow *window); 61 void goo_window_update (GooWindow *window); 62 void goo_window_play (GooWindow *window); 63 void goo_window_play_selected (GooWindow *window); 64 void goo_window_toggle_play (GooWindow *window); 65 void goo_window_stop (GooWindow *window); 66 void goo_window_pause (GooWindow *window); 67 void goo_window_prev (GooWindow *window); 68 void goo_window_next (GooWindow *window); 69 void goo_window_eject (GooWindow *window); 70 void goo_window_set_drive (GooWindow *window, 71 BraseroDrive *drive); 72 AlbumInfo * goo_window_get_album (GooWindow *window); 73 GList * goo_window_get_tracks (GooWindow *window, 74 gboolean selection); 75 GooPlayer * goo_window_get_player (GooWindow *window); 76 GtkWidget * goo_window_get_player_info (GooWindow *window); 77 void goo_window_update_cover (GooWindow *window); 78 gboolean goo_window_set_cover_image_from_pixbuf 79 (GooWindow *window, 80 GdkPixbuf *image); 81 gboolean goo_window_set_cover_image (GooWindow *window, 82 const char *filename); 83 gboolean goo_window_set_cover_image_from_data (GooWindow *window, 84 void *buffer, 85 gsize count); 86 char * goo_window_get_cover_filename (GooWindow *window); 87 void goo_window_pick_cover_from_disk (GooWindow *window); 88 void goo_window_search_cover_on_internet (GooWindow *window); 89 void goo_window_remove_cover (GooWindow *window); 90 void goo_window_toggle_visibility (GooWindow *window); 91 void goo_window_set_hibernate (GooWindow *window, 92 gboolean hibernate); 93 void goo_window_set_current_cd_autofetch (GooWindow *window, 94 gboolean autofetch); 95 gboolean goo_window_get_current_cd_autofetch (GooWindow *window); 96 97 #endif /* GOO_WINDOW_H */ 98