From cde108107dedac3c2569e477e4beb5aa0daebcbe Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 3 Feb 2012 19:10:39 +0000 Subject: tweak button joiner colors by making them grab border color from the relevant button type git-svn-id: svn://localhost/ardour2/branches/3.0@11441 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/button_joiner.cc | 24 +++++++++++++++++------- gtk2_ardour/button_joiner.h | 4 +++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/gtk2_ardour/button_joiner.cc b/gtk2_ardour/button_joiner.cc index 506b208f22..a12b35bf51 100644 --- a/gtk2_ardour/button_joiner.cc +++ b/gtk2_ardour/button_joiner.cc @@ -13,16 +13,16 @@ 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" */ diff --git a/gtk2_ardour/button_joiner.h b/gtk2_ardour/button_joiner.h index 1f0fc573ca..b7e734a11d 100644 --- a/gtk2_ardour/button_joiner.h +++ b/gtk2_ardour/button_joiner.h @@ -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 (); }; -- cgit v1.2.3