add new clear-gray color theme
[ardour.git] / gtk2_ardour / export_file_notebook.h
index 4eed7dc2008855a157db3239a480f6ee941dea29..43f64bf87ebb84e4099f4196c177ee6231a5bc03 100644 (file)
 #include <gtkmm.h>
 
 #include "ardour/export_profile_manager.h"
+#include "ardour/session_handle.h"
 
 #include "export_format_selector.h"
 #include "export_filename_selector.h"
+#include "soundcloud_export_selector.h"
 
-namespace ARDOUR {
-       class Session;
-}
-
-
-class ExportFileNotebook : public Gtk::Notebook
+class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr
 {
   public:
 
@@ -42,8 +39,9 @@ class ExportFileNotebook : public Gtk::Notebook
 
        void set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr<ARDOUR::ExportProfileManager> manager);
        void sync_with_manager ();
+       void update_example_filenames();
 
-       Glib::ustring get_nth_format_name (uint32_t n);
+       boost::shared_ptr<SoundcloudExportSelector> soundcloud_export_selector;
 
        sigc::signal<void> CriticalSelectionChanged;
 
@@ -55,12 +53,12 @@ class ExportFileNotebook : public Gtk::Notebook
        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 ();
+       void update_soundcloud_upload ();
 
        sigc::connection page_change_connection;
        void handle_page_change (GtkNotebookPage*, uint32_t page);
@@ -82,7 +80,10 @@ class ExportFileNotebook : public Gtk::Notebook
 
                Gtk::Widget & get_tab_widget () { return tab_widget; }
                void set_remove_sensitive (bool value);
-               Glib::ustring get_format_name () const;
+               std::string get_format_name () const;
+               bool get_soundcloud_upload () const;
+
+               void update_example_filename();
 
                ARDOUR::ExportProfileManager::FormatStatePtr   get_format_state () const { return format_state; }
                ARDOUR::ExportProfileManager::FilenameStatePtr get_filename_state () const { return filename_state; }
@@ -92,6 +93,8 @@ class ExportFileNotebook : public Gtk::Notebook
          private:
                void save_format_to_manager (FormatPtr format);
                void update_tab_label ();
+               void critical_selection_changed ();
+               void analysis_changed ();
 
                ARDOUR::ExportProfileManager::FormatStatePtr   format_state;
                ARDOUR::ExportProfileManager::FilenameStatePtr filename_state;
@@ -102,11 +105,14 @@ class ExportFileNotebook : public Gtk::Notebook
                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::CheckButton        soundcloud_upload_button;
+               Gtk::CheckButton        analysis_button;
                Gtk::HBox               tab_widget;
                Gtk::Label              tab_label;
                Gtk::Alignment          tab_close_alignment;