1 /*  cdrdao - write audio CD-Rs in disc-at-once mode
2  *
3  *  Copyright (C) 2000  Andreas Mueller <mueller@daneb.ping.de>
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19 
20 #ifndef __GCDMASTER_H__
21 #define __GCDMASTER_H__
22 
23 #include <gtkmm.h>
24 #include <gtk/gtk.h>
25 #include <libgnomeuimm.h>
26 #include <libglademm/xml.h>
27 
28 #include <list>
29 
30 class ProjectChooser;
31 class BlankCDDialog;
32 #include "Project.h"
33 #include "BlankCDDialog.h"
34 
35 class GCDMaster : public Gnome::UI::App
36 {
37 public:
38   GCDMaster();
39 
40   bool closeProject();
41   void closeChooser();
42   bool on_delete_event(GdkEventAny* e);
43   bool openNewProject(const char*);
44   void openProject();
45   void newChooserWindow();
46   void newAudioCDProject2();
47   void newAudioCDProject(const char *name, TocEdit *tocEdit,
48                          const char* tracks = NULL);
49   void newDuplicateCDProject();
50   void newDumpCDProject();
51 
52   void update(unsigned long level);
53 
54   void configureDevices();
55   void configurePreferences();
56   void blankCDRW();
57 
58   void registerStockIcons();
59 
60   static void appClose();
61 
62   static std::list<GCDMaster *> apps;
63 
64 private:
65   Project* project_;
66   ProjectChooser* chooser_;
67   gint project_number;
68 
69   BlankCDDialog blankCDDialog_;
70 
71   Gtk::Notebook notebook_;
72 
73   Glib::RefPtr<Gtk::UIManager> m_refUIManager;
74   Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup;
75 
76   Gnome::UI::AppBar* statusbar_;
77   Gtk::ProgressBar* progressbar_;
78   Gtk::Button* progressButton_;
79   Gnome::UI::About* about_;
80 
81   Glib::RefPtr<Gnome::Glade::Xml> m_refPreferencesXml;
82 
83   Gtk::FileChooserDialog* readFileSelector_;
84   void createMenus();
85   void createStatusbar();
86   void aboutDialog();
87 };
88 
89 #endif
90