editor_canvas_events.cc now compiles
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 14 Nov 2005 16:24:21 +0000 (16:24 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 14 Nov 2005 16:24:21 +0000 (16:24 +0000)
git-svn-id: svn://localhost/trunk/ardour2@92 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/canvas.h [new file with mode: 0644]
gtk2_ardour/canvas_impl.h [new file with mode: 0644]
gtk2_ardour/editor.h
gtk2_ardour/editor_canvas_events.cc
gtk2_ardour/public_editor.h
gtk2_ardour/time_axis_view.cc
gtk2_ardour/time_axis_view.h

diff --git a/gtk2_ardour/canvas.h b/gtk2_ardour/canvas.h
new file mode 100644 (file)
index 0000000..da6ffb3
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef __ardour_gtk_canvas_h__
+#define __ardour_gtk_canvas_h__
+
+namespace Gnome {
+       namespace Canvas {
+               class Item;
+               class Group;
+               class Canvas;
+               class SimpleRect;
+               class SimpleLine;
+               class Polygon;
+               class WaveView;
+               class Text;
+               class Line;
+       }
+}
+
+namespace ArdourCanvas = Gnome::Canvas;
+
+#endif /* __ardour_gtk_canvas_h__ */
diff --git a/gtk2_ardour/canvas_impl.h b/gtk2_ardour/canvas_impl.h
new file mode 100644 (file)
index 0000000..f492d29
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef __ardour_gtk_canvas_impl_h__
+#define __ardour_gtk_canvas_impl_h__
+
+#include <libgnomecanvasmm/canvas.h>
+#include <libgnomecanvasmm/polygon.h>
+#include <libgnomecanvasmm/text.h>
+#include <libgnomecanvasmm/rect.h>
+#include <libgnomecanvasmm/line.h>
+#include <libgnomecanvasmm/item.h>
+
+using namespace ArdourCanvas;
+
+#endif /* __ardour_gtk_canvas_impl_h__ */
index 3602e4348c2d7d67a020a6a196ed2ce140198e52..d691ae6152da90ae031de579e88205d50336181a 100644 (file)
 #include <string>
 #include <sys/time.h>
 
+#include <libgnomecanvasmm/canvas.h>
+#include <libgnomecanvasmm/group.h>
+#include <libgnomecanvasmm/line.h>
+
 #include <cmath>
 
 #include <sndfile.h>
 #include <gtkmm/layout.h>
 #include <gtkmm/comboboxtext.h>
 
-#include <libgnomecanvasmm/canvas.h>
-#include <libgnomecanvasmm/polygon.h>
-#include <libgnomecanvasmm/text.h>
-#include <libgnomecanvasmm/rect.h>
-#include <libgnomecanvasmm/line.h>
-
 #include <gtkmm2ext/selector.h>
 #include <gtkmm2ext/click_box.h>
 
@@ -57,7 +55,7 @@
 #include "editing.h"
 #include "enums.h"
 #include "region_selection.h"
-#include "simplerect.h"
+#include "canvas.h"
 
 namespace Gtkmm2ext {
        class TearOff;
@@ -394,7 +392,7 @@ class Editor : public PublicEditor
        void refresh_location_display_internal (ARDOUR::Locations::LocationList&);
        void add_new_location (ARDOUR::Location *);
        void location_gone (ARDOUR::Location *);
-       void remove_marker (Gnome::Canvas::Item&, GdkEvent*);
+       void remove_marker (ArdourCanvas::Item&, GdkEvent*);
        gint really_remove_marker (ARDOUR::Location* loc);
 
        uint32_t location_marker_color;
@@ -422,7 +420,7 @@ class Editor : public PublicEditor
        typedef std::map<ARDOUR::Location*,LocationMarkers *> LocationMarkerMap;
        LocationMarkerMap location_markers;
 
-       void hide_marker (Gnome::Canvas::Item*, GdkEvent*);
+       void hide_marker (ArdourCanvas::Item*, GdkEvent*);
        void clear_marker_display ();
        void mouse_add_new_marker (jack_nframes_t where);
 
@@ -476,18 +474,19 @@ class Editor : public PublicEditor
 
        Gdk::Cursor*          current_canvas_cursor;
 
-       Gnome::Canvas::CanvasAA track_canvas;
-       Gnome::Canvas::CanvasAA time_canvas;
+       ArdourCanvas::CanvasAA track_canvas;
+       ArdourCanvas::CanvasAA time_canvas;
 
-       Gnome::Canvas::Text* first_action_message;
-       Gnome::Canvas::Text* verbose_canvas_cursor;
+       ArdourCanvas::Text* first_action_message;
+       ArdourCanvas::Text* verbose_canvas_cursor;
        bool                 verbose_cursor_visible;
 
        void session_control_changed (ARDOUR::Session::ControlType);
        void queue_session_control_changed (ARDOUR::Session::ControlType);
 
        
-       gint track_canvas_motion (GdkEvent*);
+       bool track_canvas_motion (GdkEvent*);
+
        void set_verbose_canvas_cursor (string, double x, double y);
        void set_verbose_canvas_cursor_text (string);
        void show_verbose_canvas_cursor();
@@ -502,15 +501,15 @@ class Editor : public PublicEditor
        Gtk::EventBox      track_canvas_event_box;
        Gtk::EventBox      time_button_event_box;
 
-       Gnome::Canvas::Group      *minsec_group;
-       Gnome::Canvas::Group      *bbt_group;
-       Gnome::Canvas::Group      *smpte_group;
-       Gnome::Canvas::Group      *frame_group;
-       Gnome::Canvas::Group      *tempo_group;
-       Gnome::Canvas::Group      *meter_group;
-       Gnome::Canvas::Group      *marker_group;
-       Gnome::Canvas::Group      *range_marker_group;
-       Gnome::Canvas::Group      *transport_marker_group;
+       ArdourCanvas::Group      *minsec_group;
+       ArdourCanvas::Group      *bbt_group;
+       ArdourCanvas::Group      *smpte_group;
+       ArdourCanvas::Group      *frame_group;
+       ArdourCanvas::Group      *tempo_group;
+       ArdourCanvas::Group      *meter_group;
+       ArdourCanvas::Group      *marker_group;
+       ArdourCanvas::Group      *range_marker_group;
+       ArdourCanvas::Group      *transport_marker_group;
        
        enum {
                ruler_metric_smpte = 0,
@@ -571,24 +570,24 @@ class Editor : public PublicEditor
        guint32 visible_timebars;
        Gtk::Menu          *editor_ruler_menu;
        
-       Gnome::Canvas::SimpleRect* tempo_bar;
-       Gnome::Canvas::SimpleRect* meter_bar;
-       Gnome::Canvas::SimpleRect* marker_bar;
-       Gnome::Canvas::SimpleRect* range_marker_bar;
-       Gnome::Canvas::SimpleRect* transport_marker_bar;
+       ArdourCanvas::SimpleRect* tempo_bar;
+       ArdourCanvas::SimpleRect* meter_bar;
+       ArdourCanvas::SimpleRect* marker_bar;
+       ArdourCanvas::SimpleRect* range_marker_bar;
+       ArdourCanvas::SimpleRect* transport_marker_bar;
 
        
-       Gnome::Canvas::Line* tempo_line;
-       Gnome::Canvas::Line* meter_line;
-       Gnome::Canvas::Line* marker_line;
-       Gnome::Canvas::Line* range_marker_line;
-       Gnome::Canvas::Line* transport_marker_line;
-
-       Gnome::Canvas::Points tempo_line_points;
-       Gnome::Canvas::Points meter_line_points;
-       Gnome::Canvas::Points marker_line_points;
-       Gnome::Canvas::Points range_marker_line_points;
-       Gnome::Canvas::Points transport_marker_line_points;
+       ArdourCanvas::Line* tempo_line;
+       ArdourCanvas::Line* meter_line;
+       ArdourCanvas::Line* marker_line;
+       ArdourCanvas::Line* range_marker_line;
+       ArdourCanvas::Line* transport_marker_line;
+
+       ArdourCanvas::Points tempo_line_points;
+       ArdourCanvas::Points meter_line_points;
+       ArdourCanvas::Points marker_line_points;
+       ArdourCanvas::Points range_marker_line_points;
+       ArdourCanvas::Points transport_marker_line_points;
 
        Gtk::Label  minsec_label;
        Gtk::Label  bbt_label;
@@ -606,8 +605,8 @@ class Editor : public PublicEditor
 
        struct Cursor {
            Editor&               editor;
-           Gnome::Canvas::Points* points;
-           Gnome::Canvas::Item*  canvas_item;
+           ArdourCanvas::Points* points;
+           ArdourCanvas::Item*  canvas_item;
            jack_nframes_t        current_frame;
            double                length;
 
@@ -625,7 +624,7 @@ class Editor : public PublicEditor
 
        Cursor* playhead_cursor;
        Cursor* edit_cursor;
-       Gnome::Canvas::Group* cursor_group;
+       ArdourCanvas::Group* cursor_group;
 
        void    cursor_to_next_region_point (Cursor*, ARDOUR::RegionPoint);
        void    cursor_to_previous_region_point (Cursor*, ARDOUR::RegionPoint);
@@ -825,12 +824,12 @@ class Editor : public PublicEditor
        jack_nframes_t cut_buffer_start;
        jack_nframes_t cut_buffer_length;
 
-       gint typed_event (GnomeCanvasItem*, GdkEvent*, ItemType);
-       gint button_press_handler (Gnome::Canvas::Item*, GdkEvent*, ItemType);
-       gint button_release_handler (Gnome::Canvas::Item*, GdkEvent*, ItemType);
-       gint motion_handler (Gnome::Canvas::Item*, GdkEvent*, ItemType);
-       gint enter_handler (Gnome::Canvas::Item*, GdkEvent*, ItemType);
-       gint leave_handler (Gnome::Canvas::Item*, GdkEvent*, ItemType);
+       bool typed_event (ArdourCanvas::Item*, GdkEvent*, ItemType);
+       bool button_press_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+       bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+       bool motion_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+       bool enter_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+       bool leave_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
        
        /* KEYMAP HANDLING */
 
@@ -1053,7 +1052,7 @@ class Editor : public PublicEditor
        void queue_route_list_reordered ();
 
        struct DragInfo {
-         Gnome::Canvas::Item* item;
+         ArdourCanvas::Item* item;
            void* data;
            jack_nframes_t last_frame_position;
            int32_t pointer_frame_offset;
@@ -1065,8 +1064,8 @@ class Editor : public PublicEditor
            double cumulative_y_drag;
            double current_pointer_x;
            double current_pointer_y;
-         void (Editor::*motion_callback)(Gnome::Canvas::Item*, GdkEvent*);
-         void (Editor::*finished_callback)(Gnome::Canvas::Item*, GdkEvent*);
+         void (Editor::*motion_callback)(ArdourCanvas::Item*, GdkEvent*);
+         void (Editor::*finished_callback)(ArdourCanvas::Item*, GdkEvent*);
            TimeAxisView* last_trackview;
            bool x_constrained;
            bool copy;
@@ -1086,56 +1085,56 @@ class Editor : public PublicEditor
        LineDragInfo current_line_drag_info;
 
        void start_grab (GdkEvent*, Gdk::Cursor* cursor = 0);
-       bool end_grab (Gnome::Canvas::Item*, GdkEvent*);
+       bool end_grab (ArdourCanvas::Item*, GdkEvent*);
 
        Gtk::Menu fade_context_menu;
-       void popup_fade_context_menu (int, int, Gnome::Canvas::Item*, ItemType);
-
-       void start_fade_in_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_fade_out_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void fade_in_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void fade_out_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void fade_in_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void fade_out_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
+       void popup_fade_context_menu (int, int, ArdourCanvas::Item*, ItemType);
+
+       void start_fade_in_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_fade_out_grab (ArdourCanvas::Item*, GdkEvent*);
+       void fade_in_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void fade_out_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void fade_in_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void fade_out_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
        
        std::set<ARDOUR::Playlist*> motion_frozen_playlists;
-       void region_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void region_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void region_copy_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-
-       void cursor_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void cursor_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void marker_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void marker_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void control_point_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void control_point_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void line_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void line_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-
-       void tempo_marker_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void tempo_marker_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void meter_marker_drag_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
-       void meter_marker_drag_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
-
-       gint mouse_rename_region (Gnome::Canvas::Item*, GdkEvent*);
-
-       void start_region_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_region_copy_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_region_brush_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_selection_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_cursor_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_marker_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_control_point_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_line_grab_from_regionview (Gnome::Canvas::Item*, GdkEvent*);
-       void start_line_grab_from_line (Gnome::Canvas::Item*, GdkEvent*);
+       void region_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void region_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void region_copy_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+
+       void cursor_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void cursor_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void marker_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void marker_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void control_point_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void control_point_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void line_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void line_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+
+       void tempo_marker_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void tempo_marker_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+       void meter_marker_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+       void meter_marker_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+
+       gint mouse_rename_region (ArdourCanvas::Item*, GdkEvent*);
+
+       void start_region_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_region_copy_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_region_brush_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_selection_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_cursor_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_marker_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_control_point_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_line_grab_from_regionview (ArdourCanvas::Item*, GdkEvent*);
+       void start_line_grab_from_line (ArdourCanvas::Item*, GdkEvent*);
        void start_line_grab (AutomationLine *, GdkEvent*);
-       void start_tempo_marker_grab (Gnome::Canvas::Item*, GdkEvent*);
-       void start_meter_marker_grab (Gnome::Canvas::Item*, GdkEvent*);
+       void start_tempo_marker_grab (ArdourCanvas::Item*, GdkEvent*);
+       void start_meter_marker_grab (ArdourCanvas::Item*, GdkEvent*);
 
        void region_view_item_click (AudioRegionView&, GdkEventButton*);
 
-       void remove_gain_control_point (Gnome::Canvas::Item*, GdkEvent*);
-       void remove_control_point (Gnome::Canvas::Item*, GdkEvent*);
+       void remove_gain_control_point (ArdourCanvas::Item*, GdkEvent*);
+       void remove_control_point (ArdourCanvas::Item*, GdkEvent*);
 
        void mouse_brush_insert_region (AudioRegionView*, jack_nframes_t pos);
        void brush (jack_nframes_t);
@@ -1147,32 +1146,36 @@ class Editor : public PublicEditor
 
        // FIXED FOR GTK2
 
-       bool canvas_control_point_event (GdkEvent* event,ControlPoint*);
-       bool canvas_line_event (GdkEvent* event,AutomationLine*);
-       bool canvas_selection_rect_event (GdkEvent* event,SelectionRect*);
-       bool canvas_selection_start_trim_event (GdkEvent* event,SelectionRect*);
-       bool canvas_selection_end_trim_event (GdkEvent* event,SelectionRect*);
-       
+
+       bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*);
+       bool canvas_line_event (GdkEvent* event,ArdourCanvas::Item*, AutomationLine*);
+       bool canvas_selection_rect_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
+       bool canvas_selection_start_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
+       bool canvas_selection_end_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
+       bool canvas_crossfade_view_event (GdkEvent* event,ArdourCanvas::Item*, CrossfadeView*);
+       bool canvas_fade_in_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_fade_in_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_fade_out_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_fade_out_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_region_view_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_region_view_name_highlight_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_region_view_name_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+       bool canvas_stream_view_event (GdkEvent* event,ArdourCanvas::Item*, AudioTimeAxisView*);
+       bool canvas_marker_event (GdkEvent* event,ArdourCanvas::Item*, Marker*);
+       bool canvas_zoom_rect_event (GdkEvent* event,ArdourCanvas::Item*);
+       bool canvas_tempo_marker_event (GdkEvent* event,ArdourCanvas::Item*, TempoMarker*);
+       bool canvas_meter_marker_event (GdkEvent* event,ArdourCanvas::Item*, MeterMarker*);
+       bool canvas_automation_track_event(GdkEvent* event, ArdourCanvas::Item*, AutomationTimeAxisView*) ;
+
+       bool canvas_tempo_bar_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_meter_bar_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_range_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_transport_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
+
        // PENDING
 
-       gint canvas_crossfade_view_event (GdkEvent* event);
-       gint canvas_fade_in_event (GdkEvent* event);
-       gint canvas_fade_in_handle_event (GdkEvent* event);
-       gint canvas_fade_out_event (GdkEvent* event);
-       gint canvas_fade_out_handle_event (GdkEvent* event);
-       gint canvas_region_view_event (GdkEvent* event);
-       gint canvas_region_view_name_highlight_event (GdkEvent* event);
-       gint canvas_region_view_name_event (GdkEvent* event);
-       gint canvas_stream_view_event (GdkEvent* event);
-       gint canvas_marker_event (GdkEvent* event);
-       gint canvas_zoom_rect_event (GdkEvent* event);
-       gint canvas_tempo_marker_event (GdkEvent* event);
-       gint canvas_meter_marker_event (GdkEvent* event);
-       gint canvas_tempo_bar_event (GdkEvent* event);
-       gint canvas_meter_bar_event (GdkEvent* event);
-       gint canvas_marker_bar_event (GdkEvent* event);
-       gint canvas_range_marker_bar_event (GdkEvent* event);
-       gint canvas_transport_marker_bar_event (GdkEvent* event);
+
        gint canvas_imageframe_item_view_event(GdkEvent* event) ;
        gint canvas_imageframe_view_event(GdkEvent* event) ;
        gint canvas_imageframe_start_handle_event(GdkEvent* event) ;
@@ -1181,16 +1184,15 @@ class Editor : public PublicEditor
        gint canvas_markerview_item_view_event(GdkEvent* event) ;
        gint canvas_markerview_start_handle_event(GdkEvent* event) ;
        gint canvas_markerview_end_handle_event(GdkEvent* event) ;
-       gint canvas_automation_track_event(GdkEvent* event) ;
 
+       /* non-public event handlers */
 
-       gint canvas_copy_region_event (GdkEvent* event);
-       gint canvas_playhead_cursor_event (GdkEvent* event);
-       gint canvas_edit_cursor_event (GdkEvent* event);
-       gint track_canvas_event (GdkEvent* event);
+       bool canvas_playhead_cursor_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_edit_cursor_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool track_canvas_event (GdkEvent* event, ArdourCanvas::Item*);
 
-       gint track_canvas_button_press_event (GdkEventButton *);
-       gint track_canvas_button_release_event (GdkEventButton *);
+       bool track_canvas_button_press_event (GdkEventButton *);
+       bool track_canvas_button_release_event (GdkEventButton *);
        
        void track_canvas_allocate (GtkAllocation* alloc);
        void time_canvas_allocate (GtkAllocation* alloc);
@@ -1237,12 +1239,12 @@ class Editor : public PublicEditor
 
        ARDOUR::TempoMap::BBTPointList *current_bbt_points;
        
-       typedef vector<Gnome::Canvas::Line*> TimeLineList;
+       typedef vector<ArdourCanvas::Line*> TimeLineList;
        TimeLineList free_measure_lines;
        TimeLineList used_measure_lines;
 
-       Gnome::Canvas::Group* time_line_group;
-       Gnome::Canvas::Line* get_time_line ();
+       ArdourCanvas::Group* time_line_group;
+       ArdourCanvas::Line* get_time_line ();
        void hide_measures ();
        void draw_measures ();
        void draw_time_bars ();
@@ -1252,15 +1254,15 @@ class Editor : public PublicEditor
        void mouse_add_new_tempo_event (jack_nframes_t where);
        void mouse_add_new_meter_event (jack_nframes_t where);
 
-       void remove_tempo_marker (Gnome::Canvas::Item*);
-       void remove_meter_marker (Gnome::Canvas::Item*);
+       void remove_tempo_marker (ArdourCanvas::Item*);
+       void remove_meter_marker (ArdourCanvas::Item*);
        gint real_remove_tempo_marker (ARDOUR::TempoSection*);
        gint real_remove_meter_marker (ARDOUR::MeterSection*);
        
        void edit_tempo_section (ARDOUR::TempoSection*);
        void edit_meter_section (ARDOUR::MeterSection*);
-       void edit_tempo_marker (Gnome::Canvas::Item*);
-       void edit_meter_marker (Gnome::Canvas::Item*);
+       void edit_tempo_marker (ArdourCanvas::Item*);
+       void edit_meter_marker (ArdourCanvas::Item*);
        
        void marker_menu_edit ();
        void marker_menu_remove ();
@@ -1276,10 +1278,10 @@ class Editor : public PublicEditor
        void update_loop_range_view (bool visibility=false);
        void update_punch_range_view (bool visibility=false);
         gint new_transport_marker_menu_popdown (GdkEventAny*);
-       void marker_context_menu (GdkEventButton*, Gnome::Canvas::Item*);
-       void tm_marker_context_menu (GdkEventButton*, Gnome::Canvas::Item*);
-       void transport_marker_context_menu (GdkEventButton*, Gnome::Canvas::Item*);
-       void new_transport_marker_context_menu (GdkEventButton*, Gnome::Canvas::Item*);
+       void marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
+       void tm_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_marker_menu ();
        void build_tm_marker_menu ();
        void build_transport_marker_menu ();
@@ -1289,7 +1291,7 @@ class Editor : public PublicEditor
        Gtk::Menu* marker_menu;
        Gtk::Menu* transport_marker_menu;
        Gtk::Menu* new_transport_marker_menu;
-       Gnome::Canvas::Item* marker_menu_item;
+       ArdourCanvas::Item* marker_menu_item;
 
        typedef list<Marker*> Marks;
        Marks metric_marks;
@@ -1403,9 +1405,9 @@ class Editor : public PublicEditor
                SelectionMove
        } selection_op;
 
-       void start_selection_op (Gnome::Canvas::Item* item, GdkEvent* event, SelectionOp);
-       void drag_selection (Gnome::Canvas::Item* item, GdkEvent* event);
-       void end_selection_op (Gnome::Canvas::Item* item, GdkEvent* event);
+       void start_selection_op (ArdourCanvas::Item* item, GdkEvent* event, SelectionOp);
+       void drag_selection (ArdourCanvas::Item* item, GdkEvent* event);
+       void end_selection_op (ArdourCanvas::Item* item, GdkEvent* event);
        void cancel_selection ();
 
        void region_selection_op (void (ARDOUR::Region::*pmf)(void));
@@ -1424,27 +1426,27 @@ class Editor : public PublicEditor
                CreateTransportMarker
        } range_marker_op;
 
-       void start_range_markerbar_op (Gnome::Canvas::Item* item, GdkEvent* event, RangeMarkerOp);
-       void drag_range_markerbar_op (Gnome::Canvas::Item* item, GdkEvent* event);
-       void end_range_markerbar_op (Gnome::Canvas::Item* item, GdkEvent* event);
+       void start_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event, RangeMarkerOp);
+       void drag_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event);
+       void end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event);
 
-       Gnome::Canvas::SimpleRect*    range_bar_drag_rect;
-       Gnome::Canvas::SimpleRect*      transport_bar_drag_rect;
-       Gnome::Canvas::Line*      marker_drag_line;
-       Gnome::Canvas::Points*    marker_drag_line_points;
-       Gnome::Canvas::SimpleRect*      range_marker_drag_rect;
+       ArdourCanvas::SimpleRect*    range_bar_drag_rect;
+       ArdourCanvas::SimpleRect*      transport_bar_drag_rect;
+       ArdourCanvas::Line*      marker_drag_line;
+       ArdourCanvas::Points*    marker_drag_line_points;
+       ArdourCanvas::SimpleRect*      range_marker_drag_rect;
 
        void update_marker_drag_item (ARDOUR::Location *);
        
-       Gnome::Canvas::SimpleRect      *transport_bar_range_rect;
-       Gnome::Canvas::SimpleRect     *transport_bar_preroll_rect;
-       Gnome::Canvas::SimpleRect      *transport_bar_postroll_rect;
-       Gnome::Canvas::SimpleRect     *transport_loop_range_rect;
-       Gnome::Canvas::SimpleRect      *transport_punch_range_rect;
-       Gnome::Canvas::Line           *transport_punchin_line;
-       Gnome::Canvas::Line           *transport_punchout_line;
-       Gnome::Canvas::SimpleRect     *transport_preroll_rect;
-       Gnome::Canvas::SimpleRect     *transport_postroll_rect;
+       ArdourCanvas::SimpleRect      *transport_bar_range_rect;
+       ArdourCanvas::SimpleRect     *transport_bar_preroll_rect;
+       ArdourCanvas::SimpleRect      *transport_bar_postroll_rect;
+       ArdourCanvas::SimpleRect     *transport_loop_range_rect;
+       ArdourCanvas::SimpleRect      *transport_punch_range_rect;
+       ArdourCanvas::Line           *transport_punchin_line;
+       ArdourCanvas::Line           *transport_punchout_line;
+       ArdourCanvas::SimpleRect     *transport_preroll_rect;
+       ArdourCanvas::SimpleRect     *transport_postroll_rect;
 
        ARDOUR::Location*  transport_loop_location();
        ARDOUR::Location*  transport_punch_location();
@@ -1453,21 +1455,21 @@ class Editor : public PublicEditor
        
        /* object rubberband select process */
        
-       void start_rubberband_select (Gnome::Canvas::Item* item, GdkEvent* event);
-       void drag_rubberband_select (Gnome::Canvas::Item* item, GdkEvent* event);
-       void end_rubberband_select (Gnome::Canvas::Item* item, GdkEvent* event);
+       void start_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event);
+       void drag_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event);
+       void end_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event);
 
        bool select_all_within (jack_nframes_t start, jack_nframes_t end, gdouble topy, gdouble boty, bool add);
        
-       Gnome::Canvas::Item   *rubberband_rect;
+       ArdourCanvas::Item   *rubberband_rect;
        
        /* mouse zoom process */
 
-       void start_mouse_zoom (Gnome::Canvas::Item* item, GdkEvent* event);
-       void drag_mouse_zoom (Gnome::Canvas::Item* item, GdkEvent* event);
-       void end_mouse_zoom (Gnome::Canvas::Item* item, GdkEvent* event);
+       void start_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event);
+       void drag_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event);
+       void end_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event);
 
-       Gnome::Canvas::Item   *zoom_rect;
+       ArdourCanvas::Item   *zoom_rect;
        void reposition_zoom_rect (jack_nframes_t start, jack_nframes_t end);
        
        /* diskstream/route display management */
@@ -1562,14 +1564,14 @@ class Editor : public PublicEditor
                ContentsTrim,
        } trim_op;
 
-       void start_trim (Gnome::Canvas::Item*, GdkEvent*);
+       void start_trim (ArdourCanvas::Item*, GdkEvent*);
        void point_trim (GdkEvent*);
-       void trim_motion_callback (Gnome::Canvas::Item*, GdkEvent*);
+       void trim_motion_callback (ArdourCanvas::Item*, GdkEvent*);
        void single_contents_trim (AudioRegionView&, jack_nframes_t, bool, bool, bool);
        void single_start_trim (AudioRegionView&, jack_nframes_t, bool, bool);
        void single_end_trim (AudioRegionView&, jack_nframes_t, bool, bool);
 
-       void trim_finished_callback (Gnome::Canvas::Item*, GdkEvent*);
+       void trim_finished_callback (ArdourCanvas::Item*, GdkEvent*);
        void thaw_region_after_trim (AudioRegionView& rv);
        
        void trim_region_to_edit_cursor ();
@@ -1678,9 +1680,9 @@ class Editor : public PublicEditor
 
        jack_nframes_t event_frame (GdkEvent*, double* px = 0, double* py = 0);
 
-       void time_fx_motion (Gnome::Canvas::Item*, GdkEvent*);
-       void start_time_fx (Gnome::Canvas::Item*, GdkEvent*);
-       void end_time_fx (Gnome::Canvas::Item*, GdkEvent*);
+       void time_fx_motion (ArdourCanvas::Item*, GdkEvent*);
+       void start_time_fx (ArdourCanvas::Item*, GdkEvent*);
+       void end_time_fx (ArdourCanvas::Item*, GdkEvent*);
 
        struct TimeStretchDialog : public ArdourDialog {
            ARDOUR::Session::TimeStretchRequest request;
@@ -1738,39 +1740,39 @@ class Editor : public PublicEditor
        void handle_new_imageframe_time_axis_view(std::string track_name, void* src) ;
        void handle_new_imageframe_marker_time_axis_view(std::string track_name, TimeAxisView* marked_track) ;
 
-       void start_imageframe_grab(Gnome::Canvas::Item*, GdkEvent*) ;
-       void start_markerview_grab(Gnome::Canvas::Item*, GdkEvent*) ;
-
-       void imageframe_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent*) ;
-       void markerview_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent*) ;
-       void timeaxis_item_drag_finished_callback(Gnome::Canvas::Item*, GdkEvent*) ;
-
-       gint canvas_imageframe_item_view_event(Gnome::Canvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
-       gint canvas_imageframe_view_event(Gnome::Canvas::Item* item, GdkEvent* event, ImageFrameTimeAxis* ifta);
-       gint canvas_imageframe_start_handle_event(Gnome::Canvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
-       gint canvas_imageframe_end_handle_event(Gnome::Canvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
-
-       gint canvas_marker_time_axis_view_event(Gnome::Canvas::Item* item, GdkEvent* event, MarkerTimeAxis* mta);
-       gint canvas_markerview_item_view_event(Gnome::Canvas::Item* item, GdkEvent* event, MarkerView* mv);
-       gint canvas_markerview_start_handle_event(Gnome::Canvas::Item* item, GdkEvent* event, MarkerView* mv);
-       gint canvas_markerview_end_handle_event(Gnome::Canvas::Item* item, GdkEvent* event, MarkerView* mv);
-
-       void imageframe_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void imageframe_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void imageframe_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void imageframe_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void imageframe_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void imageframe_end_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event) ;
+       void start_imageframe_grab(ArdourCanvas::Item*, GdkEvent*) ;
+       void start_markerview_grab(ArdourCanvas::Item*, GdkEvent*) ;
+
+       void imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent*) ;
+       void markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent*) ;
+       void timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent*) ;
+
+       gint canvas_imageframe_item_view_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
+       gint canvas_imageframe_view_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameTimeAxis* ifta);
+       gint canvas_imageframe_start_handle_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
+       gint canvas_imageframe_end_handle_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
+
+       gint canvas_marker_time_axis_view_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerTimeAxis* mta);
+       gint canvas_markerview_item_view_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
+       gint canvas_markerview_start_handle_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
+       gint canvas_markerview_end_handle_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
+
+       void imageframe_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void imageframe_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void imageframe_end_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
        
-       void markerview_item_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void markerview_item_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void markerview_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void markerview_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void markerview_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event) ;
-       void markerview_end_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event) ;
-
-       void popup_imageframe_edit_menu(int button, int32_t time, Gnome::Canvas::Item* ifv, bool with_frame) ;
-       void popup_marker_time_axis_edit_menu(int button, int32_t time, Gnome::Canvas::Item* ifv, bool with_frame) ;
+       void markerview_item_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void markerview_item_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
+       void markerview_end_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
+
+       void popup_imageframe_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_frame) ;
+       void popup_marker_time_axis_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_frame) ;
 
        ImageFrameSocketHandler* image_socket_listener ;
        /* </CMT Additions> */
index eb05094429aab5d7e26da567a81b8f3e03d027b2..b2b64e55450a46ffedd666e0ae81f2ce0dcdc8d8 100644 (file)
@@ -21,8 +21,6 @@
 #include <cstdlib>
 #include <cmath>
 
-#include <libgnomecanvas/libgnomecanvas.h>
-
 #include <ardour/diskstream.h>
 #include <ardour/audioplaylist.h>
 
@@ -37,6 +35,8 @@
 #include "automation_pan_line.h"
 #include "automation_time_axis.h"
 #include "redirect_automation_line.h"
+#include "canvas_impl.h"
+#include "simplerect.h"
 
 #include "i18n.h"
 
@@ -44,258 +44,16 @@ using namespace sigc;
 using namespace ARDOUR;
 using namespace Gtk;
 
-gint
-Editor::_canvas_copy_region_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = (Editor*)data;
-       return editor->canvas_copy_region_event (item, event);
-}
-
-gint
-Editor::_canvas_crossfade_view_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       CrossfadeView* xfv = static_cast<CrossfadeView*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&xfv->get_time_axis_view().editor);
-       return editor->canvas_crossfade_view_event (item, event, xfv);
-}
-
-gint
-Editor::_canvas_fade_in_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView* rv = static_cast<AudioRegionView*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-       return editor->canvas_fade_in_event (item, event, rv);
-}
-
-gint
-Editor::_canvas_fade_in_handle_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView* rv = static_cast<AudioRegionView*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-       return editor->canvas_fade_in_handle_event (item, event, rv);
-}
-
-gint
-Editor::_canvas_fade_out_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView* rv = static_cast<AudioRegionView*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-       return editor->canvas_fade_out_event (item, event, rv);
-}
-
-gint
-Editor::_canvas_fade_out_handle_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView* rv = static_cast<AudioRegionView*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-       return editor->canvas_fade_out_handle_event (item, event, rv);
-}
-
-gint
-Editor::_canvas_region_view_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView *rv = reinterpret_cast<AudioRegionView *>(data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-
-       return editor->canvas_region_view_event (item, event, rv);
-}
-
-gint
-Editor::_canvas_region_view_name_highlight_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView *rv = reinterpret_cast<AudioRegionView *> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-
-       return editor->canvas_region_view_name_highlight_event (item, event);
-}
-
-gint
-Editor::_canvas_region_view_name_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AudioRegionView *rv = reinterpret_cast<AudioRegionView *> (data);
-       Editor* editor = dynamic_cast<Editor*>(&rv->get_time_axis_view().editor);
-       
-       return editor->canvas_region_view_name_event (item, event);
-}
-
-gint
-Editor::_canvas_stream_view_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* note that stream views are by definition audio track views */
-
-       AudioTimeAxisView *tv = (AudioTimeAxisView *) data;
-       Editor* editor = dynamic_cast<Editor*>(&tv->editor);
-
-       return editor->canvas_stream_view_event (item, event, tv);
-}
-
-gint
-Editor::_canvas_automation_track_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AutomationTimeAxisView* atv = (AutomationTimeAxisView*) data;
-       Editor* editor = dynamic_cast<Editor*>(&atv->editor);
-
-       return editor->canvas_automation_track_event (item, event, atv);
-}
-
-gint
-Editor::_canvas_control_point_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       ControlPoint *cp = reinterpret_cast<ControlPoint *>(data);
-       Editor* editor = dynamic_cast<Editor*>(&cp->line.trackview.editor);
-
-       switch (event->type) {
-       case GDK_BUTTON_PRESS:
-       case GDK_2BUTTON_PRESS:
-       case GDK_3BUTTON_PRESS:
-               clicked_control_point = cp;
-               clicked_trackview = &cp->line.trackview;
-               clicked_audio_trackview = dynamic_cast<AudioTimeAxisView*>(clicked_trackview);
-               clicked_regionview = 0;
-               break;
-
-       default:
-               break;
-       }
-
-       return editor->canvas_control_point_event (item, event);
-}
-
-gint
-Editor::_canvas_line_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       AutomationLine *line = reinterpret_cast<AutomationLine*> (data);
-       Editor* editor = dynamic_cast<Editor*>(&line->trackview.editor);
-
-       return editor->canvas_line_event (item, event);
-}
-
-gint
-Editor::_canvas_tempo_marker_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_tempo_marker_event (item, event);
-}
-
-gint
-Editor::_canvas_meter_marker_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor *) data);
-       return editor->canvas_meter_marker_event (item, event);
-}
-
-gint
-Editor::_canvas_tempo_bar_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* XXX NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_tempo_bar_event (item, event);
-}
-
-gint
-Editor::_canvas_meter_bar_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* XXX NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_meter_bar_event (item, event);
-}
-
-gint
-Editor::_canvas_marker_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_marker_event (item, event);
-}
-
-gint
-Editor::_canvas_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_marker_bar_event (item, event);
-}
-
-gint
-Editor::_canvas_range_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_range_marker_bar_event (item, event);
-}
-
-gint
-Editor::_canvas_transport_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_transport_marker_bar_event (item, event);
-}
-
-gint
-Editor::_canvas_playhead_cursor_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_playhead_cursor_event (item, event);
-}
-
-gint
-Editor::_canvas_edit_cursor_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-       Editor* editor = (Editor*) data;
-       return editor->canvas_edit_cursor_event (item, event);
-}
-
-gint
-Editor::_canvas_zoom_rect_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_zoom_rect_event (item, event);
-}
-
-gint
-Editor::_canvas_selection_rect_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_selection_rect_event (item, event);
-}
-
-gint
-Editor::_canvas_selection_start_trim_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_selection_start_trim_event (item, event);
-}
-
-gint
-Editor::_canvas_selection_end_trim_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       Editor* editor = dynamic_cast<Editor*>((PublicEditor*) data);
-       return editor->canvas_selection_end_trim_event (item, event);
-}
-
-gint
-Editor::_track_canvas_event (GnomeCanvasItem *item, GdkEvent *event, gpointer data)
-{
-       /* NO CAST */
-
-       Editor* editor = (Editor*) data;
-       return editor->track_canvas_event (item, event);
-}
-
-/********** END OF.TATIC EVENT HANDLERS */
-
-gint
-Editor::track_canvas_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::track_canvas_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        gint x, y;
 
        switch (event->type) {
        case GDK_MOTION_NOTIFY:
                /* keep those motion events coming */
-               track_canvas->get_pointer (x, y);
-               return track_canvas_motion (item, event);
+               track_canvas.get_pointer (x, y);
+               return track_canvas_motion (event);
 
        case GDK_BUTTON_RELEASE:
                switch (event->button.button) {
@@ -313,18 +71,18 @@ Editor::track_canvas_event (GnomeCanvasItem *item, GdkEvent *event)
        return FALSE;
 }
 
-gint
-Editor::track_canvas_motion (GnomeCanvasItem *item, GdkEvent *ev)
+bool
+Editor::track_canvas_motion (GdkEvent *ev)
 {
        if (verbose_cursor_visible) {
                verbose_canvas_cursor->set_property ("x", ev->motion.x + 20);
                verbose_canvas_cursor->set_property ("y", ev->motion.y + 20);
        }
-       return FALSE;
+       return false;
 }
 
-gint
-Editor::typed_event (GnomeCanvasItem *item, GdkEvent *event, ItemType type)
+bool
+Editor::typed_event (ArdourCanvas::Item* item, GdkEvent *event, ItemType type)
 {
        gint ret = FALSE;
        
@@ -356,8 +114,8 @@ Editor::typed_event (GnomeCanvasItem *item, GdkEvent *event, ItemType type)
        return ret;
 }
 
-gint
-Editor::canvas_region_view_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegionView *rv)
+bool
+Editor::canvas_region_view_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv)
 {
        gint ret = FALSE;
        
@@ -395,10 +153,10 @@ Editor::canvas_region_view_event (GnomeCanvasItem *item, GdkEvent *event, AudioR
        return ret;
 }
 
-gint
-Editor::canvas_stream_view_event (GnomeCanvasItem *item, GdkEvent *event, AudioTimeAxisView *tv)
+bool
+Editor::canvas_stream_view_event (GdkEvent *event, ArdourCanvas::Item* item, AudioTimeAxisView *tv)
 {
-       gint ret = FALSE;
+       bool ret = FALSE;
        
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -431,10 +189,10 @@ Editor::canvas_stream_view_event (GnomeCanvasItem *item, GdkEvent *event, AudioT
 
 
 
-gint
-Editor::canvas_automation_track_event (GnomeCanvasItem *item, GdkEvent *event, AutomationTimeAxisView *atv)
+bool
+Editor::canvas_automation_track_event (GdkEvent *event, ArdourCanvas::Item* item, AutomationTimeAxisView *atv)
 {
-       gint ret = FALSE;
+       bool ret = false;
        
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -470,8 +228,8 @@ Editor::canvas_automation_track_event (GnomeCanvasItem *item, GdkEvent *event, A
        return ret;
 }
 
-gint
-Editor::canvas_fade_in_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegionView *rv)
+bool
+Editor::canvas_fade_in_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv)
 {
        /* we handle only button 3 press/release events */
 
@@ -499,13 +257,13 @@ Editor::canvas_fade_in_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegio
 
        /* proxy for the regionview */
        
-       return canvas_region_view_event (rv->get_canvas_group(), event, rv);
+       return canvas_region_view_event (event, rv->get_canvas_group(), rv);
 }
 
-gint
-Editor::canvas_fade_in_handle_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegionView *rv)
+bool
+Editor::canvas_fade_in_handle_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv)
 {
-       gint ret = FALSE;
+       bool ret = false;
        
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -541,8 +299,8 @@ Editor::canvas_fade_in_handle_event (GnomeCanvasItem *item, GdkEvent *event, Aud
        return ret;
 }
 
-gint
-Editor::canvas_fade_out_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegionView *rv)
+bool
+Editor::canvas_fade_out_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv)
 {
        /* we handle only button 3 press/release events */
 
@@ -570,13 +328,13 @@ Editor::canvas_fade_out_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegi
 
        /* proxy for the regionview */
        
-       return canvas_region_view_event (rv->get_canvas_group(), event, rv);
+       return canvas_region_view_event (event, rv->get_canvas_group(), rv);
 }
 
-gint
-Editor::canvas_fade_out_handle_event (GnomeCanvasItem *item, GdkEvent *event, AudioRegionView *rv)
+bool
+Editor::canvas_fade_out_handle_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv)
 {
-       gint ret = FALSE;
+       bool ret = false;
        
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -618,8 +376,8 @@ struct DescendingRegionLayerSorter {
     }
 };
 
-gint
-Editor::canvas_crossfade_view_event (GnomeCanvasItem* item, GdkEvent* event, CrossfadeView* xfv)
+bool
+Editor::canvas_crossfade_view_event (GdkEvent* event, ArdourCanvas::Item* item, CrossfadeView* xfv)
 {
        /* we handle only button 3 press/release events */
 
@@ -634,7 +392,7 @@ Editor::canvas_crossfade_view_event (GnomeCanvasItem* item, GdkEvent* event, Cro
 
        case GDK_BUTTON_RELEASE:
                if (event->button.button == 3) {
-                       gint ret = button_release_handler (item, event, CrossfadeViewItem);
+                       bool ret = button_release_handler (item, event, CrossfadeViewItem);
                        return ret;
                }
                break;
@@ -671,7 +429,7 @@ Editor::canvas_crossfade_view_event (GnomeCanvasItem* item, GdkEvent* event, Cro
                                
                                delete rl;
 
-                               return canvas_region_view_event (arv->get_canvas_group(), event, arv);
+                               return canvas_region_view_event (event, arv->get_canvas_group(), arv);
                        }
                }
        }
@@ -679,15 +437,23 @@ Editor::canvas_crossfade_view_event (GnomeCanvasItem* item, GdkEvent* event, Cro
        return TRUE;
 }
 
-gint
-Editor::canvas_control_point_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_control_point_event (GdkEvent *event, ArdourCanvas::Item* item, ControlPoint* cp)
 {
        ItemType type;
-       ControlPoint *cp;
-       
-       if ((cp = static_cast<ControlPoint *> (gtk_object_get_data (GTK_OBJECT(item), "control_point"))) == 0) {
-               fatal << _("programming error: control point canvas item has no control point object pointer!") << endmsg;
-               /*NOTREACHED*/
+
+       switch (event->type) {
+       case GDK_BUTTON_PRESS:
+       case GDK_2BUTTON_PRESS:
+       case GDK_3BUTTON_PRESS:
+               clicked_control_point = cp;
+               clicked_trackview = &cp->line.trackview;
+               clicked_audio_trackview = dynamic_cast<AudioTimeAxisView*>(clicked_trackview);
+               clicked_regionview = 0;
+               break;
+
+       default:
+               break;
        }
 
        if (dynamic_cast<AudioRegionGainLine*> (&cp->line) != 0) {
@@ -699,22 +465,16 @@ Editor::canvas_control_point_event (GnomeCanvasItem *item, GdkEvent *event)
        } else if (dynamic_cast<RedirectAutomationLine*> (&cp->line) != 0) {
                type = RedirectAutomationControlPointItem;
        } else {
-               return FALSE;
+               return false;
        }
 
        return typed_event (item, event, type);
 }
 
-gint
-Editor::canvas_line_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_line_event (GdkEvent *event, ArdourCanvas::Item* item, AutomationLine* al)
 {
        ItemType type;
-       AutomationLine *al;
-       
-       if ((al = static_cast<AutomationLine *> (gtk_object_get_data (GTK_OBJECT(item), "line"))) == 0) {
-               fatal << _("programming error: line canvas item has no line object pointer!") << endmsg;
-               /*NOTREACHED*/
-       }
 
        if (dynamic_cast<AudioRegionGainLine*> (al) != 0) {
                type = GainLineItem;
@@ -725,24 +485,17 @@ Editor::canvas_line_event (GnomeCanvasItem *item, GdkEvent *event)
        } else if (dynamic_cast<RedirectAutomationLine*> (al) != 0) {
                type = RedirectAutomationLineItem;
        } else {
-               return FALSE;
+               return false;
        }
 
        return typed_event (item, event, type);
 }
 
-
-gint
-Editor::canvas_selection_rect_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_selection_rect_event (GdkEvent *event, ArdourCanvas::Item* item, SelectionRect* rect)
 {
-       gint ret = FALSE;
-       SelectionRect *rect = 0;
-
-       if ((rect = reinterpret_cast<SelectionRect*> (gtk_object_get_data (GTK_OBJECT(item), "rect"))) == 0) {
-               fatal << _("programming error: no \"rect\" pointer associated with selection item") << endmsg;
-               /*NOTREACHED*/
-       }
-
+       bool ret = false;
+       
        switch (event->type) {
        case GDK_BUTTON_PRESS:
        case GDK_2BUTTON_PRESS:
@@ -772,16 +525,10 @@ Editor::canvas_selection_rect_event (GnomeCanvasItem *item, GdkEvent *event)
        return ret;
 }
 
-gint
-Editor::canvas_selection_start_trim_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_selection_start_trim_event (GdkEvent *event, ArdourCanvas::Item* item, SelectionRect* rect)
 {
-       gint ret = FALSE;
-       SelectionRect *rect = 0;
-
-       if ((rect = reinterpret_cast<SelectionRect*> (gtk_object_get_data (GTK_OBJECT(item), "rect"))) == 0) {
-               fatal << _("programming error: no \"rect\" pointer associated with selection item") << endmsg;
-               /*NOTREACHED*/
-       }
+       bool ret = false;
 
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -811,16 +558,10 @@ Editor::canvas_selection_start_trim_event (GnomeCanvasItem *item, GdkEvent *even
        return ret;
 }
 
-gint
-Editor::canvas_selection_end_trim_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_selection_end_trim_event (GdkEvent *event, ArdourCanvas::Item* item, SelectionRect* rect)
 {
-       gint ret = FALSE;
-       SelectionRect *rect = 0;
-
-       if ((rect = reinterpret_cast<SelectionRect*> (gtk_object_get_data (GTK_OBJECT(item), "rect"))) == 0) {
-               fatal << _("programming error: no \"rect\" pointer associated with selection item") << endmsg;
-               /*NOTREACHED*/
-       }
+       bool ret = false;
 
        switch (event->type) {
        case GDK_BUTTON_PRESS:
@@ -851,16 +592,16 @@ Editor::canvas_selection_end_trim_event (GnomeCanvasItem *item, GdkEvent *event)
 }
 
 
-gint
-Editor::canvas_region_view_name_highlight_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_region_view_name_highlight_event (GdkEvent* event, ArdourCanvas::Item* item, AudioRegionView* rv)
 {
-       gint ret = FALSE;
-
+       bool ret = false;
+       
        switch (event->type) {
        case GDK_BUTTON_PRESS:
        case GDK_2BUTTON_PRESS:
        case GDK_3BUTTON_PRESS:
-               clicked_regionview = reinterpret_cast<AudioRegionView *> (gtk_object_get_data(GTK_OBJECT(item), "regionview"));
+               clicked_regionview = rv;
                clicked_control_point = 0;
                clicked_trackview = &clicked_regionview->get_time_axis_view();
                clicked_audio_trackview = dynamic_cast<AudioTimeAxisView*>(clicked_trackview);
@@ -887,16 +628,16 @@ Editor::canvas_region_view_name_highlight_event (GnomeCanvasItem *item, GdkEvent
        return ret;
 }
 
-gint
-Editor::canvas_region_view_name_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_region_view_name_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView* rv)
 {
-       gint ret = FALSE;
+       bool ret = false;
 
        switch (event->type) {
        case GDK_BUTTON_PRESS:
        case GDK_2BUTTON_PRESS:
        case GDK_3BUTTON_PRESS:
-               clicked_regionview = reinterpret_cast<AudioRegionView *> (gtk_object_get_data(GTK_OBJECT(item), "regionview"));
+               clicked_regionview = rv;
                clicked_control_point = 0;
                clicked_trackview = &clicked_regionview->get_time_axis_view();
                clicked_audio_trackview = dynamic_cast<AudioTimeAxisView*>(clicked_trackview);
@@ -923,75 +664,69 @@ Editor::canvas_region_view_name_event (GnomeCanvasItem *item, GdkEvent *event)
        return ret;
 }
 
-gint
-Editor::canvas_marker_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_marker_event (GdkEvent *event, ArdourCanvas::Item* item, Marker* marker)
 {
        return typed_event (item, event, MarkerItem);
 }
 
-gint
-Editor::canvas_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_marker_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, MarkerBarItem);
 }
 
-gint
-Editor::canvas_range_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_range_marker_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, RangeMarkerBarItem);
 }
 
-gint
-Editor::canvas_transport_marker_bar_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_transport_marker_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, TransportMarkerBarItem);
 }
 
-gint
-Editor::canvas_tempo_marker_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_tempo_marker_event (GdkEvent *event, ArdourCanvas::Item* item, TempoMarker* marker)
 {
        return typed_event (item, event, TempoMarkerItem);
 }
 
-gint
-Editor::canvas_meter_marker_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_meter_marker_event (GdkEvent *event, ArdourCanvas::Item* item, MeterMarker* marker)
 {
        return typed_event (item, event, MeterMarkerItem);
 }
 
-gint
-Editor::canvas_tempo_bar_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_tempo_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, TempoBarItem);
 }
 
-gint
-Editor::canvas_meter_bar_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_meter_bar_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, MeterBarItem);
 }
 
-gint
-Editor::canvas_playhead_cursor_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_playhead_cursor_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, PlayheadCursorItem);
 }
 
-gint
-Editor::canvas_edit_cursor_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_edit_cursor_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, EditCursorItem);
 }
 
-gint
-Editor::canvas_zoom_rect_event (GnomeCanvasItem *item, GdkEvent *event)
+bool
+Editor::canvas_zoom_rect_event (GdkEvent *event, ArdourCanvas::Item* item)
 {
        return typed_event (item, event, NoItem);
 }
 
-gint
-Editor::canvas_copy_region_event (GnomeCanvasItem *item GdkEvent *event)
-{
-       return typed_event (item, event, RegionItem);
-}
-
index f82585802c148afd51b0f6f1c7d385bdf606c9b9..756ec028aee16f89df8dfed6589a4eb9533510cb 100644 (file)
@@ -6,13 +6,13 @@
 #include <string>
 #include <glib.h>
 #include <gdk/gdktypes.h>
-#include <libgnomecanvas/libgnomecanvas.h>
 #include <gtkmm/window.h>
 #include <jack/types.h>
 #include <sigc++/signal.h>
 
 #include "editing.h"
 #include "keyboard_target.h"
+#include "canvas.h"
 
 namespace ARDOUR {
        class Session;
@@ -37,6 +37,13 @@ class Selection;
 class AutomationLine;
 class ControlPoint;
 class SelectionRect;
+class CrossfadeView;
+class AudioTimeAxisView;
+class AudioRegionView;
+class TempoMarker;
+class MeterMarker;
+class Marker;
+class AutomationTimeAxisView;
 
 class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget {
   public:
@@ -119,34 +126,34 @@ class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget
 
        // FIXED FOR GTK2
 
-       virtual bool canvas_control_point_event (GdkEvent* event,ControlPoint*) = 0;
-       virtual bool canvas_line_event (GdkEvent* event,AutomationLine*) = 0;
-       virtual bool canvas_selection_rect_event (GdkEvent* event,SelectionRect*) = 0;
-       virtual bool canvas_selection_start_trim_event (GdkEvent* event,SelectionRect*) = 0;
-       virtual bool canvas_selection_end_trim_event (GdkEvent* event,SelectionRect*) = 0;
+       virtual bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*) = 0;
+       virtual bool canvas_line_event (GdkEvent* event,ArdourCanvas::Item*, AutomationLine*) = 0;
+       virtual bool canvas_selection_rect_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*) = 0;
+       virtual bool canvas_selection_start_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*) = 0;
+       virtual bool canvas_selection_end_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*) = 0;
+       virtual bool canvas_crossfade_view_event (GdkEvent* event,ArdourCanvas::Item*, CrossfadeView*) = 0;
+       virtual bool canvas_fade_in_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_fade_in_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_fade_out_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_fade_out_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_region_view_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_region_view_name_highlight_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_region_view_name_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*) = 0;
+       virtual bool canvas_stream_view_event (GdkEvent* event,ArdourCanvas::Item*, AudioTimeAxisView*) = 0;
+       virtual bool canvas_marker_event (GdkEvent* event,ArdourCanvas::Item*, Marker*) = 0;
+       virtual bool canvas_zoom_rect_event (GdkEvent* event,ArdourCanvas::Item*) = 0;
+       virtual bool canvas_tempo_marker_event (GdkEvent* event,ArdourCanvas::Item*, TempoMarker*) = 0;
+       virtual bool canvas_meter_marker_event (GdkEvent* event,ArdourCanvas::Item*, MeterMarker*) = 0;
+       virtual bool canvas_automation_track_event(GdkEvent* event, ArdourCanvas::Item*, AutomationTimeAxisView*) = 0;
+
+       virtual bool canvas_tempo_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
+       virtual bool canvas_meter_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
+       virtual bool canvas_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
+       virtual bool canvas_range_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
+       virtual bool canvas_transport_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
 
        // PENDING
 
-
-       virtual gint canvas_crossfade_view_event (GdkEvent* event) = 0;
-       virtual gint canvas_fade_in_event (GdkEvent* event) = 0;
-       virtual gint canvas_fade_in_handle_event (GdkEvent* event) = 0;
-       virtual gint canvas_fade_out_event (GdkEvent* event) = 0;
-       virtual gint canvas_fade_out_handle_event (GdkEvent* event) = 0;
-       virtual gint canvas_region_view_event (GdkEvent* event) = 0;
-       virtual gint canvas_region_view_name_highlight_event (GdkEvent* event) = 0;
-       virtual gint canvas_region_view_name_event (GdkEvent* event) = 0;
-       virtual gint canvas_stream_view_event (GdkEvent* event) = 0;
-       virtual gint canvas_marker_event (GdkEvent* event) = 0;
-       virtual gint canvas_zoom_rect_event (GdkEvent* event) = 0;
-
-       virtual gint canvas_tempo_marker_event (GdkEvent* event) = 0;
-       virtual gint canvas_meter_marker_event (GdkEvent* event) = 0;
-       virtual gint canvas_tempo_bar_event (GdkEvent* event) = 0;
-       virtual gint canvas_meter_bar_event (GdkEvent* event) = 0;
-       virtual gint canvas_marker_bar_event (GdkEvent* event) = 0;
-       virtual gint canvas_range_marker_bar_event (GdkEvent* event) = 0;
-       virtual gint canvas_transport_marker_bar_event (GdkEvent* event) = 0;
        virtual gint canvas_imageframe_item_view_event(GdkEvent* event)  = 0;
        virtual gint canvas_imageframe_view_event(GdkEvent* event)  = 0;
        virtual gint canvas_imageframe_start_handle_event(GdkEvent* event)  = 0;
@@ -155,7 +162,6 @@ class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget
        virtual gint canvas_markerview_item_view_event(GdkEvent* event)  = 0;
        virtual gint canvas_markerview_start_handle_event(GdkEvent* event)  = 0;
        virtual gint canvas_markerview_end_handle_event(GdkEvent* event)  = 0;
-       virtual gint canvas_automation_track_event(GdkEvent* event)  = 0;
 
        static PublicEditor* _instance;
 };
index c89d3e8436ea347db0f98ff25038b25abda9920d..508ddb92609d6757066ff27eabe034eb3827d527 100644 (file)
 #include <string>
 #include <list>
 
+#include <libgnomecanvasmm/libgnomecanvasmm.h>
+#include <libgnomecanvasmm/canvas.h>
+#include <libgnomecanvasmm/item.h>
+
 #include <pbd/error.h>
 
 #include <gtkmm2ext/utils.h>
@@ -50,7 +54,7 @@ using namespace Gtk;
 using namespace sigc; 
 using namespace ARDOUR;
 using namespace Editing;
-using namespace Gnome::Canvas;
+using namespace ArdourCanvas;
 
 const double trim_handle_size = 6.0; /* pixels */
 
@@ -585,7 +589,7 @@ TimeAxisView::hide_selection ()
 }
 
 void
-TimeAxisView::order_selection_trims (Gnome::Canvas::Item *item, bool put_start_on_top)
+TimeAxisView::order_selection_trims (ArdourCanvas::Item *item, bool put_start_on_top)
 {
        /* find the selection rect this is for. we have the item corresponding to one
           of the trim handles.
@@ -657,9 +661,9 @@ TimeAxisView::get_selection_rect (uint32_t id)
 
                free_selection_rects.push_front (rect);
 
-               rect->rect->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_rect_event), rect));
-               rect->start_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_start_trim_event), rect));
-               rect->end_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_end_trim_event), rect));
+               rect->rect->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_rect_event), rect->rect, rect));
+               rect->start_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_start_trim_event), rect->rect, rect));
+               rect->end_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_end_trim_event), rect->rect, rect));
        } 
 
        rect = free_selection_rects.front();
index 17d687c6c2a77a8ed47dfb699a81be6fad764b5a..9249a1fb72e350b4b3826dbc19ec0a5012c8ca33 100644 (file)
@@ -25,8 +25,6 @@
 #include <list>
 
 #include <gtkmm.h>
-#include <libgnomecanvasmm/group.h>
-#include <libgnomecanvasmm/canvas.h>
 
 #include <ardour/types.h>
 #include <ardour/region.h>
@@ -36,6 +34,8 @@
 #include "enums.h"
 #include "editing.h"
 
+namespace ArdourCanvas = Gnome::Canvas;
+
 namespace ARDOUR {
        class Session;
        class Region;
@@ -75,7 +75,7 @@ class TimeAxisView : public virtual AxisView
                Small = 21
        };
 
-       TimeAxisView(ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* parent, Gnome::Canvas::Canvas& canvas);
+       TimeAxisView(ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* parent, ArdourCanvas::Canvas& canvas);
        virtual ~TimeAxisView ();
 
        /* public data: XXX create accessor/mutators for these ?? */
@@ -88,7 +88,7 @@ class TimeAxisView : public virtual AxisView
        int     order;
 
        
-       Gnome::Canvas::Group   *canvas_display;
+       ArdourCanvas::Group   *canvas_display;
        Gtk::VBox       *control_parent;
 
        /* The Standard LHS Controls */
@@ -169,7 +169,7 @@ class TimeAxisView : public virtual AxisView
                return 0;
        }
 
-       void order_selection_trims (Gnome::Canvas::Item *item, bool put_start_on_top);
+       void order_selection_trims (ArdourCanvas::Item *item, bool put_start_on_top);
 
        virtual void get_selectables (jack_nframes_t start, jack_nframes_t end, double top, double bot, list<Selectable*>& results);
        virtual void get_inverted_selectables (Selection&, list<Selectable *>& results);
@@ -273,7 +273,7 @@ class TimeAxisView : public virtual AxisView
 
        /* selection display */
 
-       Gnome::Canvas::Group      *selection_group;
+       ArdourCanvas::Group      *selection_group;
 
        list<SelectionRect*> free_selection_rects;
        list<SelectionRect*> used_selection_rects;