X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Fbutton_joiner.cc;h=eaa22363aad7b6e2639d701dadcd720dfdd6b9c5;hb=9436d0cb867e4a923cb5a8bc459fe62cb4d3a70e;hp=59affc646f583cdd6fe977a427e591d385c08607;hpb=1d42ed077e555a83a93bac436547e7c378ee0c00;p=ardour.git diff --git a/gtk2_ardour/button_joiner.cc b/gtk2_ardour/button_joiner.cc index 59affc646f..eaa22363aa 100644 --- a/gtk2_ardour/button_joiner.cc +++ b/gtk2_ardour/button_joiner.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Paul Davis + 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 @@ -78,7 +78,7 @@ ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& lw, Gtk::Widget 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; @@ -101,10 +101,11 @@ ButtonJoiner::~ButtonJoiner () } void -ButtonJoiner::render (cairo_t* cr, cairo_rectangle_t*) +ButtonJoiner::render (Cairo::RefPtr const& ctx, cairo_rectangle_t*) { + cairo_t* cr = ctx->cobj(); double h = get_height(); - + if (!get_active()) { cairo_set_source (cr, inactive_fill_pattern); } else { @@ -113,26 +114,26 @@ ButtonJoiner::render (cairo_t* cr, cairo_rectangle_t*) 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); @@ -146,7 +147,7 @@ ButtonJoiner::render (cairo_t* cr, cairo_rectangle_t*) 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); } } } @@ -187,7 +188,7 @@ ButtonJoiner::set_related_action (Glib::RefPtr 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)); @@ -203,7 +204,7 @@ ButtonJoiner::action_sensitivity_changed () } else { set_visual_state (Gtkmm2ext::VisualState (visual_state() | Gtkmm2ext::Insensitive)); } - + } void @@ -231,7 +232,7 @@ ButtonJoiner::action_toggled () if (tact) { set_active (tact->get_active()); } -} +} void ButtonJoiner::set_active_state (Gtkmm2ext::ActiveState s)