introduce the notion that note additions and property changes can cause the removal...
[ardour.git] / gtk2_ardour / editor.h
index ebd735e335ef439f346eb794c6730fe99cf487b9..95fbde83de8cec4870210b77b80b0cd3e0cd76b9 100644 (file)
@@ -197,6 +197,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void step_mouse_mode (bool next);
        Editing::MouseMode current_mouse_mode () const { return mouse_mode; }
        Editing::MidiEditMode current_midi_edit_mode () const;
+       void remove_midi_note (ArdourCanvas::Item *, GdkEvent *);
 
        bool internal_editing() const { return _internal_editing ; }
        void set_internal_edit (bool yn);
@@ -334,7 +335,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void create_editor_mixer ();
        void show_editor_list (bool yn);
        void set_selected_mixer_strip (TimeAxisView&);
-       void hide_track_in_display (TimeAxisView& tv, bool temporary = false);
+       void hide_track_in_display (TimeAxisView* tv, bool temporary = false);
 
        /* nudge is initiated by transport controls owned by ARDOUR_UI */
 
@@ -390,7 +391,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void scroll_tracks_down_line ();
        void scroll_tracks_up_line ();
 
-       bool new_regionviews_display_gain () { return _new_regionviews_show_envelope; }
        void prepare_for_cleanup ();
        void finish_cleanup ();
 
@@ -513,13 +513,18 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void update_join_object_range_location (double, double);
 
        int  post_maximal_editor_width;
-       int  post_maximal_pane_position;
-       int  pre_maximal_pane_position;
+       int  post_maximal_editor_height;
+       int  post_maximal_horizontal_pane_position;
+       int  post_maximal_vertical_pane_position;
+       int  pre_maximal_horizontal_pane_position;
+       int  pre_maximal_vertical_pane_position;
        int  pre_maximal_editor_width;
+       int  pre_maximal_editor_height;
        void pane_allocation_handler (Gtk::Allocation&, Gtk::Paned*);
 
        Gtk::Notebook the_notebook;
        Gtk::HPaned   edit_pane;
+       Gtk::VPaned   editor_summary_pane;
 
        Gtk::EventBox meter_base;
        Gtk::HBox     meter_box;
@@ -899,7 +904,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        Gtk::Table          edit_packer;
 
        Gtk::Adjustment     vertical_adjustment;
-       Gtk::Adjustment     horizontal_adjustment;
 
        Gtk::Layout         controls_layout;
        bool control_layout_scroll (GdkEventScroll* ev);
@@ -936,7 +940,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        ArdourCanvas::Group* get_trackview_group () const { return _trackview_group; }
        double last_trackview_group_vertical_offset;
        void tie_vertical_scrolling ();
-       void scroll_canvas_horizontally ();
+       void set_horizontal_position (double);
+       double horizontal_position () const;
        void scroll_canvas_vertically ();
 
        struct VisualChange {
@@ -970,8 +975,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void queue_visual_change_y (double);
        void ensure_visual_change_idle_handler ();
 
-       void session_range_location_changed (ARDOUR::Location*);
-
        /* track views */
        TrackViewList track_views;
        std::pair<TimeAxisView*, ARDOUR::layer_t> trackview_by_y_position (double);
@@ -1041,7 +1044,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void toggle_region_lock ();
        void toggle_region_opaque ();
        void toggle_record_enable ();
-       void set_region_lock_style (ARDOUR::Region::PositionLockStyle);
+       void toggle_region_lock_style ();
        void raise_region ();
        void raise_region_to_top ();
        void lower_region ();
@@ -1078,6 +1081,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void reset_region_scale_amplitude ();
        void adjust_region_scale_amplitude (bool up);
        void quantize_region ();
+       void fork_region ();
 
        void do_insert_time ();
        void insert_time (nframes64_t, nframes64_t, Editing::InsertTimeOption, bool, bool, bool);
@@ -1397,7 +1401,6 @@ public:
        void kbd_do_brush (GdkEvent*);
        void kbd_do_audition (GdkEvent*);
 
-       void handle_new_duration ();
        void initialize_canvas ();
 
        /* display control */
@@ -1455,15 +1458,16 @@ public:
        void update_punch_range_view (bool visibility=false);
         void new_transport_marker_menu_popdown ();
        void marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
-       void tm_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
+       void tempo_or_meter_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
        void transport_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
        void new_transport_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
        void build_range_marker_menu (bool loop_or_punch);
        void build_marker_menu (bool);
-       void build_tm_marker_menu ();
+       void build_tempo_or_meter_marker_menu (bool);
        void build_new_transport_marker_menu ();
+       void dynamic_cast_marker_object (void*, MeterMarker**, TempoMarker**) const;
 
-       Gtk::Menu* tm_marker_menu;
+       Gtk::Menu* tempo_or_meter_marker_menu;
        Gtk::Menu* marker_menu;
        Gtk::Menu* session_range_marker_menu;
        Gtk::Menu* range_marker_menu;
@@ -1676,9 +1680,9 @@ public:
 
        /* trimming */
        void point_trim (GdkEvent *, nframes64_t);
-       void single_contents_trim (RegionView&, nframes64_t, bool, bool, bool);
-       void single_start_trim (RegionView&, nframes64_t, bool, bool, bool);
-       void single_end_trim (RegionView&, nframes64_t, bool, bool, bool);
+       void single_contents_trim (RegionView&, nframes64_t, bool, bool);
+       void single_start_trim (RegionView&, nframes64_t, bool);
+       void single_end_trim (RegionView&, nframes64_t, bool);
 
        void thaw_region_after_trim (RegionView& rv);
 
@@ -1922,8 +1926,6 @@ public:
        void ensure_track_visible (TimeAxisView*);
        gint left_automation_track ();
 
-       bool _new_regionviews_show_envelope;
-
        void reset_canvas_action_sensitivity (bool);
        void toggle_gain_envelope_visibility ();
        void toggle_gain_envelope_active ();
@@ -1978,7 +1980,7 @@ public:
 
        void fit_tracks (TrackViewList &);
        void fit_selected_tracks ();
-       void set_track_height (uint32_t h);
+       void set_track_height (Height);
 
        void remove_tracks ();
        void toggle_tracks_active ();