+ 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,
+ (get_width() - 20.0)/2.0 , h, 8);
+ cairo_fill_preserve (cr);
+
+ cairo_move_to (cr, get_width()/2.0 - 10.0, h/2.0);
+ cairo_set_line_width (cr, 1.5);
+ cairo_rel_line_to (cr, 20.0, 0.0);
+ cairo_set_source (cr, active_fill_pattern);
+ cairo_stroke (cr);
+ } else {
+ cairo_arc (cr, get_width()/2.0, h/2.0, 6.0, 0, M_PI*2.0);
+ 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);
+ }
+ }
+}
+
+void
+ButtonJoiner::on_size_allocate (Allocation& alloc)
+{
+ CairoWidget::on_size_allocate (alloc);
+ set_colors ();