add new clear-gray color theme
[ardour.git] / gtk2_ardour / button_joiner.cc
index 085d5d30b2113f2bb8b6cbd8c39af3c8ae16eb6f..a3ef36ac80327bd17bdc6a9ce612ef98cc1a6ca8 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.
+
+*/
+
 #include <iostream>
 #include <algorithm>
 
 #include "gtkmm2ext/utils.h"
 #include "gtkmm2ext/rgb_macros.h"
 
-#include "ardour_ui.h"
 #include "button_joiner.h"
+#include "tooltips.h"
+#include "ui_config.h"
 
 using namespace Gtk;
+using namespace ARDOUR_UI_UTILS;
 
 ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& lw, Gtk::Widget& rw, bool central_joiner)
        : left (lw)
@@ -55,9 +76,9 @@ ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& lw, Gtk::Widget
        uint32_t border_color;
        uint32_t r, g, b, a;
 
-       border_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: border end", name));
+       border_color = UIConfiguration::instance().color (string_compose ("%1: border end", name));
        UINT_TO_RGBA (border_color, &r, &g, &b, &a);
-       
+
        border_r = r/255.0;
        border_g = g/255.0;
        border_b = b/255.0;
@@ -80,10 +101,10 @@ ButtonJoiner::~ButtonJoiner ()
 }
 
 void
-ButtonJoiner::render (cairo_t* cr)
+ButtonJoiner::render (cairo_t* cr, cairo_rectangle_t*)
 {
        double h = get_height();
-       
+
        if (!get_active()) {
                cairo_set_source (cr, inactive_fill_pattern);
        } else {
@@ -92,26 +113,26 @@ ButtonJoiner::render (cairo_t* cr)
 
        if (!central_link) {
                /* outer rect */
-               
+
                Gtkmm2ext::rounded_top_rectangle (cr, 0, 0, get_width(), h, 8);
                cairo_fill_preserve (cr);
-               
+
                /* outer edge */
-               
+
                cairo_set_line_width (cr, 1.5);
                cairo_set_source_rgb (cr, border_r, border_g, border_b);
                cairo_stroke (cr);
-               
+
                /* inner "edge" */
-               
+
                Gtkmm2ext::rounded_top_rectangle (cr, 8, 8, get_width() - 16, h - 8, 6);
                cairo_stroke (cr);
        } else {
                if (get_active()) {
                        Gtkmm2ext::rounded_top_rectangle (cr, 0, 0, (get_width() - 20.0)/2.0 , h, 8);
                        cairo_fill_preserve (cr);
-                       
-                       Gtkmm2ext::rounded_top_rectangle (cr, (get_width() - 20.)/2.0 + 20.0, 0.0, 
+
+                       Gtkmm2ext::rounded_top_rectangle (cr, (get_width() - 20.)/2.0 + 20.0, 0.0,
                                                          (get_width() - 20.0)/2.0 , h, 8);
                        cairo_fill_preserve (cr);
 
@@ -125,7 +146,7 @@ ButtonJoiner::render (cairo_t* cr)
                        cairo_set_line_width (cr, 1.5);
                        cairo_fill_preserve (cr);
                        cairo_set_source_rgb (cr, border_r, border_g, border_b);
-                       cairo_stroke (cr);              
+                       cairo_stroke (cr);
                }
        }
 }
@@ -166,7 +187,7 @@ ButtonJoiner::set_related_action (Glib::RefPtr<Action> act)
                if (tact) {
                        action_toggled ();
                        tact->signal_toggled().connect (sigc::mem_fun (*this, &ButtonJoiner::action_toggled));
-               } 
+               }
 
                _action->connect_property_changed ("sensitive", sigc::mem_fun (*this, &ButtonJoiner::action_sensitivity_changed));
                _action->connect_property_changed ("visible", sigc::mem_fun (*this, &ButtonJoiner::action_visibility_changed));
@@ -182,7 +203,7 @@ ButtonJoiner::action_sensitivity_changed ()
        } else {
                set_visual_state (Gtkmm2ext::VisualState (visual_state() | Gtkmm2ext::Insensitive));
        }
-       
+
 }
 
 void
@@ -199,7 +220,7 @@ void
 ButtonJoiner::action_tooltip_changed ()
 {
        std::string str = _action->property_tooltip().get_value();
-       ARDOUR_UI::instance()->set_tip (*this, str);
+       set_tooltip (*this, str);
 }
 
 void
@@ -210,7 +231,7 @@ ButtonJoiner::action_toggled ()
        if (tact) {
                set_active (tact->get_active());
        }
-}      
+}
 
 void
 ButtonJoiner::set_active_state (Gtkmm2ext::ActiveState s)
@@ -237,15 +258,15 @@ ButtonJoiner::set_colors ()
        active_fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
        inactive_fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
 
-       start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start", name));
-       end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end", name));
+       start_color = UIConfiguration::instance().color (string_compose ("%1: fill start", name));
+       end_color = UIConfiguration::instance().color (string_compose ("%1: fill end", name));
        UINT_TO_RGBA (start_color, &r, &g, &b, &a);
        cairo_pattern_add_color_stop_rgba (inactive_fill_pattern, 0, r/255.0,g/255.0,b/255.0, a/255.0);
        UINT_TO_RGBA (end_color, &r, &g, &b, &a);
        cairo_pattern_add_color_stop_rgba (inactive_fill_pattern, 1, r/255.0,g/255.0,b/255.0, a/255.0);
 
-       start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start active", name));
-       end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end active", name));
+       start_color = UIConfiguration::instance().color (string_compose ("%1: fill start active", name));
+       end_color = UIConfiguration::instance().color (string_compose ("%1: fill end active", name));
        UINT_TO_RGBA (start_color, &r, &g, &b, &a);
        cairo_pattern_add_color_stop_rgba (active_fill_pattern, 0, r/255.0,g/255.0,b/255.0, a/255.0);
        UINT_TO_RGBA (end_color, &r, &g, &b, &a);