Major Theme Manager changes, see ardour-dev
[ardour.git] / gtk2_ardour / crossfade_view.h
index ef137bef78058df475ac1080ec2de846ed09ea33..39ca8bf1c3e9ef31980a34b62df25d15a213f8fa 100644 (file)
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __gtk_ardour_crossfade_view_h__
 #define __gtk_ardour_crossfade_view_h__
 
 #include <vector>
-#include <gtkmm.h>
-#include <libgnomecanvasmm/libgnomecanvasmm.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 (Gnome::Canvas::Group*, 
-                  AudioTimeAxisView&,
-                  ARDOUR::Crossfade&,
+    CrossfadeView (ArdourCanvas::Group*, 
+                  RouteTimeAxisView&,
+                  boost::shared_ptr<ARDOUR::Crossfade>,
                   double initial_samples_per_unit, 
                   Gdk::Color& basic_color,
                   AudioRegionView& leftview,
                   AudioRegionView& rightview);
     ~CrossfadeView ();
 
-    ARDOUR::Crossfade& crossfade;  // ok, let 'em have it
+    boost::shared_ptr<ARDOUR::Crossfade> crossfade;  // ok, let 'em have it
+
     AudioRegionView& left_view;    // and these too
     AudioRegionView& right_view;
 
-    std::string get_item_name();
-    void set_height (double);
+    void set_y_position_and_height (double, double);
 
     bool valid() const { return _valid; }
     bool visible() const { return _visible; }
@@ -70,15 +68,18 @@ struct CrossfadeView : public TimeAxisViewItem
     bool _visible;
 
     double spu;
+    double _y_position;
+    double _height;
 
-    Gnome::Canvas::Item *overlap_rect;
-    Gnome::Canvas::Line *fade_in;
-    Gnome::Canvas::Line *fade_out;
-    Gnome::Canvas::Item *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 ();
     void redraw_curves ();
+       void color_handler ();
 };
 
 #endif /* __gtk_ardour_crossfade_view_h__ */