add new swedish translation
[ardour.git] / gtk2_ardour / crossfade_view.cc
index 350698ec483b4ef8e16119a6cd743b08aca6ac43..e8a97c4cf465d76acc0ec42ba24dd937eda9da05 100644 (file)
@@ -29,7 +29,7 @@
 #include "rgb_macros.h"
 #include "audio_time_axis.h"
 #include "public_editor.h"
-#include "regionview.h"
+#include "audio_region_view.h"
 #include "utils.h"
 #include "canvas_impl.h"
 
@@ -43,7 +43,7 @@ using namespace Canvas;
 sigc::signal<void,CrossfadeView*> CrossfadeView::GoingAway;
 
 CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent, 
-                             AudioTimeAxisView &tv, 
+                             RouteTimeAxisView &tv, 
                              Crossfade& xf, 
                              double spu,
                              Gdk::Color& basic_color,
@@ -89,7 +89,7 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
 
 CrossfadeView::~CrossfadeView ()
 {
-        GoingAway (this) ; /* EMIT_SIGNAL */
+       GoingAway (this) ; /* EMIT_SIGNAL */
 }
 
 void
@@ -108,8 +108,8 @@ CrossfadeView::reset_width_dependent_items (double pixel_width)
 void
 CrossfadeView::set_height (double height)
 {
-       if (height == TimeAxisView::Smaller ||
-               height == TimeAxisView::Small)
+       if (height == TimeAxisView::hSmaller ||
+           height == TimeAxisView::hSmall)
                TimeAxisViewItem::set_height (height - 3 );
        else
                TimeAxisViewItem::set_height (height - NAME_HIGHLIGHT_SIZE - 3 );
@@ -127,6 +127,10 @@ CrossfadeView::crossfade_changed (Change what_changed)
                set_duration (crossfade.overlap_length(), this);
                need_redraw_curves = true;
        }
+
+       if (what_changed & Crossfade::FollowOverlapChanged) {
+               need_redraw_curves = true;
+       }
        
        if (what_changed & Crossfade::ActiveChanged) {
                /* calls redraw_curves */
@@ -142,21 +146,25 @@ CrossfadeView::redraw_curves ()
        Points* points; 
        int32_t npoints;
        float* vec;
-       
        double h;
 
+       if (!crossfade.following_overlap()) {
+               /* curves should not be visible */
+               fade_in->hide ();
+               fade_out->hide ();
+               return;
+       }
+
        /*
         At "height - 3.0" the bottom of the crossfade touches the name highlight or the bottom of the track (if the
         track is either Small or Smaller.
         */
-       switch(get_time_axis_view().height) {
-               case TimeAxisView::Smaller:
-               case TimeAxisView::Small:
-                       h = get_time_axis_view().height - 3.0;
-                       break;
-
-               default:
-                       h = get_time_axis_view().height - NAME_HIGHLIGHT_SIZE - 3.0;
+       double tav_height = get_time_axis_view().height;
+       if (tav_height == TimeAxisView::hSmaller ||
+           tav_height == TimeAxisView::hSmall) {
+               h = tav_height - 3.0;
+       } else {
+               h = tav_height - NAME_HIGHLIGHT_SIZE - 3.0;
        }
 
        if (h < 0) {
@@ -227,7 +235,7 @@ CrossfadeView::set_valid (bool yn)
 AudioRegionView&
 CrossfadeView::upper_regionview () const
 {
-       if (left_view.region.layer() > right_view.region.layer()) {
+       if (left_view.region()->layer() > right_view.region()->layer()) {
                return left_view;
        } else {
                return right_view;