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