Center port matrix if IO selector window is too large.
[ardour.git] / gtk2_ardour / time_axis_view.h
index 486dc6404d2216ce639bd533886aa708d8f913d9..e98579a6833781140ef45cb2bbe18c0469d68f5d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2003 Paul Davis 
+    Copyright (C) 2003 Paul Davis
 
     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
@@ -34,6 +34,7 @@
 #include <gtkmm2ext/focus_entry.h>
 
 #include "pbd/stateful.h"
+#include "pbd/signals.h"
 
 #include "ardour/types.h"
 #include "ardour/region.h"
@@ -89,11 +90,13 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        static uint32_t hSmaller;
        static uint32_t hSmall;
 
-       TimeAxisView(ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* parent, ArdourCanvas::Canvas& canvas);
+       TimeAxisView(ARDOUR::Session* sess, PublicEditor& ed, TimeAxisView* parent, ArdourCanvas::Canvas& canvas);
        virtual ~TimeAxisView ();
 
        XMLNode& get_state ();
-       int set_state (const XMLNode&);
+       int set_state (const XMLNode&, int version);
+
+       static PBD::Signal1<void,TimeAxisView*> CatchDeletion;
 
        /** @return index of this TimeAxisView within its parent */
        int order () const { return _order; }
@@ -129,6 +132,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        void show_name_label ();
        void show_name_entry ();
 
+       virtual bool set_visibility (bool);
        virtual guint32 show_at (double y, int& nth, Gtk::VBox *parent);
 
        void clip_to_viewport ();
@@ -180,14 +184,14 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        virtual void reveal_dependent_views (TimeAxisViewItem&) {}
 
        /* editing operations */
-       
+
        virtual bool cut_copy_clear (Selection&, Editing::CutCopyOp) { return false; }
-       virtual bool paste (nframes_t, float times, Selection&, size_t nth) { return false; }
-       
+       virtual bool paste (nframes_t, float /*times*/, Selection&, size_t /*nth*/) { return false; }
+
        virtual void set_selected_regionviews (RegionSelection&) {}
        virtual void set_selected_points (PointSelection&) {}
 
-       virtual boost::shared_ptr<ARDOUR::Region> find_next_region (nframes_t pos, ARDOUR::RegionPoint, int32_t dir) {
+       virtual boost::shared_ptr<ARDOUR::Region> find_next_region (nframes_t /*pos*/, ARDOUR::RegionPoint, int32_t /*dir*/) {
                return boost::shared_ptr<ARDOUR::Region> ();
        }
 
@@ -210,13 +214,15 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
 
        /* call this on the parent */
 
-       virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter param) { return 0; }
+       virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter /*param*/) { return 0; }
 
        virtual LayerDisplay layer_display () const { return Overlaid; }
        virtual StreamView* view () const { return 0; }
-       
+
        typedef std::vector<boost::shared_ptr<TimeAxisView> > Children;
 
+       SelectionRect* get_selection_rect(uint32_t id);
+       
   protected:
        /* The Standard LHS Controls */
        Gtk::HBox     controls_hbox;
@@ -241,7 +247,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        sigc::connection name_entry_key_timeout;
        bool name_entry_key_timed_out ();
        guint32 last_name_entry_key_press_event;
-       
+
        /* derived classes can override these */
 
        virtual void name_entry_changed ();
@@ -249,7 +255,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        virtual bool name_entry_focus_out (GdkEventFocus *ev);
 
        /** Handle mouse relaese on our LHS control name ebox.
-        * 
+        *
         *@ param ev the event
         */
        virtual bool controls_ebox_button_release (GdkEventButton *ev);
@@ -268,7 +274,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
 
        /** Do whatever needs to be done to dynamically reset the LHS control menu.
         */
-       virtual bool handle_display_menu_map_event (GdkEventAny *ev) { return false; }
+       virtual bool handle_display_menu_map_event (GdkEventAny * /*ev*/) { return false; }
 
        /** Build the standard LHS control size menu for the default heights options.
         */
@@ -281,7 +287,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        void popup_size_menu(guint32 when);
 
        /** Handle the size option of our main menu.
-        * 
+        *
         * @param ev the event
         */
        gint size_click(GdkEventButton *ev);
@@ -313,8 +319,6 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        std::list<SelectionRect*> free_selection_rects;
        std::list<SelectionRect*> used_selection_rects;
 
-       SelectionRect* get_selection_rect(uint32_t id);
-
        virtual void selection_click (GdkEventButton*);
 
        bool _hidden;
@@ -337,7 +341,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        ArdourCanvas::Group* _canvas_display;
        double _y_position;
        PublicEditor& _editor;
-       
+
 private:
 
        ArdourCanvas::Group* _canvas_background;
@@ -348,7 +352,7 @@ private:
        ArdourCanvas::Group* _ghost_group;
 
        static int const _max_order;
-       
+
 }; /* class TimeAxisView */
 
 #endif /* __ardour_gtk_time_axis_h__ */