Use ardour/session_state_utils.h in Editor::redisplay_snapshots
[ardour.git] / gtk2_ardour / canvas-midi-event.h
index 214c275bedbda2e88566572b5b35b2c03ce7a545..63b32cf0ca823394a7624e6b6a04bd97ea1eab60 100644 (file)
@@ -38,10 +38,12 @@ namespace Canvas {
  *
  * Note: Because of this, derived classes need to manually bounce events to
  * on_event, it won't happen automatically.
+ *
+ * A newer, better canvas should remove the need for all the ugly here.
  */
 class CanvasMidiEvent {
 public:
-       CanvasMidiEvent(MidiRegionView& region, Item* item, const ARDOUR::MidiModel::Note* note = NULL);
+       CanvasMidiEvent(MidiRegionView& region, Item* item, const ARDOUR::Note* note = NULL);
        virtual ~CanvasMidiEvent() {} 
 
        bool on_event(GdkEvent* ev);
@@ -51,17 +53,25 @@ public:
 
        virtual void set_outline_color(uint32_t c) = 0;
        virtual void set_fill_color(uint32_t c) = 0;
+       
+       virtual double x1() = 0;
+       virtual double y1() = 0;
+       virtual double x2() = 0;
+       virtual double y2() = 0;
+
+       const Item* item() const { return _item; }
+       Item*       item()       { return _item; }
 
-       const ARDOUR::MidiModel::Note* note() { return _note; }
+       const ARDOUR::Note* note() { return _note; }
 
 protected:
        enum State { None, Pressed, Dragging };
 
-       MidiRegionView&                _region;
-       Item* const                    _item;
-       State                          _state;
-       const ARDOUR::MidiModel::Note* _note;
-       bool                           _selected;
+       MidiRegionView&     _region;
+       Item* const         _item;
+       State               _state;
+       const ARDOUR::Note* _note;
+       bool                _selected;
 };
 
 } // namespace Gnome