Heavy-duty abstraction work to split type-specific classes into
[ardour.git] / gtk2_ardour / crossfade_view.h
index 3825a50acfa0d5e06855705c89499d74d61fc982..adbd74b42027da577d37d5857ace317eac45fbb9 100644 (file)
 #define __gtk_ardour_crossfade_view_h__
 
 #include <vector>
-#include <gtk--.h>
-#include <gtk-canvas.h>
-#include <sigc++/signal_system.h>
+#include <libgnomecanvasmm.h>
+#include <sigc++/signal.h>
 #include <ardour/crossfade.h>
 
 #include "time_axis_view_item.h"
 
-class AudioTimeAxisView;
+class RouteTimeAxisView;
 class AudioRegionView;
 
 struct CrossfadeView : public TimeAxisViewItem
 {
-    CrossfadeView (GtkCanvasGroup*, 
-                  AudioTimeAxisView&,
+    CrossfadeView (ArdourCanvas::Group*, 
+                  RouteTimeAxisView&,
                   ARDOUR::Crossfade&,
                   double initial_samples_per_unit, 
-                  GdkColor& basic_color,
+                  Gdk::Color& basic_color,
                   AudioRegionView& leftview,
                   AudioRegionView& rightview);
     ~CrossfadeView ();
@@ -47,14 +46,13 @@ struct CrossfadeView : public TimeAxisViewItem
     AudioRegionView& left_view;    // and these too
     AudioRegionView& right_view;
 
-    std::string get_item_name();
     void set_height (double);
 
     bool valid() const { return _valid; }
     bool visible() const { return _visible; }
     void set_valid (bool yn);
 
-    static SigC::Signal1<void,CrossfadeView*> GoingAway;
+    static sigc::signal<void,CrossfadeView*> GoingAway;
 
     AudioRegionView& upper_regionview () const;
 
@@ -71,10 +69,10 @@ struct CrossfadeView : public TimeAxisViewItem
 
     double spu;
 
-    GtkCanvasItem *overlap_rect;
-    GtkCanvasItem *fade_in;
-    GtkCanvasItem *fade_out;
-    GtkCanvasItem *active_button;
+    ArdourCanvas::Item *overlap_rect;
+    ArdourCanvas::Line *fade_in;
+    ArdourCanvas::Line *fade_out;
+    ArdourCanvas::Item *active_button;
 
     void crossfade_changed (ARDOUR::Change);
     void active_changed ();