1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
2 
3 /***************************************************************************
4  *            brasero-project-manager.h
5  *
6  *  mer mai 24 14:22:56 2006
7  *  Copyright  2006  Rouquier Philippe
8  *  brasero-app@wanadoo.fr
9  ***************************************************************************/
10 
11 /*
12  *  Brasero is free software; you can redistribute it and/or modify
13  *  it under the terms of the GNU General Public License as published by
14  *  the Free Software Foundation; either version 2 of the License, or
15  *  (at your option) any later version.
16  *
17  *  Brasero is distributed in the hope that it will be useful,
18  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  *  GNU Library General Public License for more details.
21  *
22  *  You should have received a copy of the GNU General Public License
23  *  along with this program; if not, write to:
24  * 	The Free Software Foundation, Inc.,
25  * 	51 Franklin Street, Fifth Floor
26  * 	Boston, MA  02110-1301, USA.
27  */
28 
29 #ifndef BRASERO_PROJECT_MANAGER_H
30 #define BRASERO_PROJECT_MANAGER_H
31 
32 #include <glib.h>
33 #include <glib-object.h>
34 
35 #include <gtk/gtk.h>
36 
37 #include "brasero-medium.h"
38 #include "brasero-project-parse.h"
39 #include "brasero-project-type-chooser.h"
40 #include "brasero-session-cfg.h"
41 
42 G_BEGIN_DECLS
43 
44 #define BRASERO_TYPE_PROJECT_MANAGER         (brasero_project_manager_get_type ())
45 #define BRASERO_PROJECT_MANAGER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), BRASERO_TYPE_PROJECT_MANAGER, BraseroProjectManager))
46 #define BRASERO_PROJECT_MANAGER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), BRASERO_TYPE_PROJECT_MANAGER, BraseroProjectManagerClass))
47 #define BRASERO_IS_PROJECT_MANAGER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), BRASERO_TYPE_PROJECT_MANAGER))
48 #define BRASERO_IS_PROJECT_MANAGER_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), BRASERO_TYPE_PROJECT_MANAGER))
49 #define BRASERO_PROJECT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BRASERO_TYPE_PROJECT_MANAGER, BraseroProjectManagerClass))
50 
51 typedef struct BraseroProjectManagerPrivate BraseroProjectManagerPrivate;
52 
53 typedef struct {
54 	GtkNotebook parent;
55 	BraseroProjectManagerPrivate *priv;
56 } BraseroProjectManager;
57 
58 typedef struct {
59 	GtkNotebookClass parent_class;
60 } BraseroProjectManagerClass;
61 
62 GType brasero_project_manager_get_type (void);
63 GtkWidget *brasero_project_manager_new (void);
64 
65 gboolean
66 brasero_project_manager_open_session (BraseroProjectManager *manager,
67                                       BraseroSessionCfg *session);
68 
69 void
70 brasero_project_manager_empty (BraseroProjectManager *manager);
71 
72 /**
73  * returns the path of the project that was saved. NULL otherwise.
74  */
75 
76 gboolean
77 brasero_project_manager_save_session (BraseroProjectManager *manager,
78 				      const gchar *path,
79 				      gchar **saved_uri,
80 				      gboolean cancellable);
81 
82 void
83 brasero_project_manager_register_ui (BraseroProjectManager *manager,
84 				     GtkUIManager *ui_manager);
85 
86 void
87 brasero_project_manager_switch (BraseroProjectManager *manager,
88 				BraseroProjectType type,
89 				gboolean reset);
90 
91 G_END_DECLS
92 
93 #endif /* BRASERO_PROJECT_MANAGER_H */
94