Merging from trunk
[ardour.git] / gtk2_ardour / editor.h
index 91f2bc98105933cf6468acd1f79d343ba88e65b1..e517b1eaf1c9231d6123c2f3aeccc7414b005f32 100644 (file)
@@ -45,7 +45,6 @@
 #include <ardour/tempo.h>
 #include <ardour/location.h>
 #include <ardour/region.h>
-#include <ardour/externalsource.h>
 
 #include "audio_clock.h"
 #include "gtk-custom-ruler.h"
@@ -67,9 +66,8 @@ namespace LinuxAudioSystems {
 }
 
 namespace ARDOUR {
-       class DiskStream;
+       class AudioDiskstream;
        class RouteGroup;
-       class Source;
        class Playlist;
        class Region;
        class Location;
@@ -296,7 +294,7 @@ class Editor : public PublicEditor
        void toggle_waveforms_while_recording ();
        void toggle_measure_visibility ();
 
-       void set_meter_falloff (float);
+       void set_meter_falloff (int);
        void set_meter_hold (int32_t);
 
        /* xfades */
@@ -413,6 +411,7 @@ class Editor : public PublicEditor
        CrossfadeView*     clicked_crossfadeview;
        ControlPoint*      clicked_control_point;
 
+       void get_relevant_audio_tracks (AudioTimeAxisView& base, std::set<AudioTimeAxisView*>& relevant_tracks);
        void mapover_audio_tracks (sigc::slot<void,AudioTimeAxisView&,uint32_t> sl);
 
        /* functions to be passed to mapover_audio_tracks(), possibly with sigc::bind()-supplied arguments */
@@ -424,10 +423,15 @@ class Editor : public PublicEditor
 
        /* end */
 
+       void button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type);
+       bool button_release_can_deselect;
+
        void catch_vanishing_audio_regionview (AudioRegionView *);
-       void set_selected_control_point_from_click (Selection::Operation op = Selection::Set, bool with_undo = true, bool no_remove=false);
-       void set_selected_track_from_click (Selection::Operation op = Selection::Set, bool with_undo = true, bool no_remove=false);
-       void set_selected_regionview_from_click (Selection::Operation op = Selection::Set, bool no_track_remove=false);
+
+       bool set_selected_control_point_from_click (bool press, Selection::Operation op = Selection::Set, bool with_undo = true, bool no_remove=false);
+       bool set_selected_track_from_click (bool press, Selection::Operation op = Selection::Set, bool with_undo = true, bool no_remove=false);
+       bool set_selected_regionview_from_click (bool press, Selection::Operation op = Selection::Set, bool no_track_remove=false);
+
        void set_selected_regionview_from_region_list (ARDOUR::Region& region, Selection::Operation op = Selection::Set);
        bool set_selected_regionview_from_map_event (GdkEventAny*, StreamView*, ARDOUR::Region*);
        void collect_new_region_view (AudioRegionView *);
@@ -841,6 +845,7 @@ class Editor : public PublicEditor
 
        /* EDITING OPERATIONS */
        
+       void reset_point_selection ();
        void toggle_region_mute ();
        void toggle_region_opaque ();
        void raise_region ();
@@ -1036,6 +1041,7 @@ class Editor : public PublicEditor
 
        void start_grab (GdkEvent*, Gdk::Cursor* cursor = 0);
        bool end_grab (ArdourCanvas::Item*, GdkEvent*);
+       void swap_grab (ArdourCanvas::Item*, Gdk::Cursor* cursor, uint32_t time);
 
        Gtk::Menu fade_context_menu;
        void popup_fade_context_menu (int, int, ArdourCanvas::Item*, ItemType);
@@ -1608,7 +1614,7 @@ class Editor : public PublicEditor
        /* visual history */
 
        UndoHistory visual_history;
-       UndoCommand current_visual_command;
+       UndoTransaction current_visual_command;
 
        void begin_reversible_visual_command (const string & cmd_name);
        void commit_reversible_visual_command ();
@@ -1668,9 +1674,8 @@ class Editor : public PublicEditor
            Gtk::ProgressBar      progress_bar;
            Gtk::ToggleButton     quick_button;
            Gtk::ToggleButton     antialias_button;
-           Gtk::Button           cancel_button;
-           Gtk::Button           action_button;
-           Gtk::HBox             lower_button_box;
+           Gtk::Button*          cancel_button;
+           Gtk::Button*          action_button;
            Gtk::HBox             upper_button_box;
            Gtk::VBox             packer;
            int                   status;