Move ARDOUR_UI::ui_scale into UIConfiguration class
[ardour.git] / gtk2_ardour / ardour_ui.h
index 6cce503511a92a9a4398c31bf20f29da59b506f7..f2ad1bb0d60fc5686a5120deb71d23d92d26a346 100644 (file)
@@ -102,6 +102,7 @@ class Mixer_UI;
 class PublicEditor;
 class RCOptionEditor;
 class RouteParams_UI;
+class SaveAsDialog;
 class SessionDialog;
 class SessionOptionEditor;
 class ShuttleControl;
@@ -139,7 +140,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        UIConfiguration*     ui_config;
 
     public:
-        ARDOUR_UI (int *argcp, char **argvp[], const char* localedir);
+       ARDOUR_UI (int *argcp, char **argvp[], const char* localedir, UIConfiguration*);
        ~ARDOUR_UI();
 
        bool run_startup (bool should_be_new, std::string load_template);
@@ -186,7 +187,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        static ARDOUR_UI *instance () { return theArdourUI; }
        static UIConfiguration *config () { return theArdourUI->ui_config; }
        
-       PublicEditor&     the_editor(){return *editor;}
+       PublicEditor&     the_editor() { return *editor;}
        Mixer_UI* the_mixer() { return mixer; }
 
        void new_midi_tracer_window ();
@@ -196,8 +197,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        Gtk::Tooltips& tooltips() { return _tooltips; }
 
-       Gtk::HBox& editor_transport_box() { return _editor_transport_box; }
-
        static PublicEditor* _instance;
 
        /** Emitted frequently with the audible frame, false, and the edit point as
@@ -308,6 +307,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
         int disconnect_from_engine ();
         int reconnect_to_engine ();
+       void hide_application ();
 
   protected:
        friend class PublicEditor;
@@ -335,6 +335,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        NSM_Client*          nsm;
        bool                _was_dirty;
         bool                _mixer_on_top;
+        bool                _initial_verbose_plugin_scan;
         bool first_time_engine_run;
 
        void goto_editor_window ();
@@ -393,7 +394,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        Gtkmm2ext::TearOff*      transport_tearoff;
        Gtk::Frame               transport_frame;
        Gtk::HBox                transport_tearoff_hbox;
-       Gtk::HBox               _editor_transport_box;
        Gtk::HBox                transport_hbox;
        Gtk::Fixed               transport_base;
        Gtk::Fixed               transport_button_base;
@@ -501,34 +501,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        Gtk::Menu*        session_popup_menu;
 
-       struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord {
-           RecentSessionModelColumns() {
-                   add (visible_name);
-                   add (tip);
-                   add (fullpath);
-           }
-           Gtk::TreeModelColumn<std::string> visible_name;
-           Gtk::TreeModelColumn<std::string> tip;
-           Gtk::TreeModelColumn<std::string> fullpath;
-       };
-
-       RecentSessionModelColumns    recent_session_columns;
-       Gtk::TreeView                recent_session_display;
-       Glib::RefPtr<Gtk::TreeStore> recent_session_model;
-
-       ArdourDialog*     session_selector_window;
-       Gtk::FileChooserDialog* open_session_selector;
-
-       void build_session_selector();
-       void redisplay_recent_sessions();
-       void recent_session_row_activated (const Gtk::TreePath& path, Gtk::TreeViewColumn* col);
-
-       struct RecentSessionsSorter {
-               bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
-                   return ARDOUR::cmp_nocase(a.first, b.first) == -1;
-           }
-       };
-
        /* menu bar and associated stuff */
 
        Gtk::MenuBar* menu_bar;
@@ -550,6 +522,12 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        Gtk::Label   cpu_load_label;
        void update_cpu_load ();
 
+       Gtk::Label   xrun_label;
+       void update_xrun_count ();
+
+       Gtk::Label   peak_thread_work_label;
+       void update_peak_thread_work ();
+
        Gtk::Label   buffer_load_label;
        void update_buffer_load ();
 
@@ -616,6 +594,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        guint32  last_key_press_time;
 
        void snapshot_session (bool switch_to_it);
+
+       SaveAsDialog* save_as_dialog;
+
        bool save_as_progress_update (float fraction, int64_t cnt, int64_t total, Gtk::Label* label, Gtk::ProgressBar* bar);
        void save_session_as ();
        void rename_session ();
@@ -682,6 +663,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        void display_cleanup_results (ARDOUR::CleanupReport& rep, const gchar* list_title, const bool msg_delete);
        void cleanup ();
+       void cleanup_peakfiles ();
        void flush_trash ();
 
        bool have_configure_timeout;
@@ -789,6 +771,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        void resize_text_widgets ();
 
+       bool xrun_button_release (GdkEventButton* ev);
+
         std::string _announce_string;
         void check_announcements ();