add new clear-gray color theme
[ardour.git] / gtk2_ardour / latency_gui.h
index 35fad9e2965e0fda4e0c99a768e0742e490624ff..6957f2633acad148c74bef1b9d769f1341b38f5c 100644 (file)
@@ -1,3 +1,22 @@
+/*
+    Copyright (C) 2012 Paul Davis
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
 #ifndef __gtk2_ardour_latency_gui_h__
 #define __gtk2_ardour_latency_gui_h__
 
@@ -20,10 +39,25 @@ namespace ARDOUR {
        class Latent;
 }
 
+class LatencyGUI;
+
+class LatencyBarController : public Gtkmm2ext::BarController
+{
+public:
+       LatencyBarController (Gtk::Adjustment& adj, LatencyGUI* g)
+               : BarController (adj, boost::shared_ptr<PBD::IgnorableControllable> (new PBD::IgnorableControllable ())),
+                 _latency_gui (g) {}
+
+private:
+       LatencyGUI* _latency_gui;
+
+       std::string get_label (double&);
+};
+
 class LatencyGUI : public Gtk::VBox
 {
   public:
-       LatencyGUI (ARDOUR::Latent&, nframes64_t sample_rate, nframes64_t period_size);
+       LatencyGUI (ARDOUR::Latent&, framepos_t sample_rate, framepos_t period_size);
        ~LatencyGUI() { }
 
        void finish ();
@@ -31,16 +65,14 @@ class LatencyGUI : public Gtk::VBox
        void refresh ();
 
   private:
-       std::string get_label (int&);
-
        ARDOUR::Latent& _latent;
-       nframes64_t initial_value;
-       nframes64_t sample_rate;
-       nframes64_t period_size;
+       framepos_t initial_value;
+       framepos_t sample_rate;
+       framepos_t period_size;
        boost::shared_ptr<PBD::IgnorableControllable> ignored;
 
        Gtk::Adjustment adjustment;
-       Gtkmm2ext::BarController bc;
+       LatencyBarController bc;
        Gtk::HBox hbox1;
        Gtk::HBox hbox2;
        Gtk::HButtonBox hbbox;
@@ -51,13 +83,15 @@ class LatencyGUI : public Gtk::VBox
 
        void change_latency_from_button (int dir);
 
+       friend class LatencyBarController;
+
        static std::vector<std::string> unit_strings;
 };
 
 class LatencyDialog : public ArdourDialog
 {
   public:
-       LatencyDialog (const Glib::ustring& title, ARDOUR::Latent&, nframes64_t sample_rate, nframes64_t period_size);
+       LatencyDialog (const std::string& title, ARDOUR::Latent&, framepos_t sample_rate, framepos_t period_size);
        ~LatencyDialog() {}
 
   private: