ask TAV buttons to have square proportions
[ardour.git] / gtk2_ardour / note_base.h
index 8ee3a4d27790496a15f16ddfd5772b1fd19d47ad..5e52be0732e7577288e16838163147cde433e258 100644 (file)
@@ -42,29 +42,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:
+  public:
        typedef Evoral::Note<ARDOUR::MidiModel::TimeType> NoteType;
 
-       NoteBase (
-               MidiRegionView&                   region,
-               bool,
-               const boost::shared_ptr<NoteType> note = boost::shared_ptr<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;
 
@@ -142,7 +138,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 };