tweak button joiner colors by making them grab border color from the relevant button...
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 3 Feb 2012 19:10:39 +0000 (19:10 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 3 Feb 2012 19:10:39 +0000 (19:10 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@11441 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/button_joiner.cc
gtk2_ardour/button_joiner.h

index 506b208f226cc7e21f66f0b8a72351df2d68cf0f..a12b35bf512c18a0f85768d50a23a554767d7b84 100644 (file)
 
 using namespace Gtk;
 
-ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& l, Gtk::Widget& r)
-       : left (l)
-       , right (r)
+ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& lw, Gtk::Widget& rw)
+       : left (lw)
+       , right (rw)
        , name (str)
        , active_fill_pattern (0)
        , inactive_fill_pattern (0)
 {
        packer.set_homogeneous (true);
-       packer.pack_start (l);
-       packer.pack_start (r);
+       packer.pack_start (left);
+       packer.pack_start (right);
        packer.show ();
 
        align.add (packer);
@@ -35,12 +35,22 @@ ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& l, Gtk::Widget&
        add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|
                    Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
 
+       uint32_t border_color;
+       uint32_t r, g, b, a;
+
+       border_color = ARDOUR_UI::config()->color_by_name (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;
+
        /* child cairo widgets need the color of the inner edge as their
         * "background"
         */
 
        Gdk::Color col;
-       col.set_rgb_p (0.172, 0.192, 0.364);
+       col.set_rgb_p (border_r, border_g, border_b);
        provide_background_for_cairo_widget (*this, col);
 }
 
@@ -71,7 +81,7 @@ ButtonJoiner::render (cairo_t* cr)
        /* outer edge */
 
        cairo_set_line_width (cr, 1);
-       cairo_set_source_rgb (cr, 0.172, 0.192, 0.364);
+       cairo_set_source_rgb (cr, border_r, border_g, border_b);
        cairo_stroke (cr);
 
        /* inner "edge" */
index 1f0fc573ca3e689437edafce89c85d63d2220d81..b7e734a11d5844ab40cfda87eca0fa013835a91f 100644 (file)
@@ -35,7 +35,9 @@ class ButtonJoiner : public CairoWidget, public Gtkmm2ext::Activatable {
        std::string    name;
        cairo_pattern_t* active_fill_pattern;
        cairo_pattern_t* inactive_fill_pattern;
-
+       double         border_r;
+       double         border_g;
+       double         border_b;
        void set_colors ();
 };