get editor.cc to compile
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 16 Nov 2005 02:57:22 +0000 (02:57 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 16 Nov 2005 02:57:22 +0000 (02:57 +0000)
git-svn-id: svn://localhost/trunk/ardour2@99 d708f5d6-7413-0410-9779-e7cbd77b26cf

36 files changed:
gtk2_ardour/audio_time_axis.cc
gtk2_ardour/audio_time_axis.h
gtk2_ardour/automation_gain_line.cc
gtk2_ardour/automation_gain_line.h
gtk2_ardour/automation_line.cc
gtk2_ardour/automation_line.h
gtk2_ardour/automation_pan_line.cc
gtk2_ardour/automation_pan_line.h
gtk2_ardour/automation_time_axis.cc
gtk2_ardour/automation_time_axis.h
gtk2_ardour/canvas_impl.h
gtk2_ardour/crossfade_view.cc
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/gain_automation_time_axis.cc
gtk2_ardour/gain_automation_time_axis.h
gtk2_ardour/imageframe_time_axis.cc
gtk2_ardour/imageframe_time_axis.h
gtk2_ardour/marker_time_axis.cc
gtk2_ardour/marker_time_axis.h
gtk2_ardour/option_editor.cc
gtk2_ardour/option_editor.h
gtk2_ardour/pan_automation_time_axis.cc
gtk2_ardour/pan_automation_time_axis.h
gtk2_ardour/plugin_ui.cc
gtk2_ardour/plugin_ui.h
gtk2_ardour/public_editor.h
gtk2_ardour/redirect_automation_line.cc
gtk2_ardour/redirect_automation_line.h
gtk2_ardour/redirect_automation_time_axis.cc
gtk2_ardour/redirect_automation_time_axis.h
gtk2_ardour/time_axis_view.h
gtk2_ardour/visual_time_axis.cc
gtk2_ardour/visual_time_axis.h
libs/gtkmm2ext/gtkmm2ext/utils.h
libs/gtkmm2ext/utils.cc

index 3958bea4b5d8820070e3fb451c581f9f5892805f..9b444966aa3f640fdfaf78dc3ba9c87932bcee2d 100644 (file)
@@ -100,7 +100,7 @@ static const gchar * small_x_xpm[] = {
 "           ",
 "           "};
 
-AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt, CanvasAA& canvas)
+AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt, Canvas& canvas)
        : AxisView(sess),
          RouteUI(rt, sess, _("m"), _("s"), _("r")), // mute, solo, and record
          TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas),
@@ -1202,20 +1202,15 @@ AudioTimeAxisView::add_gain_automation_child ()
                                                     _route,
                                                     editor,
                                                     *this,
-                                                    *(parent_canvas.root()),
+                                                    parent_canvas,
                                                     _("gain"),
                                                     _route.gain_automation_curve());
        
-
-#if 0
        line = new AutomationGainLine ("automation gain",
                                       _session,
                                       *gain_track,
                                       *gain_track->canvas_display,
-                                      _route.gain_automation_curve(),
-                                      mem_fun (editor, &PublicEditor::canvas_control_point_event),
-                                      mem_fun (editor, &PublicEditor::canvas_line_event));
-#endif
+                                      _route.gain_automation_curve());
 
        line->set_line_color (color_map[cAutomationLine]);
        
@@ -1248,7 +1243,7 @@ AudioTimeAxisView::add_pan_automation_child ()
 {
        XMLProperty* prop;
 
-       pan_track = new PanAutomationTimeAxisView (_session, _route, editor, *this, *(parent_canvas.root()), _("pan"));
+       pan_track = new PanAutomationTimeAxisView (_session, _route, editor, *this, parent_canvas, _("pan"));
 
        update_pans ();
        
@@ -1294,9 +1289,7 @@ AudioTimeAxisView::update_pans ()
 
                line = new AutomationPanLine ("automation pan", _session, *pan_track,
                                              *pan_track->canvas_display, 
-                                             (*p)->automation(),
-                                             mem_fun (editor, &PublicEditor::canvas_control_point_event),
-                                             mem_fun (editor, &PublicEditor::canvas_line_event));
+                                             (*p)->automation());
 
                if (p == _route.panner().begin()) {
                        /* first line is a nice orange */
@@ -1472,13 +1465,11 @@ AudioTimeAxisView::add_redirect_automation_curve (Redirect *redirect, uint32_t w
        char state_name[256];
        snprintf (state_name, sizeof (state_name), "Redirect-%s-%" PRIu32, legalize_for_xml_node (redirect->name()).c_str(), what);
 
-       ran->view = new RedirectAutomationTimeAxisView (_session, _route, editor, *this, (*parent_canvas.root()), name, what, *redirect, state_name);
+       ran->view = new RedirectAutomationTimeAxisView (_session, _route, editor, *this, parent_canvas, name, what, *redirect, state_name);
 
        ral = new RedirectAutomationLine (name, 
                                          *redirect, what, _session, *ran->view,
-                                         *ran->view->canvas_display, redirect->automation_list (what), 
-                                         mem_fun (editor, &PublicEditor::canvas_control_point_event),
-                                         mem_fun (editor, &PublicEditor::canvas_line_event));
+                                         *ran->view->canvas_display, redirect->automation_list (what));
        
        ral->set_line_color (color_map[cRedirectAutomationLine]);
        ral->queue_reset ();
index ed6cc49b2df238a84e8f7a60592595edd4607439..ca8aabf305c2b71b865faef62f116356d476deb6 100644 (file)
@@ -69,7 +69,7 @@ class AutomationTimeAxisView;
 class AudioTimeAxisView : public RouteUI, public TimeAxisView
 {
   public:
-       AudioTimeAxisView (PublicEditor&, ARDOUR::Session&, ARDOUR::Route&, ArdourCanvas::CanvasAA& canvas);
+       AudioTimeAxisView (PublicEditor&, ARDOUR::Session&, ARDOUR::Route&, ArdourCanvas::Canvas& canvas);
        virtual ~AudioTimeAxisView ();
 
        void show_selection (TimeSelection&);
index b07f3c14a1fbd36b13d48e6ad1b78e6e04a6b9b3..58dc50252027aebc7d33cd944ef2b22bc69276fb 100644 (file)
 using namespace std;
 using namespace ARDOUR;
 
-AutomationGainLine::AutomationGainLine (string name, Session& s, TimeAxisView& tv, Gnome::Canvas::Group& parent,
-                                       Curve& c, 
-                                       sigc::slot<bool,GdkEvent*,ControlPoint*> point_callback, 
-                                       sigc::slot<bool,GdkEvent*,AutomationLine*> line_callback)
+AutomationGainLine::AutomationGainLine (string name, Session& s, TimeAxisView& tv, Gnome::Canvas::Group& parent, Curve& c)
 
-       : AutomationLine (name, tv, parent, c, point_callback, line_callback),
+       : AutomationLine (name, tv, parent, c),
          session (s)
 {
        set_verbose_cursor_uses_gain_mapping (true);
index ba95b644800fb5e1077370186cb69c983871d4ff..2962b2a71869cebc889f6ef40bee097f24377b44 100644 (file)
@@ -2,9 +2,9 @@
 #define __ardour_gtk_automation_gain_line_h__
 
 #include <ardour/ardour.h>
-#include <libgnomecanvas/libgnomecanvas.h>
 #include <gtkmm.h>
 
+#include "canvas.h"
 #include "automation_line.h"
 
 namespace ARDOUR {
@@ -17,9 +17,7 @@ class TimeAxisView;
 class AutomationGainLine : public AutomationLine
 {
   public:
-  AutomationGainLine (string name, ARDOUR::Session&, TimeAxisView&, Gnome::Canvas::Group& parent,
-                     ARDOUR::Curve&, 
-                     sigc::slot<bool,GdkEvent*,ControlPoint*>, sigc::slot<bool,GdkEvent*,AutomationLine*>);
+  AutomationGainLine (string name, ARDOUR::Session&, TimeAxisView&, ArdourCanvas::Group& parent, ARDOUR::Curve&);
        
        void view_to_model_y (double&);
        void model_to_view_y (double&);
index c21cf705829b2579fe9c8c7fec5473f9bdb11564..da208489f479650117a085b19c25bd0cccd0ee1c 100644 (file)
@@ -51,7 +51,7 @@ using namespace ARDOUR;
 using namespace Editing;
 using namespace Gnome; // for Canvas
 
-ControlPoint::ControlPoint (AutomationLine& al, sigc::slot<bool,GdkEvent*,ControlPoint*> handler)
+ControlPoint::ControlPoint (AutomationLine& al)
        : line (al)
 {
        model = al.the_list().end();
@@ -70,7 +70,7 @@ ControlPoint::ControlPoint (AutomationLine& al, sigc::slot<bool,GdkEvent*,Contro
        item->property_outline_color_rgba() = color_map[cControlPointOutline];
        item->property_outline_pixels() = 1;
        item->set_data ("control_point", this);
-       item->signal_event().connect (bind (handler, this));
+       item->signal_event().connect (mem_fun (this, &ControlPoint::event_handler));
 
        hide ();
        set_visible (false);
@@ -108,6 +108,12 @@ ControlPoint::~ControlPoint ()
        gtk_object_destroy (GTK_OBJECT(item));
 }
 
+bool
+ControlPoint::event_handler (GdkEvent* event)
+{
+       return PublicEditor::instance().canvas_control_point_event (event, item, this);
+}
+
 void
 ControlPoint::hide ()
 {
@@ -211,10 +217,7 @@ ControlPoint::move_to (double x, double y, ShapeType shape)
 
 /*****/
 
-AutomationLine::AutomationLine (string name, TimeAxisView& tv, Gnome::Canvas::Group& parent, AutomationList& al,
-                               slot<bool,GdkEvent*,ControlPoint*> point_handler,
-                               slot<bool,GdkEvent*,AutomationLine*> line_handler)
-
+AutomationLine::AutomationLine (string name, TimeAxisView& tv, Gnome::Canvas::Group& parent, AutomationList& al)
        : trackview (tv),
          _name (name),
          alist (al),
@@ -225,7 +228,6 @@ AutomationLine::AutomationLine (string name, TimeAxisView& tv, Gnome::Canvas::Gr
        _vc_uses_gain_mapping = false;
        no_draw = false;
        _visible = true;
-       point_slot = point_handler;
        terminal_points_can_slide = true;
        _height = 0;
 
@@ -236,8 +238,7 @@ AutomationLine::AutomationLine (string name, TimeAxisView& tv, Gnome::Canvas::Gr
        line = new Gnome::Canvas::Line (*group);
        line->set_property ("width_pixels", (guint)1);
 
-       line->set_data ("line", this);
-       line->signal_event().connect (bind (line_handler, this));
+       line->signal_event().connect (mem_fun (*this, &AutomationLine::event_handler));
 
        alist.StateChanged.connect (mem_fun(*this, &AutomationLine::list_changed));
 }
@@ -249,6 +250,12 @@ AutomationLine::~AutomationLine ()
        gtk_object_destroy (GTK_OBJECT(group));
 }
 
+bool
+AutomationLine::event_handler (GdkEvent* event)
+{
+       return PublicEditor::instance().canvas_line_event (event, line, this);
+}
+
 void
 AutomationLine::queue_reset ()
 {
@@ -736,7 +743,7 @@ AutomationLine::determine_visible_control_points (ALPoints& points)
                if (view_index >= control_points.size()) {
                        /* make sure we have enough control points */
 
-                       ControlPoint* ncp = new ControlPoint (*this, point_slot);
+                       ControlPoint* ncp = new ControlPoint (*this);
 
                        if (_height > (guint32) TimeAxisView::Larger) {
                                ncp->set_size (8.0);
index dbb920f52a84a08940b39aee9406a2e6a8c93796..ed3ad05b16f618cc26bbe107af62c2ccb0879066 100644 (file)
@@ -55,9 +55,9 @@ namespace Gnome {
 class ControlPoint 
 {
   public:
-        ControlPoint (AutomationLine& al, sigc::slot<bool,GdkEvent*,ControlPoint*>);
+        ControlPoint (AutomationLine& al);
        ControlPoint (const ControlPoint&, bool dummy_arg_to_force_special_copy_constructor);
-       ~ControlPoint ();
+       virtual ~ControlPoint ();
 
        enum ShapeType {
                Full,
@@ -84,6 +84,9 @@ class ControlPoint
        bool can_slide;
        bool selected;
        
+  protected:
+       virtual bool event_handler (GdkEvent*);
+
   private:
        double _x;
        double _y;
@@ -94,9 +97,7 @@ class ControlPoint
 class AutomationLine : public sigc::trackable
 {
   public:
-        AutomationLine (string name, TimeAxisView&, Gnome::Canvas::Group&, ARDOUR::AutomationList&,
-                       sigc::slot<bool,GdkEvent*,ControlPoint*>, sigc::slot<bool,GdkEvent*,AutomationLine*>);
-
+        AutomationLine (string name, TimeAxisView&, Gnome::Canvas::Group&, ARDOUR::AutomationList&);
        virtual ~AutomationLine ();
 
        void queue_reset ();
@@ -176,8 +177,6 @@ class AutomationLine : public sigc::trackable
        Gnome::Canvas::Points  line_points; /* coordinates for canvas line */
        vector<ControlPoint*>  control_points; /* visible control points */
 
-       sigc::slot<bool,GdkEvent*,ControlPoint*> point_slot;
-
        struct ALPoint {
            double x;
            double y;
@@ -202,6 +201,8 @@ class AutomationLine : public sigc::trackable
        void list_changed (ARDOUR::Change);
 
        UndoAction get_memento();
+
+       virtual bool event_handler (GdkEvent*);
        
   private:
        uint32_t drags;
index 516795dff7ca94e82559dea3c728c295fa9389f7..0bdbdef3f43843d336edc17a73c600fe5cebdd2f 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <ardour/curve.h>
 
+#include "canvas_impl.h"
 #include "public_editor.h"
 #include "automation_pan_line.h"
 #include "utils.h"
 
 using namespace ARDOUR;
 
-AutomationPanLine::AutomationPanLine (string name, Session& s, TimeAxisView& tv, Gnome::Canvas::Group& parent,
-                                     Curve& c, 
-                                     sigc::slot<bool,GdkEvent*,ControlPoint*> point_handler,
-                                     sigc::slot<bool,GdkEvent*,AutomationLine*> line_handler)
+AutomationPanLine::AutomationPanLine (string name, Session& s, TimeAxisView& tv, Gnome::Canvas::Group& parent, Curve& c)
 
-       : AutomationLine (name, tv, parent, c, point_handler, line_handler),
+       : AutomationLine (name, tv, parent, c),
          session (s)
 {
 }
index 9957f52016143b93859b66b729fc8d83897a8ace..a8535da71bb74316cc28b11b12e50847bdf52960 100644 (file)
@@ -2,9 +2,9 @@
 #define __ardour_gtk_automation_pan_line_h__
 
 #include <ardour/ardour.h>
-#include <libgnomecanvas/libgnomecanvas.h>
 #include <gtkmm.h>
 
+#include "canvas.h"
 #include "automation_line.h"
 
 namespace ARDOUR {
@@ -16,17 +16,14 @@ class TimeAxisView;
 class AutomationPanLine : public AutomationLine
 {
   public:
-  AutomationPanLine (string name, ARDOUR::Session&, TimeAxisView&, Gnome::Canvas::Group& parent,
-                    ARDOUR::Curve&, 
-                    sigc::slot<bool,GdkEvent*,ControlPoint*> point_handler,
-                    sigc::slot<bool,GdkEvent*,AutomationLine*> line_handler);
+       AutomationPanLine (string name, ARDOUR::Session&, TimeAxisView&, Gnome::Canvas::Group& parent, ARDOUR::Curve&);
        
        void view_to_model_y (double&);
        void model_to_view_y (double&);
 
   private:
        ARDOUR::Session& session;
-       vector<GnomeCanvasItem*> lines;
+       vector<ArdourCanvas::Item*> lines;
 };
 
 
index 5339b0a02e41fb9eb9c5198c3a48e8c5c90313e4..9e3fb09a4a795060f59e8a5bdf4bbca0c0f5e5ce 100644 (file)
@@ -4,13 +4,13 @@
 #include "automation_time_axis.h"
 #include "automation_line.h"
 #include "public_editor.h"
-#include "canvas-simplerect.h"
-#include "canvas-waveview.h"
+#include "simplerect.h"
 #include "selection.h"
 #include "ghostregion.h"
 #include "rgb_macros.h"
 #include "automation_selectable.h"
 #include "point_selection.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
@@ -34,10 +34,12 @@ static const gchar * small_x_xpm[] = {
 "           ",
 "           "};
 
-AutomationTimeAxisView::AutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& rent, Widget* p, std::string nom, std::string state_name, std::string nomparent)
+AutomationTimeAxisView::AutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& rent, 
+                                               ArdourCanvas::Canvas& canvas, std::string nom, 
+                                               std::string state_name, std::string nomparent)
 
        : AxisView (s), 
-         TimeAxisView (s, e, &rent, p),
+         TimeAxisView (s, e, &rent, canvas),
          route (r),
          _name (nom),
          _state_name (state_name),
@@ -63,7 +65,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, Route& r, PublicEdit
        //                       "outline_what", (guint32) (0x1|0x2|0x8),
        //                       "fill_color_rgba", color_map[cAutomationTrackFill],
        //                       NULL);
-       base_rect = new Gnome::Canvas::SimpleRect(*canvas_display);
+       base_rect = new SimpleRect(*canvas_display);
        base_rect->set_property ("x1", 0.0);
        base_rect->set_property ("y1", 0.0);
        base_rect->set_property ("x2", 1000000.0);
index d43be38a498710a99cf421994d09eed87639cea9..2dc43853a2b18bd92b902dd0376e169c59574d28 100644 (file)
@@ -6,6 +6,7 @@
 #include <string>
 #include <ardour/types.h>
 
+#include "canvas.h"
 #include "time_axis_view.h"
 #include "simplerect.h"
 
@@ -18,10 +19,6 @@ namespace ARDOUR {
        class Route;
 }
 
-namespace Gtk {
-       class Widget;
-}
-
 class PublicEditor;
 class TimeSelection;
 class AudioRegionSelection;
@@ -37,7 +34,7 @@ class AutomationTimeAxisView : public TimeAxisView {
                                ARDOUR::Route&,
                                PublicEditor&,
                                TimeAxisView& parent,
-                               Gtk::Widget* parent,
+                               ArdourCanvas::Canvas& canvas,
                                std::string name, /* translatable */
                                std::string state_name, /* not translatable */
                                std::string plug_name = "");
@@ -78,7 +75,7 @@ class AutomationTimeAxisView : public TimeAxisView {
 
   protected:
        ARDOUR::Route& route;
-       Gnome::Canvas::SimpleRect* base_rect;
+       ArdourCanvas::SimpleRect* base_rect;
        string _name;
        string _state_name;
        bool    in_destructor;
index f492d2901ed7d06765edab037471ba3b8a6e348c..817679b73401d57c58c998de4d13105b125c9d02 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __ardour_gtk_canvas_impl_h__
 #define __ardour_gtk_canvas_impl_h__
 
+#include "canvas.h"
+
 #include <libgnomecanvasmm/canvas.h>
 #include <libgnomecanvasmm/polygon.h>
 #include <libgnomecanvasmm/text.h>
index 7e6a889a3ecdca45fe2c948b47fc2571cd861b1d..cca92198f5e7ecc408a562878ccdef03bb95b8ca 100644 (file)
@@ -80,8 +80,9 @@ CrossfadeView::CrossfadeView (Gnome::Canvas::Group *parent,
        vestigial_frame->hide();
        show_vestigial = false;
 
-       group->signal_event.connect (bind (mem_fun (editor, &Public::canvas_crossfade_view_event), group, this));
-
+       // GTK2FIX
+       // group->signal_event.connect (bind (mem_fun (tv.editor, &PublicEditor::canvas_crossfade_view_event), group, this));
+       
        crossfade_changed (Change (~0));
 
        crossfade.StateChanged.connect (mem_fun(*this, &CrossfadeView::crossfade_changed));
index fad53f8182a7da5b4646de991f6c72c7f2ffd662..cfbb6ddd4de657d674d25fdfd4663a04f36c6c03 100644 (file)
@@ -90,20 +90,6 @@ const double Editor::timebar_height = 15.0;
 
 #include "editor_xpms"
 
-static const gchar *route_list_titles[] = {
-       N_("Tracks"),
-       0
-};
-
-static const gchar *edit_group_list_titles[] = {
-       "foo", "bar", 0
-};
-
-static const gchar *named_selection_display_titles[] = {
-       N_("Chunks"), 
-       0
-};
-
 static const int32_t slide_index = 0;
 static const int32_t splice_index = 1;
 
@@ -525,8 +511,11 @@ Editor::Editor (AudioEngine& eng)
        route_list.set_headers_visible (true);
        route_list.set_headers_clickable (true);
 
-       route_display_model->set_sort_func (0, mem_fun (*this, &Editor::route_list_compare_func));
-       route_display_model->signal_rows_reordered().connect (mem_fun (*this, &Editor::queue_route_list_reordered));
+       // GTK2FIX
+       // route_list.signal_rows_reordered().connect (mem_fun (*this, &Editor::queue_route_list_reordered));
+
+       // GTK2FIX
+       // route_display_model->set_sort_func (0, mem_fun (*this, &Editor::route_list_compare_func));
 
        // GTK2FIX
        //route_list.set_shadow_type (Gtk::SHADOW_IN);
@@ -616,15 +605,16 @@ Editor::Editor (AudioEngine& eng)
        region_list_scroller.add (region_list_display);
        region_list_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
 
-       vector<Gtk::TargetEntry> region_list_target_table;
+       list<Gtk::TargetEntry> region_list_target_table;
        
        region_list_target_table.push_back (TargetEntry ("STRING"));
        region_list_target_table.push_back (TargetEntry ("text/plain"));
        region_list_target_table.push_back (TargetEntry ("text/uri-list"));
        region_list_target_table.push_back (TargetEntry ("application/x-rootwin-drop"));
 
-       region_list_display.drag_dest_set (region_list_target_table, DEST_DEFAULT_ALL, GdkDragAction (Gdk::ACTION_COPY|Gdk::ACTION_MOVE));
-       region_list_display.signal_drag_data_received().connect (mem_fun(*this, &Editor::region_list_display_drag_data_received));
+       // GTK2FIX
+       // region_list_display.drag_dest_set (region_list_target_table, DEST_DEFAULT_ALL, GdkDragAction (Gdk::ACTION_COPY|Gdk::ACTION_MOVE));
+       // region_list_display.signal_drag_data_received().connect (mem_fun(*this, &Editor::region_list_display_drag_data_received));
 
        region_list_display.signal_key_press_event().connect (mem_fun(*this, &Editor::region_list_display_key_press));
        region_list_display.signal_key_release_event().connect (mem_fun(*this, &Editor::region_list_display_key_release));
@@ -816,10 +806,9 @@ Editor::initialize_canvas ()
 
        // GNOME_CANVAS(track_canvas)->close_enough = 2;
 
-       track_canvas.signal_event().connect (mem_fun (*this, &Editor::track_canvas_event));
+       track_canvas.signal_event().connect (bind (mem_fun (*this, &Editor::track_canvas_event), (ArdourCanvas::Item*) 0));
        track_canvas.set_name ("EditorMainCanvas");
        track_canvas.add_events (Gdk::POINTER_MOTION_HINT_MASK);
-       track_canvas.signal_event().connect (mem_fun (*this, &Editor::track_canvas_event));
        track_canvas.signal_leave_notify_event().connect (mem_fun(*this, &Editor::left_track_canvas));
        
        /* set up drag-n-drop */
@@ -830,8 +819,9 @@ Editor::initialize_canvas ()
        target_table.push_back (TargetEntry ("text/uri-list"));
        target_table.push_back (TargetEntry ("application/x-rootwin-drop"));
 
-       track_canvas.drag_dest_set (target_table, DEST_DEFAULT_ALL, GdkDragAction (Gdk::ACTION_COPY|Gdk::ACTION_MOVE));
-       track_canvas.signal_drag_data_received().connect (mem_fun(*this, &Editor::track_canvas_drag_data_received));
+       // GTK2FIX
+       // track_canvas.drag_dest_set (target_table, DEST_DEFAULT_ALL, GdkDragAction (Gdk::ACTION_COPY|Gdk::ACTION_MOVE));
+       // track_canvas.signal_drag_data_received().connect (mem_fun(*this, &Editor::track_canvas_drag_data_received));
 
        /* stuff for the verbose canvas cursor */
 
@@ -944,7 +934,7 @@ Editor::initialize_canvas ()
        zoom_rect->set_property ("outline_pixels", 1);
        zoom_rect->hide();
        
-       zoom_rect->signal_event().connect (mem_fun (*this, &Editor::canvas_zoom_rect_event));
+       zoom_rect->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_zoom_rect_event), (ArdourCanvas::Item*) 0));
        
        // used as rubberband rect
        rubberband_rect = new Gnome::Canvas::SimpleRect (*track_canvas.root(), 0.0, 0.0, 0.0, 0.0);
@@ -953,11 +943,11 @@ Editor::initialize_canvas ()
        rubberband_rect->set_property ("outline_pixels", 1);
        rubberband_rect->hide();
        
-       tempo_bar->signal_event().connect (mem_fun (*this, &Editor::canvas_tempo_bar_event));
-       meter_bar->signal_event().connect (mem_fun (*this, &Editor::canvas_meter_bar_event));
-       marker_bar->signal_event().connect (mem_fun (*this, &Editor::canvas_marker_bar_event));
-       range_marker_bar->signal_event().connect (mem_fun (*this, &Editor::canvas_range_marker_bar_event));
-       transport_marker_bar->signal_event().connect (mem_fun (*this, &Editor::canvas_transport_marker_bar_event));
+       tempo_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_tempo_bar_event), tempo_bar));
+       meter_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_meter_bar_event), meter_bar));
+       marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_marker_bar_event), marker_bar));
+       range_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_range_marker_bar_event), range_marker_bar));
+       transport_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_transport_marker_bar_event), transport_marker_bar));
        
        /* separator lines */
 
@@ -997,8 +987,8 @@ Editor::initialize_canvas ()
        double time_width = FLT_MAX/frames_per_unit;
        time_canvas.set_scroll_region(0.0, 0.0, time_width, time_height);
        
-       edit_cursor = new Cursor (*this, "blue", canvas_edit_cursor_event);
-       playhead_cursor = new Cursor (*this, "red", canvas_playhead_cursor_event);
+       edit_cursor = new Cursor (*this, "blue", &Editor::canvas_edit_cursor_event);
+       playhead_cursor = new Cursor (*this, "red", &Editor::canvas_playhead_cursor_event);
        
        track_canvas.signal_size_allocate().connect (mem_fun(*this, &Editor::track_canvas_allocate));
 }
@@ -1226,10 +1216,10 @@ Editor::on_map ()
 }
 
 void
-Editor::track_canvas_allocate (GtkAllocation *alloc)
+Editor::track_canvas_allocate (Gtk::Allocation alloc)
 {
-       canvas_width = alloc->width;
-       canvas_height = alloc->height;
+       canvas_width = alloc.get_width();
+       canvas_height = alloc.get_height();
 
        if (session == 0 && !ARDOUR_UI::instance()->will_create_new_session_automatically()) {
 
@@ -1288,13 +1278,13 @@ Editor::track_canvas_allocate (GtkAllocation *alloc)
        zoom_range_clock.set ((jack_nframes_t) (canvas_width * frames_per_unit));
        edit_cursor->set_position (edit_cursor->current_frame);
        playhead_cursor->set_position (playhead_cursor->current_frame);
-       reset_scrolling_region (alloc);
+       reset_scrolling_region (&alloc);
        
        Resized (); /* EMIT_SIGNAL */
 }
 
 void
-Editor::reset_scrolling_region (GtkAllocation *alloc)
+Editor::reset_scrolling_region (Gtk::Allocation* alloc)
 {
        guint32 last_canvas_unit;
        double height;
@@ -1337,11 +1327,11 @@ Editor::reset_scrolling_region (GtkAllocation *alloc)
        canvas_height = (guint32) height;
        
        if (alloc) {
-               canvas_alloc_height = alloc->height;
-               canvas_alloc_width = alloc->width;
+               canvas_alloc_height = alloc->get_height();
+               canvas_alloc_width = alloc->get_width();
        } else {
-         canvas_alloc_height = track_canvas.get_height();
-         canvas_alloc_width = track_canvas.get_width();
+               canvas_alloc_height = track_canvas.get_height();
+               canvas_alloc_width = track_canvas.get_width();
        }
 
        canvas_height = max (canvas_height, canvas_alloc_height);
@@ -2964,7 +2954,7 @@ Editor::setup_toolbar ()
        edit_mode_box.pack_start (edit_mode_label, false, false);
        edit_mode_box.pack_start (edit_mode_selector, false, false);
 
-       edit_mode_selector.signal_unmap_event().connect (mem_fun(*this, &Editor::edit_mode_selection_done));
+       edit_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::edit_mode_selection_done));
 
        /* Snap Type */
 
@@ -2984,7 +2974,7 @@ Editor::setup_toolbar ()
        snap_type_box.pack_start (snap_type_label, false, false);
        snap_type_box.pack_start (snap_type_selector, false, false);
 
-       snap_type_selector.signal_unmap_event().connect (mem_fun(*this, &Editor::snap_type_selection_done));
+       snap_type_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_type_selection_done));
 
        /* Snap mode, not snap type */
 
@@ -3001,7 +2991,7 @@ Editor::setup_toolbar ()
        snap_mode_box.pack_start (snap_mode_label, false, false);
        snap_mode_box.pack_start (snap_mode_selector, false, false);
 
-       snap_mode_selector.signal_unmap_event().connect (mem_fun(*this, &Editor::snap_mode_selection_done));
+       snap_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_mode_selection_done));
 
        /* Zoom focus mode */
 
@@ -3020,7 +3010,7 @@ Editor::setup_toolbar ()
        zoom_focus_box.pack_start (zoom_focus_label, false, false);
        zoom_focus_box.pack_start (zoom_focus_selector, false, false);
 
-       zoom_focus_selector.signal_unmap_event().connect (mem_fun(*this, &Editor::zoom_focus_selection_done));
+       zoom_focus_selector.signal_changed().connect (mem_fun(*this, &Editor::zoom_focus_selection_done));
 
        /* selection/cursor clocks */
 
@@ -3090,7 +3080,7 @@ Editor::setup_toolbar ()
        tools_tearoff->set_name ("MouseModeBase");
 
        tools_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast<Gtk::Box*>(&toolbar_hbox), 
-                                            tools_tearoff->tearoff_window(), 0));
+                                            tools_tearoff->tearoff_window()));
        tools_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Gtk::Box*> (&toolbar_hbox), 
                                             tools_tearoff->tearoff_window(), 0));
 
@@ -3630,7 +3620,7 @@ Editor::set_selected_regionview_from_region_list (Region& r, bool add)
        commit_reversible_command () ;
 }
 
-gint
+bool
 Editor::set_selected_regionview_from_map_event (GdkEventAny* ev, StreamView* sv, Region* r)
 {
        AudioRegionView* rv;
@@ -3692,8 +3682,8 @@ Editor::set_edit_menu (Menu& menu)
        edit_menu->signal_map_event().connect (mem_fun(*this, &Editor::edit_menu_map_handler));
 }
 
-void
-Editor::edit_menu_map_handler ()
+bool
+Editor::edit_menu_map_handler (GdkEventAny* ev)
 {
        using namespace Menu_Helpers;
        MenuList& edit_items = edit_menu->items();
@@ -3704,7 +3694,7 @@ Editor::edit_menu_map_handler ()
        edit_items.clear ();
 
        if (session == 0) {
-               return;
+               return false;
        }
 
        if (session->undo_depth() == 0) {
@@ -3774,6 +3764,8 @@ Editor::edit_menu_map_handler ()
        if (!session->have_captured()) {
                edit_items.back().set_sensitive (false);
        }
+
+       return false;
 }
 
 void
@@ -3887,11 +3879,11 @@ Editor::set_verbose_canvas_cursor_text (string txt)
        verbose_canvas_cursor->set_property("text", txt.c_str());
 }
 
-gint
-Editor::edit_mode_selection_done (GdkEventAny *ev)
+void
+Editor::edit_mode_selection_done ()
 {
        if (session == 0) {
-               return FALSE;
+               return;
        }
 
        string choice = edit_mode_selector.get_active_text();
@@ -3904,15 +3896,13 @@ Editor::edit_mode_selection_done (GdkEventAny *ev)
        }
 
        session->set_edit_mode (mode);
-
-       return FALSE;
 }      
 
-gint
-Editor::snap_type_selection_done (GdkEventAny *ev)
+void
+Editor::snap_type_selection_done ()
 {
        if (session == 0) {
-               return FALSE;
+               return;
        }
 
        string choice = snap_type_selector.get_active_text();
@@ -3961,14 +3951,14 @@ Editor::snap_type_selection_done (GdkEventAny *ev)
        }
        
        set_snap_to (snaptype);
-
-       return FALSE;
 }      
 
-gint
-Editor::snap_mode_selection_done (GdkEventAny *ev)
+void
+Editor::snap_mode_selection_done ()
 {
-       if(session == 0) return FALSE;
+       if(session == 0) {
+               return;
+       }
 
        string choice = snap_mode_selector.get_active_text();
        SnapMode mode = SnapNormal;
@@ -3980,15 +3970,13 @@ Editor::snap_mode_selection_done (GdkEventAny *ev)
        }
 
        set_snap_mode (mode);
-
-       return FALSE;
 }
 
-gint
-Editor::zoom_focus_selection_done (GdkEventAny *ev)
+void
+Editor::zoom_focus_selection_done ()
 {
        if (session == 0) {
-               return FALSE;
+               return;
        }
 
        string choice = zoom_focus_selector.get_active_text();
@@ -4007,8 +3995,6 @@ Editor::zoom_focus_selection_done (GdkEventAny *ev)
        } 
 
        set_zoom_focus (focus_type);
-
-       return FALSE;
 }      
 
 gint
index b27ad65b32dd790e1af83bb1f6ba5c81a1664378..43205fb31a1b70c070ad7af2ef7a755a6e391749 100644 (file)
@@ -437,7 +437,7 @@ class Editor : public PublicEditor
        void set_selected_track_from_click (bool add = false, bool with_undo = true, bool no_remove=false);
        void set_selected_regionview_from_click (bool add = false, bool no_track_remove=false);
        void set_selected_regionview_from_region_list (ARDOUR::Region& region, bool add = false);
-       gint set_selected_regionview_from_map_event (GdkEventAny*, StreamView*, ARDOUR::Region*);
+       bool set_selected_regionview_from_map_event (GdkEventAny*, StreamView*, ARDOUR::Region*);
        void collect_new_region_view (AudioRegionView *);
 
        Gtk::Menu track_context_menu;
@@ -1184,15 +1184,15 @@ class Editor : public PublicEditor
 
        /* non-public event handlers */
 
-       bool canvas_playhead_cursor_event (GdkEvent* event, ArdourCanvas::Item*);
-       bool canvas_edit_cursor_event (GdkEvent* event, ArdourCanvas::Item*);
+       bool canvas_playhead_cursor_event (GdkEvent* event);
+       bool canvas_edit_cursor_event (GdkEvent* event);
        bool track_canvas_event (GdkEvent* event, ArdourCanvas::Item*);
 
        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);
+       void track_canvas_allocate (Gtk::Allocation alloc);
+       void time_canvas_allocate (Gtk::Allocation alloc);
 
        void set_edit_cursor (GdkEvent* event);
        void set_playhead_cursor (GdkEvent* event);
@@ -1215,7 +1215,7 @@ class Editor : public PublicEditor
        void fake_handle_new_duration ();
        void handle_new_duration ();
        void initialize_canvas ();
-       void reset_scrolling_region (GtkAllocation* alloc = 0);
+       void reset_scrolling_region (Gtk::Allocation* alloc = 0);
        void scroll_canvas ();
 
         /* sub-event loop handling */
@@ -1347,25 +1347,25 @@ class Editor : public PublicEditor
        Gtk::Label               edit_mode_label;
        Gtk::VBox                edit_mode_box;
 
-       gint edit_mode_selection_done (GdkEventAny*);
+       void edit_mode_selection_done ();
 
        Gtk::ComboBoxText snap_type_selector;
        Gtk::Label               snap_type_label;
        Gtk::VBox                snap_type_box;
 
-       gint snap_type_selection_done (GdkEventAny*);
+       void snap_type_selection_done ();
 
        Gtk::ComboBoxText               snap_mode_selector;
        Gtk::Label               snap_mode_label;
        Gtk::VBox                snap_mode_box;
 
-       gint snap_mode_selection_done (GdkEventAny*);
-
+       void snap_mode_selection_done ();
+       
        Gtk::ComboBoxText zoom_focus_selector;
        Gtk::Label               zoom_focus_label;
        Gtk::VBox                zoom_focus_box;
        
-       gint zoom_focus_selection_done (GdkEventAny*);
+       void zoom_focus_selection_done ();
 
        Gtk::Label          zoom_indicator_label;
        Gtk::HBox           zoom_indicator_box;
@@ -1673,7 +1673,7 @@ class Editor : public PublicEditor
        /* edit menu */
 
        Gtk::Menu* edit_menu;
-       void edit_menu_map_handler ();
+       bool edit_menu_map_handler (GdkEventAny*);
 
        jack_nframes_t event_frame (GdkEvent*, double* px = 0, double* py = 0);
 
index 17427d57fee0d3fee8d7ee5018598f141b0e3e75..ed2ea49d67e877647d5825a09a30a07c15161d7b 100644 (file)
 
 #include "gain_automation_time_axis.h"
 #include "automation_line.h"
+#include "canvas.h"
 
 #include "i18n.h"
 
 using namespace ARDOUR;
 using namespace Gtk;
 
-GainAutomationTimeAxisView::GainAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Widget* p, std::string n, ARDOUR::Curve& c)
+GainAutomationTimeAxisView::GainAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Canvas& canvas, std::string n, ARDOUR::Curve& c)
 
        : AxisView (s),
-         AutomationTimeAxisView (s, r, e, parent, p, n, X_("gain"), ""),
+         AutomationTimeAxisView (s, r, e, parent, canvas, n, X_("gain"), ""),
          curve (c)
        
 {
index f7b5ae426c1b71bac595126cdd4edb59bdcfa97d..0cc211ee1b0ed7a30290ccd7759b1d4a6450e10d 100644 (file)
@@ -16,7 +16,7 @@ class GainAutomationTimeAxisView : public AutomationTimeAxisView
                                    ARDOUR::Route&,
                                    PublicEditor&,
                                    TimeAxisView& parent_axis,
-                                   ArdourCanvas::Group& parent,
+                                   ArdourCanvas::Canvas& canvas,
                                    std::string name,
                                    ARDOUR::Curve&);
        
index 5fe195c0430351eb52404c89708410a92b8adafd..17bdf5ecabc0a73fa47a413db873836cf39abbe1 100644 (file)
@@ -31,7 +31,7 @@
 
 #include "public_editor.h"
 #include "imageframe_time_axis.h"
-#include "canvas-simplerect.h"
+#include "simplerect.h"
 #include "enums.h"
 #include "imageframe_time_axis_view.h"
 #include "imageframe_time_axis_group.h"
@@ -40,6 +40,7 @@
 #include "marker_time_axis.h"
 #include "marker_view.h"
 #include "gui_thread.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
@@ -55,7 +56,7 @@ using namespace Gtk ;
  * @param sess the current session
  * @param canvas the parent canvas item
  */
-ImageFrameTimeAxis::ImageFrameTimeAxis(std::string track_id, PublicEditor& ed, ARDOUR::Session& sess, Widget *canvas)
+ImageFrameTimeAxis::ImageFrameTimeAxis(std::string track_id, PublicEditor& ed, ARDOUR::Session& sess, Canvas& canvas)
        : AxisView(sess),
          VisualTimeAxis(track_id, ed, sess, canvas)
 {
index 7625851a0a1fd5c86a24402951222b6caad97637..266cb4405d61c8d2b032d6755f3d2b975b3805c0 100644 (file)
 #ifndef __ardour_imageframe_time_axis_h__
 #define __ardour_imageframe_time_axis_h__
 
+#include <list>
 #include <gtkmm.h>
 #include <libgnomecanvas/libgnomecanvas.h>
 
 #include "ardour_dialog.h"
 #include "enums.h"
 #include "time_axis_view.h"
-#include <list>
+#include "canvas.h"
 #include "visual_time_axis.h"
 
 namespace ARDOUR
@@ -59,7 +60,7 @@ class ImageFrameTimeAxis : public VisualTimeAxis
                 * @param sess the current session
                 * @param canvas the parent canvas item
                 */
-               ImageFrameTimeAxis(std::string track_id, PublicEditor& ed, ARDOUR::Session& sess, Gtk::Widget *canvas) ;
+               ImageFrameTimeAxis(std::string track_id, PublicEditor& ed, ARDOUR::Session& sess, ArdourCanvas::Canvas& canvas) ;
                
                /**
                 * Destructor
index 37302cf6e03d921985f8339d1c1d1ca95323eca2..767bb458f3e7742e155b77e26977780b1f7807a0 100644 (file)
 #include "ardour_ui.h"
 #include "public_editor.h"
 #include "imageframe_time_axis.h"
-#include "canvas-simplerect.h"
 #include "selection.h"
 #include "imageframe_time_axis_view.h"
 #include "marker_time_axis_view.h"
 #include "imageframe_view.h"
 #include "marker_time_axis.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
@@ -55,7 +55,7 @@ using namespace Gtk;
  * @param name the name/id of this time axis
  * @param tav the associated track view that this MarkerTimeAxis is marking up
  */
-MarkerTimeAxis::MarkerTimeAxis (PublicEditor& ed, ARDOUR::Session& sess, Widget *canvas, std::string name, TimeAxisView* tav)
+MarkerTimeAxis::MarkerTimeAxis (PublicEditor& ed, ARDOUR::Session& sess, Canvas& canvas, std::string name, TimeAxisView* tav)
        : AxisView(sess),
          VisualTimeAxis(name, ed, sess, canvas)
 {
@@ -65,9 +65,7 @@ MarkerTimeAxis::MarkerTimeAxis (PublicEditor& ed, ARDOUR::Session& sess, Widget
        _color = unique_random_color() ;
        time_axis_name = name ;
 
-       //GTK2FIX -- how to get the group? is the canvas display really a group?
-       //selection_group = gnome_canvas_item_new (GNOME_CANVAS_GROUP(canvas_display), gnome_canvas_group_get_type (), 0) ;
-       selection_group = new Gnome::Canvas::Group (*canvas_display);
+       selection_group = new Group (*canvas_display);
        selection_group->hide();
 
        // intialize our data items
@@ -96,28 +94,28 @@ MarkerTimeAxis::~MarkerTimeAxis()
 
        for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i)
        {
-               gtk_object_destroy (GTK_OBJECT((*i)->rect));
-               gtk_object_destroy (GTK_OBJECT((*i)->start_trim));
-               gtk_object_destroy (GTK_OBJECT((*i)->end_trim));
+               delete (*i)->rect;
+               delete (*i)->start_trim;
+               delete (*i)->end_trim;
        }
 
        for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i)
        {
-               gtk_object_destroy (GTK_OBJECT((*i)->rect));
-               gtk_object_destroy (GTK_OBJECT((*i)->start_trim));
-               gtk_object_destroy (GTK_OBJECT((*i)->end_trim));
+               delete (*i)->rect;
+               delete (*i)->start_trim;
+               delete (*i)->end_trim;
        }
        
        if(selection_group)
        {
-               gtk_object_destroy(GTK_OBJECT (selection_group)) ;
+               delete selection_group;
                selection_group = 0 ;
        }
 
        // destroy the view helper
        // this handles removing and destroying individual marker items
-       if(view)
-       {
+
+       if(view) {
                delete view ;
                view = 0 ;
        }
index 480e38f5b010adb5d346057466b6a2568a125eff..a48eec7d5ac40901b39f89284dfb5dd5670af551 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef __ardour_marker_time_axis_h__
 #define __ardour_marker_time_axis_h__
 
+#include <string>
 #include <gtkmm.h>
 #include <libgnomecanvas/libgnomecanvas.h>
 
@@ -28,7 +29,7 @@
 #include "route_ui.h"
 #include "enums.h"
 #include "time_axis_view.h"
-#include <string>
+#include "canvas.h"
 #include "visual_time_axis.h"
 
 namespace ARDOUR {
@@ -63,7 +64,7 @@ class MarkerTimeAxis : public VisualTimeAxis
                 * @param name the name/id of this time axis
                 * @param tav the associated track view that this MarkerTimeAxis is marking up
                 */
-               MarkerTimeAxis(PublicEditor& ed, ARDOUR::Session& sess, Gtk::Widget* canvas, std::string name, TimeAxisView* tav) ;
+               MarkerTimeAxis(PublicEditor& ed, ARDOUR::Session& sess, ArdourCanvas::Canvas& canvas, std::string name, TimeAxisView* tav) ;
                
                /**
                 * Destructor
index c39736c0ffa89714a9bc97defd5e8df8f1f47d4b..1e98dda2d4e00d37656cf2131463bd0292db85ed 100644 (file)
@@ -428,7 +428,7 @@ OptionEditor::setup_path_options()
        vector<string> nfstrings = internationalize (native_format_strings);
 
        set_popdown_strings (native_format_combo, nfstrings);
-       native_format_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::native_format_chosen));
+       native_format_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::native_format_chosen));
 
        fixup_combo_size (native_format_combo, nfstrings);
 
@@ -489,7 +489,7 @@ OptionEditor::setup_fade_options ()
        dumb.push_back (lmode_strings[Session::AddHigher]);
        set_popdown_strings (layer_mode_combo, dumb);
 
-       layer_mode_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::layer_mode_chosen));
+       layer_mode_combo.signal_changed ().connect (mem_fun(*this, &OptionEditor::layer_mode_chosen));
 
        fixup_combo_size (layer_mode_combo, layer_mode_strings);
 
@@ -507,7 +507,7 @@ OptionEditor::setup_fade_options ()
        dumb.push_back (xfade_model_strings[ShortCrossfade]);
        set_popdown_strings (xfade_model_combo, dumb);
 
-       xfade_model_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::xfade_model_chosen));
+       xfade_model_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::xfade_model_chosen));
 
        fixup_combo_size (xfade_model_combo, xfade_model_strings);
 
@@ -551,11 +551,11 @@ OptionEditor::short_xfade_adjustment_changed ()
        }
 }
 
-gint
-OptionEditor::layer_mode_chosen (GdkEventAny* ev)
+void
+OptionEditor::layer_mode_chosen ()
 {
        if (!session) {
-               return FALSE;
+               return;
        }
 
        string which = layer_mode_combo.get_active_text ();
@@ -567,14 +567,13 @@ OptionEditor::layer_mode_chosen (GdkEventAny* ev)
        } else if (which == layer_mode_strings[Session::AddHigher]) {
                session->set_layer_model (Session::AddHigher);
        }
-       return FALSE;
 }
 
-gint
-OptionEditor::xfade_model_chosen (GdkEventAny* ev)
+void
+OptionEditor::xfade_model_chosen ()
 {
        if (!session) {
-               return FALSE;
+               return;
        }
 
        string which = xfade_model_combo.get_active_text ();
@@ -584,7 +583,6 @@ OptionEditor::xfade_model_chosen (GdkEventAny* ev)
        } else if (which == xfade_model_strings[ShortCrossfade]) {
                session->set_xfade_model (ShortCrossfade);
        }
-       return FALSE;
 }
 
 void
@@ -705,7 +703,7 @@ OptionEditor::setup_display_options ()
        dumb.push_back (_("Medium"));
        dumb.push_back (_("Long"));
        set_popdown_strings (meter_hold_combo, dumb);
-       meter_hold_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::meter_hold_chosen));
+       meter_hold_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::meter_hold_chosen));
        hbox = manage (new HBox);
        hbox->set_border_width (8);
        hbox->set_spacing (8);
@@ -724,7 +722,7 @@ OptionEditor::setup_display_options ()
        dumb.push_back (_("Faster"));
        dumb.push_back (_("Fastest"));
        set_popdown_strings (meter_falloff_combo, dumb);
-       meter_falloff_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::meter_falloff_chosen));
+       meter_falloff_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::meter_falloff_chosen));
        hbox = manage (new HBox);
        hbox->set_border_width (8);
        hbox->set_spacing (8);
@@ -747,8 +745,8 @@ OptionEditor::setup_display_options ()
        follow_playhead_button.set_active (editor.follow_playhead());
 }
 
-gint
-OptionEditor::meter_hold_chosen (GdkEventAny* ev)
+void
+OptionEditor::meter_hold_chosen ()
 {
        if (session) {
                string str = meter_hold_combo.get_active_text();
@@ -763,12 +761,10 @@ OptionEditor::meter_hold_chosen (GdkEventAny* ev)
                        session->set_meter_hold (200);
                }
        }
-
-       return TRUE;
 }
 
-gint
-OptionEditor::meter_falloff_chosen (GdkEventAny* ev)
+void
+OptionEditor::meter_falloff_chosen ()
 {
        if (session) {
                string str = meter_falloff_combo.get_active_text();
@@ -789,8 +785,6 @@ OptionEditor::meter_falloff_chosen (GdkEventAny* ev)
                        session->set_meter_falloff (2.5f);
                }
        }
-
-       return TRUE;
 }
 
 void
@@ -834,7 +828,7 @@ OptionEditor::setup_sync_options ()
        positional_sync_strings = internationalize (psync_strings);
 
        slave_type_combo.set_name ("OptionsEntry");
-       slave_type_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::slave_type_chosen));
+       slave_type_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::slave_type_chosen));
 
        dumb.clear ();
        dumb.push_back (X_("24 FPS"));
@@ -843,7 +837,7 @@ OptionEditor::setup_sync_options ()
        dumb.push_back (X_("30 FPS non-drop"));
        
        set_popdown_strings (smpte_fps_combo, dumb);
-       smpte_fps_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::smpte_fps_chosen));
+       smpte_fps_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::smpte_fps_chosen));
        
        smpte_offset_clock.set_mode (AudioClock::SMPTE);
        smpte_offset_clock.ValueChanged.connect (mem_fun(*this, &OptionEditor::smpte_offset_chosen));
@@ -911,8 +905,8 @@ OptionEditor::smpte_offset_negative_clicked ()
        }
 }
 
-gint
-OptionEditor::smpte_fps_chosen (GdkEventAny* ev)
+void
+OptionEditor::smpte_fps_chosen ()
 {
        if (session) {
                string str = smpte_fps_combo.get_active_text();
@@ -927,8 +921,6 @@ OptionEditor::smpte_fps_chosen (GdkEventAny* ev)
                        session->set_smpte_type (30.0, false);
                }
        }
-       
-       return TRUE;
 }
 
 void
@@ -1466,13 +1458,13 @@ OptionEditor::session_control_changed (Session::ControlType t)
        }
 }
 
-gint
-OptionEditor::native_format_chosen (GdkEventAny *ignored)
+void
+OptionEditor::native_format_chosen ()
 {
        string which;
 
        if (session == 0) {
-               return FALSE;
+               return;
        }
 
        bool use_bwf = (native_format_combo.get_active_text() == native_format_strings[0]);
@@ -1481,17 +1473,15 @@ OptionEditor::native_format_chosen (GdkEventAny *ignored)
                Config->set_native_format_is_bwf (use_bwf);
                session->reset_native_file_format ();
        }
-
-       return TRUE;
 }
 
-gint
-OptionEditor::slave_type_chosen (GdkEventAny *ignored)
+void
+OptionEditor::slave_type_chosen ()
 {
        string which;
 
        if (session == 0) {
-               return FALSE;
+               return;
        }
 
        which = slave_type_combo.get_active_text();
@@ -1503,7 +1493,6 @@ OptionEditor::slave_type_chosen (GdkEventAny *ignored)
        } else if (which == positional_sync_strings[Session::JACK]) {
                session->request_slave_source (Session::JACK);
        } 
-       return FALSE;
 }
 
 void
@@ -1833,7 +1822,7 @@ OptionEditor::setup_keyboard_options ()
        }
 
        set_popdown_strings (edit_modifier_combo, dumb);
-       edit_modifier_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::edit_modifier_chosen));
+       edit_modifier_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::edit_modifier_chosen));
 
        for (int x = 0; modifiers[x].name; ++x) {
                if (modifiers[x].modifier == Keyboard::edit_modifier ()) {
@@ -1860,7 +1849,7 @@ OptionEditor::setup_keyboard_options ()
        edit_button_adjustment.signal_value_changed().connect (mem_fun(*this, &OptionEditor::edit_button_changed));
 
        set_popdown_strings (delete_modifier_combo, dumb);
-       delete_modifier_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::delete_modifier_chosen));
+       delete_modifier_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::delete_modifier_chosen));
 
        for (int x = 0; modifiers[x].name; ++x) {
                if (modifiers[x].modifier == Keyboard::delete_modifier ()) {
@@ -1887,7 +1876,7 @@ OptionEditor::setup_keyboard_options ()
        delete_button_adjustment.signal_value_changed().connect (mem_fun(*this, &OptionEditor::delete_button_changed));
 
        set_popdown_strings (snap_modifier_combo, dumb);
-       snap_modifier_combo.signal_unmap_event().connect (mem_fun(*this, &OptionEditor::snap_modifier_chosen));
+       snap_modifier_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::snap_modifier_chosen));
        
        for (int x = 0; modifiers[x].name; ++x) {
                if (modifiers[x].modifier == (guint) Keyboard::snap_modifier ()) {
@@ -1904,8 +1893,8 @@ OptionEditor::setup_keyboard_options ()
        keyboard_mouse_table.attach (snap_modifier_combo, 1, 2, 2, 3, Gtk::FILL|Gtk::EXPAND, FILL);
 }
 
-gint
-OptionEditor::edit_modifier_chosen (GdkEventAny *ev)
+void
+OptionEditor::edit_modifier_chosen ()
 {
        string txt;
        
@@ -1917,11 +1906,10 @@ OptionEditor::edit_modifier_chosen (GdkEventAny *ev)
                        break;
                }
        }
-       return TRUE;
 }
 
-gint
-OptionEditor::delete_modifier_chosen (GdkEventAny *ev)
+void
+OptionEditor::delete_modifier_chosen ()
 {
        string txt;
        
@@ -1933,11 +1921,10 @@ OptionEditor::delete_modifier_chosen (GdkEventAny *ev)
                        break;
                }
        }
-       return TRUE;
 }
 
-gint
-OptionEditor::snap_modifier_chosen (GdkEventAny *ev)
+void
+OptionEditor::snap_modifier_chosen ()
 {
        string txt;
        
@@ -1949,7 +1936,6 @@ OptionEditor::snap_modifier_chosen (GdkEventAny *ev)
                        break;
                }
        }
-       return TRUE;
 }
 
 void
index 82771a071d29ec271ef8a719c946ee68b12418e4..2808b18dddef5c2a7b76a7e738b53f1ac967f0be 100644 (file)
@@ -83,7 +83,7 @@ class OptionEditor : public ArdourDialog
        void setup_path_options();
        void add_session_paths ();
        void remove_session_paths ();
-       gint native_format_chosen (GdkEventAny *);
+       void native_format_chosen ();
        void raid_path_changed ();
 
        /* fades */
@@ -102,8 +102,8 @@ class OptionEditor : public ArdourDialog
 
        void auto_xfade_clicked ();
        void xfade_active_clicked ();
-       gint layer_mode_chosen (GdkEventAny*);
-       gint xfade_model_chosen (GdkEventAny*);
+       void layer_mode_chosen ();
+       void xfade_model_chosen ();
        void setup_fade_options();
        void short_xfade_adjustment_changed ();
 
@@ -135,8 +135,8 @@ class OptionEditor : public ArdourDialog
        void show_measures_clicked ();
        void strip_width_clicked ();
        void follow_playhead_clicked ();
-       gint meter_hold_chosen (GdkEventAny *);
-       gint meter_falloff_chosen (GdkEventAny *);
+       void meter_hold_chosen ();
+       void meter_falloff_chosen ();
        
        void display_control_changed (Editing::DisplayControl);
 
@@ -155,10 +155,10 @@ class OptionEditor : public ArdourDialog
        void setup_sync_options ();
        gint send_mtc_toggled (GdkEventButton*, Gtk::CheckButton*);
 
-       gint slave_type_chosen (GdkEventAny*);
+       void slave_type_chosen ();
        void jack_time_master_clicked ();
        void jack_transport_master_clicked ();
-       gint smpte_fps_chosen (GdkEventAny*);
+       void smpte_fps_chosen ();
        void smpte_offset_chosen ();
        void smpte_offset_negative_clicked ();
 
@@ -247,9 +247,9 @@ class OptionEditor : public ArdourDialog
        Gtk::SpinButton edit_button_spin;
 
        void setup_keyboard_options ();
-       gint delete_modifier_chosen (GdkEventAny*);
-       gint edit_modifier_chosen (GdkEventAny*);
-       gint snap_modifier_chosen (GdkEventAny*);
+       void delete_modifier_chosen ();
+       void edit_modifier_chosen ();
+       void snap_modifier_chosen ();
        void edit_button_changed ();
        void delete_button_changed ();
 
index efeb1727f86c9ca533b8e446c6fa0d747a5d6f43..6b614a5a47f678bb502f4045c12e79752f073e21 100644 (file)
 
 #include "pan_automation_time_axis.h"
 #include "automation_line.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
 using namespace ARDOUR;
 using namespace Gtk;
 
-PanAutomationTimeAxisView::PanAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Widget* p, std::string n)
+PanAutomationTimeAxisView::PanAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Canvas& canvas, std::string n)
 
        : AxisView (s),
-         AutomationTimeAxisView (s, r, e, parent, p, n, X_("pan"), "")
+         AutomationTimeAxisView (s, r, e, parent, canvas, n, X_("pan"), "")
 {
 }
 
index 5224bd4aca8e1ab6f6d9e5c0fe7e9c6bd8b6e3cd..b35ee67735bc4a29065341701fb8568385d6ad56 100644 (file)
@@ -15,7 +15,7 @@ class PanAutomationTimeAxisView : public AutomationTimeAxisView
                                   ARDOUR::Route&,
                                   PublicEditor&,
                                   TimeAxisView& parent_axis,
-                                  ArdourCanvas::Group& parent,
+                                  ArdourCanvas::Canvas& canvas,
                                   std::string name);
 
        ~PanAutomationTimeAxisView();
index a70aedaf704d245237e0c4626df714cb97fa8fa5..d155db57c608900e24a007a226f692ad810f71dd 100644 (file)
@@ -479,7 +479,7 @@ PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, MIDI::Contr
                                control_ui->combo = new Gtk::ComboBoxText;
                                //control_ui->combo->set_value_in_list(true, false);
                                set_popdown_strings (*control_ui->combo, setup_scale_values(port_index, control_ui));
-                               control_ui->combo->signal_unmap_event().connect (bind (mem_fun(*this, &PluginUI::control_combo_changed), control_ui));
+                               control_ui->combo->signal_changed().connect (bind (mem_fun(*this, &PluginUI::control_combo_changed), control_ui));
                                plugin.ParameterChanged.connect (bind (mem_fun (*this, &PluginUI::parameter_changed), control_ui));
                                control_ui->pack_start(control_ui->label, true, true);
                                control_ui->pack_start(*control_ui->combo, false, true);
@@ -873,7 +873,7 @@ PlugUIBase::PlugUIBase (PluginInsert& pi)
         //combo.set_use_arrows_always(true);
        set_popdown_strings (combo, plugin.get_presets());
        combo.set_active_text ("");
-       combo.signal_unmap_event().connect(mem_fun(*this, &PlugUIBase::setting_selected));
+       combo.signal_changed().connect(mem_fun(*this, &PlugUIBase::setting_selected));
 
        save_button.set_name ("PluginSaveButton");
        save_button.signal_clicked().connect(mem_fun(*this, &PlugUIBase::save_plugin_setting));
index 0046147c96c97c28ac03d28db8295780fa42df30..ef7ba1eb2afc6de170c25a03721239da17438535 100644 (file)
@@ -81,7 +81,7 @@ class PlugUIBase : public sigc::trackable
        Gtk::Button save_button;
        Gtk::ToggleButton bypass_button;
 
-       gint setting_selected(GdkEventAny* ignored);
+       void setting_selected();
        void save_plugin_setting (void);
        void bypass_toggled();
 };
@@ -186,7 +186,7 @@ class PluginUI : public PlugUIBase, public Gtk::VBox
        void parameter_changed (uint32_t, float, ControlUI* cui);
        void update_control_display (ControlUI* cui);
        void control_port_toggled (ControlUI* cui);
-       bool control_combo_changed (GdkEventAny* ignored, ControlUI* cui);
+       void control_combo_changed (GdkEventAny* ignored, ControlUI* cui);
        gint entry_focus_event (GdkEventFocus* ev);
 
        void redirect_active_changed (ARDOUR::Redirect*, void*);
index 3be8123c230164e80ba1eed91c4b7556a344ed4f..7a7fa1925e3200d0adb9e671c739020578570033 100644 (file)
@@ -52,7 +52,7 @@ class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget
 
        typedef list<TimeAxisView *> TrackViewList;
 
-       static PublicEditor* instance() { return _instance; }
+       static PublicEditor& instance() { return *_instance; }
 
        virtual void             connect_to_session (ARDOUR::Session*) = 0;
        virtual ARDOUR::Session* current_session() const = 0;
index 0879bd28a459fd6b0b3699a94b8605465f0b2c57..90acec08c4636ebea571ba767478527dd72507f2 100644 (file)
@@ -35,11 +35,9 @@ using namespace ARDOUR;
 
 RedirectAutomationLine::RedirectAutomationLine (string name, Redirect& rd, uint32_t port, Session& s,
                                                TimeAxisView& tv, Gnome::Canvas::Group& parent,
-                                               AutomationList& l,
-                                               sigc::slot<bool,GdkEvent*,ControlPoint*> point_handler,
-                                               sigc::slot<bool,GdkEvent*,AutomationLine*> line_handler),
+                                               AutomationList& l)
 
-       : AutomationLine (name, tv, parent, l, point_handler, line_handler),
+       : AutomationLine (name, tv, parent, l)
          session (s),
          _redirect (rd),
          _port (port)
index 0a26a95ecb0fada9242809f639359299e72d31d5..feeb024276b976bc63e90467a374f1da2056a605 100644 (file)
@@ -24,7 +24,6 @@
 #include <ardour/ardour.h>
 #include <gtkmm.h>
 
-#include "canvas.h"
 #include "automation_line.h"
 
 namespace ARDOUR {
@@ -37,11 +36,8 @@ class TimeAxisView;
 class RedirectAutomationLine : public AutomationLine
 {
   public:
-  RedirectAutomationLine (string name, ARDOUR::Redirect&, uint32_t port, ARDOUR::Session&, TimeAxisView&, 
-                         ArdourCanvas::Group& parent,
-                         ARDOUR::AutomationList&, 
-                         sigc::slot<bool,GdkEvent*,ControlPoint*> point_handler,
-                         sigc::slot<bool,GdkEvent*,AutomationLine*> line_handler);
+       RedirectAutomationLine (string name, ARDOUR::Redirect&, uint32_t port, ARDOUR::Session&, TimeAxisView&, 
+                               ArdourCanvas::Group& parent, ARDOUR::AutomationList&);
        
        uint32_t port() const { return _port; }
        ARDOUR::Redirect& redirect() const { return _redirect; }
index 236d1824758694248d11b627fbbdb3b94a749485..f3c6ca3776f547483e0696670fcb9d22d6e698ff 100644 (file)
 
 #include "redirect_automation_time_axis.h"
 #include "automation_line.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
 using namespace ARDOUR;
 using namespace Gtk;
 
-RedirectAutomationTimeAxisView::RedirectAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, ArdourCanvas::Group& gp, std::string n,
+RedirectAutomationTimeAxisView::RedirectAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Canvas& canvas, std::string n,
                                                                uint32_t prt, Redirect& rd, string state_name)
 
        : AxisView (s),
-         AutomationTimeAxisView (s, r, e, parent, gp, n, state_name, rd.name()),
+         AutomationTimeAxisView (s, r, e, parent, canvas, n, state_name, rd.name()),
          redirect (rd),
          port (prt)
        
index 0e57afb8b6796ec037a85718dee77417e2d238d8..b8d94b2a3ee9b031f3170c4a3da5337a847aeaa6 100644 (file)
@@ -17,7 +17,7 @@ class RedirectAutomationTimeAxisView : public AutomationTimeAxisView
                                        ARDOUR::Route&,
                                        PublicEditor&,
                                        TimeAxisView& parent,
-                                       ArdourCanvas::Group& parent,
+                                       ArdourCanvas::Canvas& canvas,
                                        std::string name,
                                        uint32_t port,
                                        ARDOUR::Redirect& rd,
index 7f4d88e5ec64bccbf738f664ffe12f368dee7814..59bb6c58eaac4227df7e182a7539e2f38808bb9d 100644 (file)
@@ -229,7 +229,7 @@ class TimeAxisView : public virtual AxisView
          * Do anything that needs to be done to dynamically reset
         * the LHS control menu.
         */
-       virtual gint 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 TrackHeight options.
index 0030c05fb5814a6d3f9a10fe09d550a547f842ce..1f2de282d384ecf406ad386a191c33dd2fb7d76e 100644 (file)
@@ -41,7 +41,6 @@
 #include "ardour_ui.h"
 #include "public_editor.h"
 #include "imageframe_time_axis.h"
-#include "canvas-simplerect.h"
 #include "imageframe_time_axis_view.h"
 #include "marker_time_axis_view.h"
 #include "imageframe_view.h"
@@ -50,6 +49,7 @@
 #include "utils.h"
 #include "prompter.h"
 #include "rgb_macros.h"
+#include "canvas_impl.h"
 
 #include "i18n.h"
 
@@ -83,7 +83,7 @@ static const gchar* small_x_xpm[] = {
  * @param sess the current session
  * @param canvas the parent canvas object
  */
-VisualTimeAxis::VisualTimeAxis(std::string name, PublicEditor& ed, ARDOUR::Session& sess, Widget *canvas)
+VisualTimeAxis::VisualTimeAxis(std::string name, PublicEditor& ed, ARDOUR::Session& sess, Canvas& canvas)
        : AxisView(sess),
          TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas),
          visual_button (_("v")),
index 43176fa6e8fb2bb84441cd73b70413a63c0d9885..2768a0aac017ec32382138f74d5c231448136646 100644 (file)
 #define __ardour_visual_time_axis_h__
 
 #include <gtkmm.h>
-#include <libgnomecanvas/libgnomecanvas.h>
 #include <gtkmm2ext/selector.h>
 
 #include "ardour_dialog.h"
 #include "route_ui.h"
 #include "enums.h"
 #include "time_axis_view.h"
-
+#include "canvas.h"
 
 namespace ARDOUR
 {
@@ -145,7 +144,7 @@ class VisualTimeAxis : public TimeAxisView
                 * @param sess the current session
                 * @param canvas the parent canvas object
                 */
-               VisualTimeAxis(std::string name, PublicEditor& ed, ARDOUR::Session& sess, Gtk::Widget* canvas) ;
+               VisualTimeAxis(std::string name, PublicEditor& ed, ARDOUR::Session& sess, ArdourCanvas::Canvas& canvas) ;
                
                
                //---------------------------------------------------------------------------------------//
index f9d4569e44959a458cab9b3d0665ab65ca623f86..7de3101496797c7789b68242f7d7f853b2fca62e 100644 (file)
@@ -35,7 +35,7 @@ namespace Gtkmm2ext {
                                                     gint hpadding,
                                                     gint vpadding);
 
-       void set_popdown_strings (Gtk::ComboBoxText&, std::vector<std::string>&);
+       void set_popdown_strings (Gtk::ComboBoxText&, const std::vector<std::string>&);
        
        template<class T> void deferred_delete (void *ptr) {
                delete static_cast<T *> (ptr);
index 2f0bf3a98eda8c44d4f29a72ac1563c505c0e986..b82fad3c55428946a90dd943fc0a2429963dd5f7 100644 (file)
@@ -44,11 +44,11 @@ Gtkmm2ext::init ()
 }
 
 void
-Gtkmm2ext::set_popdown_strings (Gtk::ComboBoxText& cr, vector<string>& strings)
+Gtkmm2ext::set_popdown_strings (Gtk::ComboBoxText& cr, const vector<string>& strings)
 {
        cr.clear ();
 
-       for (vector<string>::iterator i = strings.begin(); i != strings.end(); ++i) {
+       for (vector<string>::const_iterator i = strings.begin(); i != strings.end(); ++i) {
                cr.append_text (*i);
        }
 }