fix up requested color names everywhere.
[ardour.git] / gtk2_ardour / note_base.h
index 8ee3a4d27790496a15f16ddfd5772b1fd19d47ad..f76c184a20cc164ffbe43e49cf94eaf7e0aa831c 100644 (file)
@@ -21,8 +21,9 @@
 #define __gtk_ardour_note_base_h__
 
 #include <boost/shared_ptr.hpp>
+
 #include "canvas/types.h"
-#include "ardour/midi_model.h"
+#include "evoral/types.hpp"
 
 #include "rgb_macros.h"
 #include "ardour_ui.h"
@@ -42,29 +43,25 @@ namespace ArdourCanvas {
 
 /** This manages all the event handling for any MIDI event on the canvas.
  *
- * This is not actually a canvas item itself to avoid the dreaded diamond,
- * since various types of canvas items (Note (rect), Hit (diamond), etc)
- * need to share this functionality but can't share an ancestor.
+ * This is not actually a canvas item itself to avoid the dreaded diamond
+ * inheritance pattern, since various types of canvas items (Note (rect), Hit
+ * (diamond), etc) need to share this functionality but can't share an
+ * ancestor. 
  *
  * 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 NoteBase : public sigc::trackable
 {
-public:
-       typedef Evoral::Note<ARDOUR::MidiModel::TimeType> NoteType;
-
-       NoteBase (
-               MidiRegionView&                   region,
-               bool,
-               const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>()
-               );
+  public:
+       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
 
+       NoteBase (MidiRegionView& region, bool, const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>());
        virtual ~NoteBase ();
 
        void set_item (ArdourCanvas::Item *);
+        ArdourCanvas::Item* item() const { return _item; }
 
         static PBD::Signal1<void, NoteBase*> NoteBaseDeleted;
 
@@ -109,25 +106,25 @@ public:
                 if (selected) {
                         if (vel < 64) {
                                 return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorBase(),
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
+                                       ARDOUR_UI::config()->color ("selected midi note color min"),
+                                       ARDOUR_UI::config()->color ("selected midi note color mid"),
                                        (vel / (double)63.0));
                         } else {
                                 return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorTop(),
+                                       ARDOUR_UI::config()->color ("selected midi note color mid"),
+                                       ARDOUR_UI::config()->color ("selected midi note color max"),
                                        ((vel-64) / (double)63.0));
                         }
                 } else {
                         if (vel < 64) {
                                 return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorBase(),
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
+                                       ARDOUR_UI::config()->color ("midi note color min"),
+                                       ARDOUR_UI::config()->color ("midi note color mid"),
                                        (vel / (double)63.0));
                         } else {
                                 return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorTop(),
+                                       ARDOUR_UI::config()->color ("midi note color mid"),
+                                       ARDOUR_UI::config()->color ("midi note color max"),
                                        ((vel-64) / (double)63.0));
                         }
                 }
@@ -142,7 +139,7 @@ public:
        static const uint32_t midi_channel_colors[16];
 
         bool mouse_near_ends () const;
-        bool big_enough_to_trim () const;
+        virtual bool big_enough_to_trim () const;
 
 protected:
        enum State { None, Pressed, Dragging };