Remove no-longer-needed file.
[ardour.git] / gtk2_ardour / export_dialog.h
index 1895e5c3feaa3c20e04551d57edeedca3cf5d429..835c220c2331f1b7d9a0697bc7aa68da0a03525f 100644 (file)
@@ -21,7 +21,8 @@
 #ifndef __export_dialog_h__
 #define __export_dialog_h__
 
-#include <boost/shared_ptr.hpp>
+#include <boost/scoped_ptr.hpp>
+#include <string>
 
 #include "ardour/export_profile_manager.h"
 
@@ -34,8 +35,6 @@
 
 #include <gtkmm.h>
 
-#include "i18n.h"
-
 namespace ARDOUR {
        class ExportStatus;
        class ExportHandler;
@@ -48,7 +47,7 @@ class ExportDialog : public ArdourDialog {
 
   public:
 
-       explicit ExportDialog (PublicEditor & editor, Glib::ustring title = _("Export"));
+       ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name);
        ~ExportDialog ();
 
        void set_session (ARDOUR::Session* s);
@@ -66,6 +65,7 @@ class ExportDialog : public ArdourDialog {
        typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
        typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr;
 
+       std::string     xml_node_name;
        HandlerPtr      handler;
        ManagerPtr      profile_manager;
 
@@ -75,10 +75,13 @@ class ExportDialog : public ArdourDialog {
        // Must initialize all the shared_ptrs below
        virtual void init_components ();
 
-       boost::shared_ptr<ExportPresetSelector>   preset_selector;
-       boost::shared_ptr<ExportTimespanSelector> timespan_selector;
-       boost::shared_ptr<ExportChannelSelector>  channel_selector;
-       boost::shared_ptr<ExportFileNotebook>     file_notebook;
+       // Override if the channel selector should not be grown
+       virtual bool channel_selector_is_expandable() { return true; }
+
+       boost::scoped_ptr<ExportPresetSelector>   preset_selector;
+       boost::scoped_ptr<ExportTimespanSelector> timespan_selector;
+       boost::scoped_ptr<ExportChannelSelector>  channel_selector;
+       boost::scoped_ptr<ExportFileNotebook>     file_notebook;
 
        Gtk::VBox                                 warning_widget;
        Gtk::VBox                                 progress_widget;
@@ -90,11 +93,13 @@ class ExportDialog : public ArdourDialog {
 
        void init ();
 
+       void expanded_changed();
+
        void notify_errors ();
        void close_dialog ();
 
        void sync_with_manager ();
-       void update_warnings ();
+       void update_warnings_and_example_filename ();
        void show_conflicting_files ();
 
        void export_rt ();
@@ -107,29 +112,34 @@ class ExportDialog : public ArdourDialog {
 
        PublicEditor &  editor;
        StatusPtr       status;
+       PBD::ScopedConnection abort_connection;
 
        /*** GUI components ***/
 
+       Glib::RefPtr<Gtk::SizeGroup> advanced_sizegroup;
+       Gtk::Expander * advanced;
+
        /* Warning area */
 
        Gtk::HBox           warn_hbox;
        Gtk::Label          warn_label;
-       Glib::ustring       warn_string;
+       std::string       warn_string;
 
        Gtk::HBox           list_files_hbox;
        Gtk::Label          list_files_label;
        Gtk::Button         list_files_button;
-       Glib::ustring       list_files_string;
+       std::string       list_files_string;
 
-       void add_error (Glib::ustring const & text);
-       void add_warning (Glib::ustring const & text);
+       void add_error (std::string const & text);
+       void add_warning (std::string const & text);
 
        /* Progress bar */
 
-       Gtk::Label              progress_label;
        Gtk::ProgressBar        progress_bar;
        sigc::connection        progress_connection;
 
+       float previous_progress; // Needed for gtk bug workaround
+
        /* Buttons */
 
        Gtk::Button *           cancel_button;
@@ -141,12 +151,12 @@ class ExportDialog : public ArdourDialog {
 class ExportRangeDialog : public ExportDialog
 {
   public:
-       ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id);
+       ExportRangeDialog (PublicEditor & editor, std::string range_id);
 
   private:
        void init_components ();
 
-       Glib::ustring range_id;
+       std::string range_id;
 };
 
 class ExportSelectionDialog : public ExportDialog
@@ -160,9 +170,12 @@ class ExportSelectionDialog : public ExportDialog
 
 class ExportRegionDialog : public ExportDialog
 {
-       public:
+  public:
        ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track);
 
+  protected:
+       virtual bool channel_selector_is_expandable() { return false; }
+
   private:
        void init_gui ();
        void init_components ();
@@ -171,4 +184,13 @@ class ExportRegionDialog : public ExportDialog
        ARDOUR::AudioTrack & track;
 };
 
+class StemExportDialog : public ExportDialog
+{
+  public:
+       StemExportDialog (PublicEditor & editor);
+
+  private:
+       void init_components ();
+};
+
 #endif /* __ardour_export_dialog_h__ */