Only show user-presets in favorite sidebar
[ardour.git] / gtk2_ardour / crossfade_view.h
index fc41f7f7219278bf755b12d8e1bf155197996f0b..f593560f29b14c244d2199dfb62a319a6c7628d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2003 Paul Davis 
+    Copyright (C) 2003 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -21,8 +21,7 @@
 #define __gtk_ardour_crossfade_view_h__
 
 #include <vector>
-#include <libgnomecanvasmm.h>
-#include <sigc++/signal.h>
+#include "pbd/signals.h"
 #include "ardour/crossfade.h"
 
 #include "time_axis_view_item.h"
 class RouteTimeAxisView;
 class AudioRegionView;
 
-struct CrossfadeView : public TimeAxisViewItem
+namespace ArdourCanvas {
+       class PolyLine;
+}
+
+class CrossfadeView : public TimeAxisViewItem
 {
-    CrossfadeView (ArdourCanvas::Group*, 
-                  RouteTimeAxisView&,
-                  boost::shared_ptr<ARDOUR::Crossfade>,
-                  double initial_samples_per_unit, 
-                  Gdk::Color& basic_color,
-                  AudioRegionView& leftview,
-                  AudioRegionView& rightview);
-    ~CrossfadeView ();
+public:
+       CrossfadeView (ArdourCanvas::Container*,
+                      RouteTimeAxisView&,
+                      boost::shared_ptr<ARDOUR::Crossfade>,
+                      double initial_samples_per_pixel,
+                      Gdk::Color& basic_color,
+                      AudioRegionView& leftview,
+                      AudioRegionView& rightview);
 
-    boost::shared_ptr<ARDOUR::Crossfade> crossfade;  // ok, let 'em have it
+       ~CrossfadeView ();
 
-    AudioRegionView& left_view;    // and these too
-    AudioRegionView& right_view;
+       boost::shared_ptr<ARDOUR::Crossfade> crossfade;  // ok, let 'em have it
 
-    void set_height (double);
+       AudioRegionView& left_view;    // and these too
+       AudioRegionView& right_view;
 
-    bool valid() const { return _valid; }
-    bool visible() const { return _visible; }
-    void set_valid (bool yn);
+       void set_heights (double, double);
 
-    static sigc::signal<void,CrossfadeView*> GoingAway;
+       bool valid() const { return _valid; }
+       bool visible() const { return _visible; }
+       void set_valid (bool yn);
 
-    AudioRegionView& upper_regionview () const;
+       static PBD::Signal1<void,CrossfadeView*> CatchDeletion;
 
-    void fake_hide ();
-    void hide ();
-    void show ();
-    
-  protected:
-    void reset_width_dependent_items (double pixel_width);
+       void fake_hide ();
+       void hide ();
+       void show ();
+       void horizontal_position_changed ();
 
-  private:
-    bool _valid;
-    bool _visible;
+protected:
+       void reset_width_dependent_items (double pixel_width);
 
-    double spu;
-    double _height;
+private:
+       bool _valid;
+       bool _visible;
+       bool _all_in_view;
+       double _child_height;
 
-    ArdourCanvas::Item *overlap_rect;
-    ArdourCanvas::Line *fade_in;
-    ArdourCanvas::Line *fade_out;
-    ArdourCanvas::Item *active_button;
+       ArdourCanvas::PolyLine *fade_in;
+       ArdourCanvas::PolyLine *fade_out;
 
-    void crossfade_changed (ARDOUR::Change);
-    void active_changed ();
-    void redraw_curves ();
+       void crossfade_changed (const PBD::PropertyChange&);
+       void crossfade_fades_changed ();
+       void active_changed ();
+       void redraw_curves ();
        void color_handler ();
 };