remove incorrect calls to Editor::maybe_autoscroll() from specific Drag classes ...
[ardour.git] / gtk2_ardour / ardour_button.cc
index bc105304171b2378400f58bbaae84bdf4e1e2456..47c98710150c1e984acdd9c374c72db2b9e58477 100644 (file)
@@ -267,7 +267,7 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
                }
        }
 
-       if ( ((_elements & FlatFace)==FlatFace) && (active_state() != Gtkmm2ext::ExplicitActive) ) {
+       if ( ((_elements & Inset)==Inset) && (active_state() != Gtkmm2ext::ExplicitActive) ) {
 
                if ( !_flat_buttons ) {
                        float rheight = get_height()*0.5-REFLECTION_HEIGHT;
@@ -324,7 +324,10 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
                cairo_new_path (cr);    
                cairo_set_source_rgba (cr, text_r, text_g, text_b, text_a);
 
-               if (_elements & Indicator) {
+               if ( (_elements & Menu) == Menu) {
+                       cairo_move_to (cr, text_margin, get_height()/2.0 - _text_height/2.0);
+                       pango_cairo_show_layout (cr, _layout->gobj());
+               } else if ( (_elements & Indicator)  == Indicator) {
                        if (_led_left) {
                                cairo_move_to (cr, text_margin + _diameter + 4, get_height()/2.0 - _text_height/2.0);
                        } else {
@@ -363,6 +366,23 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
                cairo_restore (cr);
        } 
 
+       if (((_elements & Menu)==Menu)) {
+       
+               cairo_save (cr);
+
+               cairo_translate (cr, 0,0 );
+               
+               //white arrow
+               cairo_set_source_rgba (cr, 1, 1, 1, 0.4);
+               cairo_move_to(cr, get_width() - ((_diameter/2.0) + 6.0), get_height()/2.0 +_diameter/4);
+               cairo_rel_line_to(cr, -_diameter/2, -_diameter/2);
+               cairo_rel_line_to(cr, _diameter, 0);
+               cairo_close_path(cr);
+               cairo_fill(cr);
+                       
+               cairo_restore (cr);
+       }
+       
        if (((_elements & Indicator)==Indicator)) {
 
                /* move to the center of the indicator/led */