rename join regions op as combine regions; save and restore nested playlists, sources...
[ardour.git] / gtk2_ardour / editor.h
index 1a08dd3aac056f93ab31f25acdd8c4ae161beef1..140235e890b9254474188ee3891c06dae1022080 100644 (file)
@@ -131,6 +131,7 @@ class RegionLayeringOrderEditor;
 class ProgressReporter;
 class EditorCursor;
 class MouseCursors;
+class VerboseCursor;
 
 /* <CMT Additions> */
 class ImageFrameView;
@@ -416,9 +417,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        void get_regions_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions);
 
-       void show_verbose_canvas_cursor_with (const std::string& txt, int32_t xoffset = 0, int32_t yoffset = 0);
-       void hide_verbose_canvas_cursor();
-
        void center_screen (framepos_t);
 
        TrackViewList axis_views_from_routes (boost::shared_ptr<ARDOUR::RouteList>) const;
@@ -448,6 +446,12 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
                return _cursors;
        }
 
+       VerboseCursor* verbose_cursor () const {
+               return _verbose_cursor;
+       }
+
+       void get_pointer_position (double &, double &) const;
+
   protected:
        void map_transport_state ();
        void map_position_change (framepos_t);
@@ -541,9 +545,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void location_changed (ARDOUR::Location *);
        void location_flags_changed (ARDOUR::Location *, void *);
        void refresh_location_display ();
-       void refresh_location_display_s (const PBD::PropertyChange&);
        void refresh_location_display_internal (ARDOUR::Locations::LocationList&);
        void add_new_location (ARDOUR::Location *);
+       ArdourCanvas::Group* add_new_location_internal (ARDOUR::Location *);
        void location_gone (ARDOUR::Location *);
        void remove_marker (ArdourCanvas::Item&, GdkEvent*);
        gint really_remove_marker (ARDOUR::Location* loc);
@@ -691,19 +695,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        ArdourCanvas::Canvas* track_canvas;
 
-       ArdourCanvas::NoEventText* verbose_canvas_cursor;
-       bool                 verbose_cursor_visible;
+       friend class VerboseCursor;
+       VerboseCursor* _verbose_cursor;
 
        void parameter_changed (std::string);
 
        bool track_canvas_motion (GdkEvent*);
 
-       void set_verbose_canvas_cursor (const std::string &, double x, double y);
-       void set_verbose_canvas_cursor_text (const std::string &);
-       void show_verbose_canvas_cursor();
-
-       bool verbose_cursor_on; // so far unused
-
        Gtk::EventBox             time_canvas_event_box;
        Gtk::EventBox             track_canvas_event_box;
        Gtk::EventBox             time_button_event_box;
@@ -1101,6 +1099,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void duplicate_some_regions (RegionSelection&, float times);
        void duplicate_selection (float times);
        void region_fill_selection ();
+       void combine_regions ();
+       void uncombine_regions ();
 
        void region_fill_track ();
        void audition_playlist_region_standalone (boost::shared_ptr<ARDOUR::Region>);
@@ -1333,11 +1333,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        void mouse_brush_insert_region (RegionView*, framepos_t pos);
 
-       void show_verbose_time_cursor (framepos_t frame, double offset = 0, double xpos=-1, double ypos=-1);
-       void show_verbose_duration_cursor (framepos_t start, framepos_t end, double offset = 0, double xpos=-1, double ypos=-1);
-       double clamp_verbose_cursor_x (double);
-       double clamp_verbose_cursor_y (double);
-
        /* Canvas event handlers */
 
        bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*);