X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fghostregion.h;h=a46ab8fe111825ecc656312b160935aafc4fd4ea;hb=c876aea64dc57f59937f8bb2337f6ffc19b98c0d;hp=e8271a8ad8aa6e947b69c16518198a89a51caf70;hpb=fe6c5612a2c46d6dbad32517d487b120bb8b65c4;p=ardour.git diff --git a/gtk2_ardour/ghostregion.h b/gtk2_ardour/ghostregion.h index e8271a8ad8..a46ab8fe11 100644 --- a/gtk2_ardour/ghostregion.h +++ b/gtk2_ardour/ghostregion.h @@ -32,11 +32,17 @@ class Note; class Hit; class MidiStreamView; class TimeAxisView; +class RegionView; class GhostRegion : public sigc::trackable { public: - GhostRegion(ArdourCanvas::Group* parent, TimeAxisView& tv, TimeAxisView& source_tv, double initial_unit_pos); + GhostRegion(RegionView& rv, + ArdourCanvas::Container* parent, + TimeAxisView& tv, + TimeAxisView& source_tv, + double initial_unit_pos); + virtual ~GhostRegion(); virtual void set_samples_per_pixel (double) = 0; @@ -48,19 +54,21 @@ public: guint source_track_color(unsigned char alpha = 0xff); bool is_automation_ghost(); + RegionView& parent_rv; /** TimeAxisView that is the AutomationTimeAxisView that we are on */ TimeAxisView& trackview; /** TimeAxisView that we are a ghost for */ TimeAxisView& source_trackview; - ArdourCanvas::Group* group; + ArdourCanvas::Container* group; ArdourCanvas::Rectangle* base_rect; - - static PBD::Signal1 CatchDeletion; }; class AudioGhostRegion : public GhostRegion { public: - AudioGhostRegion(TimeAxisView& tv, TimeAxisView& source_tv, double initial_unit_pos); + AudioGhostRegion(RegionView& rv, + TimeAxisView& tv, + TimeAxisView& source_tv, + double initial_unit_pos); void set_samples_per_pixel (double); void set_height(); @@ -73,15 +81,23 @@ class MidiGhostRegion : public GhostRegion { public: class GhostEvent : public sigc::trackable { public: - GhostEvent(::NoteBase *, ArdourCanvas::Group *); + GhostEvent(::NoteBase *, ArdourCanvas::Container *); virtual ~GhostEvent (); - + NoteBase* event; - ArdourCanvas::Rectangle* rect; + ArdourCanvas::Item* item; }; - MidiGhostRegion(TimeAxisView& tv, TimeAxisView& source_tv, double initial_unit_pos); - MidiGhostRegion(MidiStreamView& msv, TimeAxisView& source_tv, double initial_unit_pos); + MidiGhostRegion(RegionView& rv, + TimeAxisView& tv, + TimeAxisView& source_tv, + double initial_unit_pos); + + MidiGhostRegion(RegionView& rv, + MidiStreamView& msv, + TimeAxisView& source_tv, + double initial_unit_pos); + ~MidiGhostRegion(); MidiStreamView* midi_view(); @@ -93,12 +109,14 @@ public: void update_range(); void add_note(NoteBase*); - void update_note (NoteBase*); + void update_note (Note*); + void update_hit (Hit*); void remove_note (NoteBase*); void clear_events(); private: + ArdourCanvas::Color _outline; MidiGhostRegion::GhostEvent* find_event (NoteBase*);