Add a PianoKeyboard to GenericUI (on a MIDI track)
[ardour.git] / gtk2_ardour / time_axis_view.h
index 9ab2d3596b0e044ed91a7a598c8cf67cd3815715..99ed2f37fc8f600812713c66cf51d37d85ad9e18 100644 (file)
 #include <gtkmm/label.h>
 #include <gtkmm/sizegroup.h>
 
-#include <gtkmm2ext/focus_entry.h>
-
 #include "pbd/stateful.h"
 #include "pbd/signals.h"
 
+#include "evoral/Parameter.hpp"
+
 #include "ardour/types.h"
 #include "ardour/presentation_info.h"
 #include "ardour/region.h"
 
-#include "evoral/Parameter.hpp"
-
 #include "canvas/line.h"
 
-#include "prompter.h"
+#include "widgets/focus_entry.h"
+
 #include "axis_view.h"
 #include "enums.h"
 #include "editing.h"
@@ -105,9 +104,6 @@ class TimeAxisView : public virtual AxisView
 
        static void setup_sizes ();
 
-       virtual boost::shared_ptr<ARDOUR::Stripable> stripable() const = 0;
-       virtual ARDOUR::PresentationInfo const & presentation_info () const = 0;
-
        /** @return index of this TimeAxisView within its parent */
        int order () const { return _order; }
 
@@ -140,6 +136,7 @@ class TimeAxisView : public virtual AxisView
        bool hidden () const { return _hidden; }
 
        void set_selected (bool);
+
        virtual bool selectable() const { return true; }
 
        /**
@@ -187,10 +184,11 @@ class TimeAxisView : public virtual AxisView
         */
        virtual bool paste (ARDOUR::framepos_t pos,
                            const Selection&   selection,
-                           PasteContext&      ctx) { return false; }
+                           PasteContext&      ctx,
+                           const int32_t sub_num) { return false; }
 
        virtual void set_selected_regionviews (RegionSelection&) {}
-       virtual void set_selected_points (PointSelection&) {}
+       virtual void set_selected_points (PointSelection&);
 
        virtual void fade_range (TimeSelection&) {}
 
@@ -218,9 +216,7 @@ class TimeAxisView : public virtual AxisView
        virtual StreamView* view () const { return 0; }
 
        typedef std::vector<boost::shared_ptr<TimeAxisView> > Children;
-       Children get_child_list ();
-
-       SelectionRect* get_selection_rect(uint32_t id);
+       Children get_child_list () const;
 
        static uint32_t preset_height (Height);
 
@@ -261,6 +257,7 @@ class TimeAxisView : public virtual AxisView
 
        void begin_name_edit ();
        void end_name_edit (std::string, int);
+       virtual std::string name () const { return name_label.get_text (); }
 
        /* derived classes can override these */
 
@@ -293,6 +290,7 @@ class TimeAxisView : public virtual AxisView
 
        Children children;
        bool is_child (TimeAxisView*);
+       virtual bool propagate_time_selection () const { return false; }
 
        virtual void remove_child (boost::shared_ptr<TimeAxisView>);
        void add_child (boost::shared_ptr<TimeAxisView>);
@@ -307,7 +305,7 @@ class TimeAxisView : public virtual AxisView
 
        void build_size_menu ();
 
-private:
+  private:
        Gtk::VBox*            control_parent;
        int                  _order;
        uint32_t             _effective_height;
@@ -321,6 +319,8 @@ private:
        static uint32_t extra_height;
        static int const _max_order;
 
+       SelectionRect* get_selection_rect(uint32_t id);
+
        void compute_heights ();
        bool maybe_set_cursor (int y);