Get MidiRegionView's hands on MidiModel for editing operations to come.

MIDI select rectangle.
Add notes on a proper click only (not mouse down).
Fix crash when dragging from region to outside region.


git-svn-id: svn://localhost/ardour2/trunk@2196 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2007-07-31 02:16:46 +00:00
parent ea5a4eac10
commit bb33e5d9f8
8 changed files with 88 additions and 79 deletions

View file

@ -37,6 +37,7 @@
namespace ARDOUR {
class MidiRegion;
class MidiModel;
};
class MidiTimeAxisView;
@ -54,7 +55,7 @@ class MidiRegionView : public RegionView
~MidiRegionView ();
virtual void init (Gdk::Color& base_color, bool wait_for_data = false);
virtual void init (Gdk::Color& basic_color, bool wfd);
boost::shared_ptr<ARDOUR::MidiRegion> midi_region() const;
@ -73,6 +74,8 @@ class MidiRegionView : public RegionView
void create_note_at(double x, double y);
void display_model(boost::shared_ptr<ARDOUR::MidiModel> model);
protected:
/* this constructor allows derived types
@ -97,14 +100,14 @@ class MidiRegionView : public RegionView
private:
void redisplay_model();
void display_events();
void clear_events();
bool canvas_event(GdkEvent* ev);
bool note_canvas_event(GdkEvent* ev);
std::vector<ArdourCanvas::Item*> _events;
ArdourCanvas::CanvasNote** _active_notes;
boost::shared_ptr<ARDOUR::MidiModel> _model;
std::vector<ArdourCanvas::Item*> _events;
ArdourCanvas::CanvasNote** _active_notes;
};
#endif /* __gtk_ardour_midi_region_view_h__ */