X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Ftime_axis_view.h;h=299971f1ee1810d9c73e6a81bfc9a24f8ce98545;hb=4e4cb140a0713cabec624f13e86eaf9b375ab6c5;hp=3a652bd0eacf137e8f46c98e1625ffe13e17653a;hpb=9f2164b4f3b030177a229ddc3e87eb431af1bd54;p=ardour.git diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index 3a652bd0ea..299971f1ee 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_gtk_time_axis_h__ @@ -63,12 +62,10 @@ class TimeAxisViewItem; class Selection; class Selectable; -/** - * TimeAxisView defines the abstract base class for time-axis views. +/** Abstract base class for time-axis views (horizontal editor 'strips') * * This class provides the basic LHS controls and display methods. This should be * extended to create functional time-axis based views. - * */ class TimeAxisView : public virtual AxisView { @@ -105,13 +102,13 @@ class TimeAxisView : public virtual AxisView PublicEditor& editor; TrackHeight height_style; - uint32_t height; /* in canvas units */ - uint32_t effective_height; /* in canvas units */ - double y_position; - int order; + uint32_t height; /* in canvas units */ + uint32_t effective_height; /* in canvas units */ + double y_position; + int order; - ArdourCanvas::Group *canvas_display; - Gtk::VBox *control_parent; + ArdourCanvas::Group *canvas_display; + Gtk::VBox *control_parent; /* The Standard LHS Controls */ Gtk::Frame controls_frame; @@ -123,14 +120,13 @@ class TimeAxisView : public virtual AxisView Gtk::HBox name_hbox; Gtk::Frame name_frame; Gtkmm2ext::FocusEntry name_entry; - + void hide_name_label (); void hide_name_entry (); void show_name_label (); void show_name_entry (); - /** - * Display this TrackView as the nth component of the parent box, at y. + /** Display this TrackView as the nth component of the parent box, at y. * * @param y * @param nth @@ -141,9 +137,7 @@ class TimeAxisView : public virtual AxisView bool touched (double top, double bot); - /** - * Hides this TrackView - */ + /** Hides this TrackView */ virtual void hide (); bool hidden() const { return _hidden; } @@ -159,6 +153,14 @@ class TimeAxisView : public virtual AxisView virtual void set_height (TrackHeight h); void reset_height(); + /** + * Returns a TimeAxisView* if this object covers y, or one of its children does. + * If the covering object is a child axis, then the child is returned. + * Returns 0 otherwise. + */ + + TimeAxisView* covers_y_position (double y); + /** * Steps through the defined heights for this TrackView. * Sets bigger to true to step up in size, set to fals eot step smaller. @@ -168,7 +170,7 @@ class TimeAxisView : public virtual AxisView virtual void step_height (bool bigger); virtual ARDOUR::RouteGroup* edit_group() const { return 0; } - virtual ARDOUR::Playlist* playlist() const { return 0; } + virtual boost::shared_ptr playlist() const { return boost::shared_ptr (); } virtual void set_samples_per_unit (double); virtual void show_selection (TimeSelection&); @@ -228,49 +230,39 @@ class TimeAxisView : public virtual AxisView virtual bool name_entry_focus_in (GdkEventFocus *ev); virtual bool name_entry_focus_out (GdkEventFocus *ev); - /** - * Handle mouse relaese on our LHS control name ebox. + /** Handle mouse relaese on our LHS control name ebox. * *@ param ev the event */ virtual bool controls_ebox_button_release (GdkEventButton *ev); virtual bool controls_ebox_scroll (GdkEventScroll *ev); - /** - * Displays the standard LHS control menu at when. + /** Display the standard LHS control menu at when. * * @param when the popup activation time */ virtual void popup_display_menu (guint32 when); - /** - * Build the standard LHS control menu. + /** Build the standard LHS control menu. * Subclasses should extend this method to add their own menu options. - * */ virtual void build_display_menu (); - /** - * Do anything that needs to be done to dynamically reset - * the LHS control menu. + /** Do whatever needs to be done to dynamically reset the LHS control menu. */ virtual bool handle_display_menu_map_event (GdkEventAny *ev) { return false; } - /** - * Build the standard LHS control size menu for the default heights options. - * + /** Build the standard LHS control size menu for the default heights options. */ virtual void build_size_menu(); - /** - * Displays the standard LHS controls size menu for the track heights + /** Displays the standard LHS controls size menu for the track heights * - * @parem when the popup activation time + * @param when the popup activation time */ void popup_size_menu(guint32 when); - /** - * Handle the size option of out main menu. + /** Handle the size option of our main menu. * * @param ev the event */ @@ -285,8 +277,7 @@ class TimeAxisView : public virtual AxisView TimeAxisView* parent; - /* find the parent with state */ - + /** Find the parent with state */ TimeAxisView* get_parent_with_state(); std::vector children; @@ -314,7 +305,7 @@ class TimeAxisView : public virtual AxisView static bool need_size_info; void set_height_pixels (uint32_t h); - void color_handler (ColorID, uint32_t); + void color_handler (); }; /* class TimeAxisView */