X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_file_notebook.h;h=35768d72a91958c1858e8fb884d7df391a12c802;hb=d8e93be2ee68fc6a18a7ca17d36ffc67c94207b3;hp=aed9a0fcc2a62a4403cc2c6ebc925ec4857dc447;hpb=ef9beb3f60b5499d4db48b771627b6facfe872d3;p=ardour.git diff --git a/gtk2_ardour/export_file_notebook.h b/gtk2_ardour/export_file_notebook.h index aed9a0fcc2..35768d72a9 100644 --- a/gtk2_ardour/export_file_notebook.h +++ b/gtk2_ardour/export_file_notebook.h @@ -24,89 +24,85 @@ #include #include -#include +#include "ardour/export_profile_manager.h" +#include "ardour/session_handle.h" #include "export_format_selector.h" #include "export_filename_selector.h" -namespace ARDOUR { - class Session; -} - - -class ExportFileNotebook : public Gtk::Notebook +class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr { public: - + ExportFileNotebook (); - + void set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr manager); void sync_with_manager (); - + Glib::ustring get_nth_format_name (uint32_t n); - + sigc::signal CriticalSelectionChanged; - + private: typedef boost::shared_ptr ManagerPtr; typedef boost::shared_ptr FormatPtr; typedef boost::shared_ptr FilenamePtr; class FilePage; - + ManagerPtr profile_manager; - ARDOUR::Session * session; void add_new_file_page (); void add_file_page (ARDOUR::ExportProfileManager::FormatStatePtr format_state, ARDOUR::ExportProfileManager::FilenameStatePtr filename_state); void remove_file_page (FilePage * page); void update_remove_file_page_sensitivity (); - + sigc::connection page_change_connection; void handle_page_change (GtkNotebookPage*, uint32_t page); - + Gtk::HBox new_file_hbox; Gtk::Button new_file_button; Gtk::VBox new_file_dummy; - + uint32_t last_visible_page; uint32_t page_counter; class FilePage : public Gtk::VBox { public: - FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number, + FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number, ARDOUR::ExportProfileManager::FormatStatePtr format_state, ARDOUR::ExportProfileManager::FilenameStatePtr filename_state); - + virtual ~FilePage (); - + Gtk::Widget & get_tab_widget () { return tab_widget; } void set_remove_sensitive (bool value); Glib::ustring get_format_name () const; - + ARDOUR::ExportProfileManager::FormatStatePtr get_format_state () const { return format_state; } ARDOUR::ExportProfileManager::FilenameStatePtr get_filename_state () const { return filename_state; } - + sigc::signal CriticalSelectionChanged; - + private: void save_format_to_manager (FormatPtr format); void update_tab_label (); - + ARDOUR::ExportProfileManager::FormatStatePtr format_state; ARDOUR::ExportProfileManager::FilenameStatePtr filename_state; ManagerPtr profile_manager; - + /* GUI components */ - + Gtk::Label format_label; Gtk::Alignment format_align; ExportFormatSelector format_selector; - + PBD::ScopedConnection format_connection; + Gtk::Label filename_label; Gtk::Alignment filename_align; ExportFilenameSelector filename_selector; - + Gtk::HBox tab_widget; Gtk::Label tab_label; Gtk::Alignment tab_close_alignment;