Superficial code cleanup.
[ardour.git] / gtk2_ardour / canvas-note.h
index 398d7d1abb854f043df593909925168336144e5a..30cbad6c25a9d0f0a6e9f6e7f356ba555d733ff0 100644 (file)
@@ -1,6 +1,7 @@
 /*
-    Copyright (C) 2007 Paul Davis 
+    Copyright (C) 2007 Paul Davis
     Author: Dave Robillard
+    Author: Hans Baier
 
     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
 
 #include <iostream>
 #include "simplerect.h"
-#include "canvas-midi-event.h"
+#include "canvas-note-event.h"
 #include "midi_util.h"
 
 namespace Gnome {
 namespace Canvas {
 
-class CanvasNote : public SimpleRect, public CanvasMidiEvent {
+class CanvasNote : public SimpleRect, public CanvasNoteEvent {
 public:
-       CanvasNote(MidiRegionView& region, Group& group, const ARDOUR::MidiModel::Note* note=NULL)
-               : SimpleRect(group), CanvasMidiEvent(region, this, note)
-       {
-       }
-       
        double x1() { return property_x1(); }
        double y1() { return property_y1(); }
        double x2() { return property_x2(); }
        double y2() { return property_y2(); }
-       
-       void set_outline_color(uint32_t c) { property_outline_color_rgba() = c; }
-       void set_fill_color(uint32_t c) { property_fill_color_rgba() = c; }
-       
-       bool on_event(GdkEvent* ev) { return CanvasMidiEvent::on_event(ev); }
+
+       void set_outline_color(uint32_t c) { property_outline_color_rgba() = c; hide(); show(); }
+       void set_fill_color(uint32_t c)    { property_fill_color_rgba()    = c; hide(); show(); }
+
+       bool on_event(GdkEvent* ev);
+
+       enum NoteEnd {
+               NOTE_ON,
+               NOTE_OFF
+       };
+
+       enum NoteState {
+               None,
+               RelativeResize,
+               AbsoluteResize
+       };
+
+       CanvasNote(
+                       MidiRegionView&                       region,
+                       Group&                                group,
+                       const boost::shared_ptr<Evoral::Note> note = boost::shared_ptr<Evoral::Note>())
+
+               : SimpleRect(group), CanvasNoteEvent(region, this, note), _note_state(None)
+       {
+       }
+
+protected:
+       NoteState _note_state;
+
+private:
+
 };
 
 } // namespace Gnome