fix issue with solo-in-place
[ardour.git] / gtk2_ardour / export_format_selector.h
index d4e4ae01105ec9e6d91b6afabd73b974ba66f894..4af647ac9c8e8355f57b29df142e0778a5465ba9 100644 (file)
 #ifndef __export_format_selector_h__
 #define __export_format_selector_h__
 
-#include <ardour/export_profile_manager.h>
-
+#include <string>
 #include <gtkmm.h>
 #include <sigc++/signal.h>
 #include <boost/shared_ptr.hpp>
 
+#include "ardour/export_profile_manager.h"
+#include "ardour/session_handle.h"
+
 namespace ARDOUR {
-       class Session;
        class ExportFormatSpecification;
        class ExportProfileManager;
 }
 
-/// 
-class ExportFormatSelector : public Gtk::HBox {
+///
+class ExportFormatSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr
+{
 
   private:
 
@@ -45,29 +47,28 @@ class ExportFormatSelector : public Gtk::HBox {
 
        ExportFormatSelector ();
        ~ExportFormatSelector ();
-       
+
        void set_state (ARDOUR::ExportProfileManager::FormatStatePtr state_, ARDOUR::Session * session_);
        void update_format_list ();
-       
+
        sigc::signal<void, FormatPtr> FormatEdited;
        sigc::signal<void, FormatPtr> FormatRemoved;
        sigc::signal<FormatPtr, FormatPtr> NewFormat;
-       
+
        /* Compatibility with other elements */
-       
+
        sigc::signal<void> CriticalSelectionChanged;
 
   private:
 
        void select_format (FormatPtr f);
        void add_new_format ();
-       void remove_format ();
+       void remove_format (bool called_from_button = false);
        int open_edit_dialog (bool new_dialog = false);
        void update_format_combo ();
        void update_format_description ();
 
        ARDOUR::ExportProfileManager::FormatStatePtr state;
-       ARDOUR::Session * session;
 
        /*** GUI componenets ***/
 
@@ -75,8 +76,8 @@ class ExportFormatSelector : public Gtk::HBox {
        {
          public:
                Gtk::TreeModelColumn<FormatPtr>      format;
-               Gtk::TreeModelColumn<Glib::ustring>  label;
-       
+               Gtk::TreeModelColumn<std::string>  label;
+
                FormatCols () { add (format); add (label); }
        };
        FormatCols                   format_cols;