Fix ArdourHTTP error reporting
[ardour.git] / gtk2_ardour / export_format_selector.h
index 46d9bc3f069486a18dba139b439cb6fe5af44e5f..2b7d371d0423de54324af3e566d78725af016438 100644 (file)
 #ifndef __export_format_selector_h__
 #define __export_format_selector_h__
 
-#include "ardour/export_profile_manager.h"
-
-#include <gtkmm.h>
+#include <string>
 #include <sigc++/signal.h>
 #include <boost/shared_ptr.hpp>
 
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/treemodel.h>
+
+#include "ardour/export_profile_manager.h"
+#include "ardour/session_handle.h"
+
 namespace ARDOUR {
-       class Session;
        class ExportFormatSpecification;
        class ExportProfileManager;
 }
 
-///
-class ExportFormatSelector : public Gtk::HBox {
-
-  private:
+class ExportFormatSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr
+{
+private:
 
        typedef boost::shared_ptr<ARDOUR::ExportFormatSpecification> FormatPtr;
        typedef std::list<FormatPtr> FormatList;
 
-  public:
+public:
 
        ExportFormatSelector ();
        ~ExportFormatSelector ();
@@ -57,25 +62,24 @@ class ExportFormatSelector : public Gtk::HBox {
 
        sigc::signal<void> CriticalSelectionChanged;
 
-  private:
+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 ***/
 
        struct FormatCols : public Gtk::TreeModelColumnRecord
        {
-         public:
+       public:
                Gtk::TreeModelColumn<FormatPtr>      format;
-               Gtk::TreeModelColumn<Glib::ustring>  label;
+               Gtk::TreeModelColumn<std::string>  label;
 
                FormatCols () { add (format); add (label); }
        };