diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-16 02:57:22 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-16 02:57:22 +0000 |
commit | f16caf535c3e7a697c7464ecc153bce1b341d0ef (patch) | |
tree | de359f3e2ef8d30d070cff3476bcea7d185596cb | |
parent | adacfd9b24fb0ac7c4029cd659d21107eb7a2208 (diff) |
get editor.cc to compile
git-svn-id: svn://localhost/trunk/ardour2@99 d708f5d6-7413-0410-9779-e7cbd77b26cf
36 files changed, 219 insertions, 259 deletions
diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 3958bea4b5..9b444966aa 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -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 (); diff --git a/gtk2_ardour/audio_time_axis.h b/gtk2_ardour/audio_time_axis.h index ed6cc49b2d..ca8aabf305 100644 --- a/gtk2_ardour/audio_time_axis.h +++ b/gtk2_ardour/audio_time_axis.h @@ -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&); diff --git a/gtk2_ardour/automation_gain_line.cc b/gtk2_ardour/automation_gain_line.cc index b07f3c14a1..58dc502520 100644 --- a/gtk2_ardour/automation_gain_line.cc +++ b/gtk2_ardour/automation_gain_line.cc @@ -32,12 +32,9 @@ 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); diff --git a/gtk2_ardour/automation_gain_line.h b/gtk2_ardour/automation_gain_line.h index ba95b64480..2962b2a718 100644 --- a/gtk2_ardour/automation_gain_line.h +++ b/gtk2_ardour/automation_gain_line.h @@ -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&); diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index c21cf70582..da208489f4 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -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); diff --git a/gtk2_ardour/automation_line.h b/gtk2_ardour/automation_line.h index dbb920f52a..ed3ad05b16 100644 --- a/gtk2_ardour/automation_line.h +++ b/gtk2_ardour/automation_line.h @@ -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; diff --git a/gtk2_ardour/automation_pan_line.cc b/gtk2_ardour/automation_pan_line.cc index 516795dff7..0bdbdef3f4 100644 --- a/gtk2_ardour/automation_pan_line.cc +++ b/gtk2_ardour/automation_pan_line.cc @@ -22,6 +22,7 @@ #include <ardour/curve.h> +#include "canvas_impl.h" #include "public_editor.h" #include "automation_pan_line.h" #include "utils.h" @@ -31,12 +32,9 @@ 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) { } diff --git a/gtk2_ardour/automation_pan_line.h b/gtk2_ardour/automation_pan_line.h index 9957f52016..a8535da71b 100644 --- a/gtk2_ardour/automation_pan_line.h +++ b/gtk2_ardour/automation_pan_line.h @@ -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; }; diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc index 5339b0a02e..9e3fb09a4a 100644 --- a/gtk2_ardour/automation_time_axis.cc +++ b/gtk2_ardour/automation_time_axis.cc @@ -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); diff --git a/gtk2_ardour/automation_time_axis.h b/gtk2_ardour/automation_time_axis.h index d43be38a49..2dc43853a2 100644 --- a/gtk2_ardour/automation_time_axis.h +++ b/gtk2_ardour/automation_time_axis.h @@ -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; diff --git a/gtk2_ardour/canvas_impl.h b/gtk2_ardour/canvas_impl.h index f492d2901e..817679b734 100644 --- a/gtk2_ardour/canvas_impl.h +++ b/gtk2_ardour/canvas_impl.h @@ -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> diff --git a/gtk2_ardour/crossfade_view.cc b/gtk2_ardour/crossfade_view.cc index 7e6a889a3e..cca92198f5 100644 --- a/gtk2_ardour/crossfade_view.cc +++ b/gtk2_ardour/crossfade_view.cc @@ -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)); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index fad53f8182..cfbb6ddd4d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -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 diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index b27ad65b32..43205fb31a 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -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); diff --git a/gtk2_ardour/gain_automation_time_axis.cc b/gtk2_ardour/gain_automation_time_axis.cc index 17427d57fe..ed2ea49d67 100644 --- a/gtk2_ardour/gain_automation_time_axis.cc +++ b/gtk2_ardour/gain_automation_time_axis.cc @@ -23,16 +23,17 @@ #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) { diff --git a/gtk2_ardour/gain_automation_time_axis.h b/gtk2_ardour/gain_automation_time_axis.h index f7b5ae426c..0cc211ee1b 100644 --- a/gtk2_ardour/gain_automation_time_axis.h +++ b/gtk2_ardour/gain_automation_time_axis.h @@ -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&); diff --git a/gtk2_ardour/imageframe_time_axis.cc b/gtk2_ardour/imageframe_time_axis.cc index 5fe195c043..17bdf5ecab 100644 --- a/gtk2_ardour/imageframe_time_axis.cc +++ b/gtk2_ardour/imageframe_time_axis.cc @@ -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) { diff --git a/gtk2_ardour/imageframe_time_axis.h b/gtk2_ardour/imageframe_time_axis.h index 7625851a0a..266cb4405d 100644 --- a/gtk2_ardour/imageframe_time_axis.h +++ b/gtk2_ardour/imageframe_time_axis.h @@ -21,13 +21,14 @@ #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 diff --git a/gtk2_ardour/marker_time_axis.cc b/gtk2_ardour/marker_time_axis.cc index 37302cf6e0..767bb458f3 100644 --- a/gtk2_ardour/marker_time_axis.cc +++ b/gtk2_ardour/marker_time_axis.cc @@ -30,12 +30,12 @@ #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 ; } diff --git a/gtk2_ardour/marker_time_axis.h b/gtk2_ardour/marker_time_axis.h index 480e38f5b0..a48eec7d5a 100644 --- a/gtk2_ardour/marker_time_axis.h +++ b/gtk2_ardour/marker_time_axis.h @@ -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 diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index c39736c0ff..1e98dda2d4 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -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 diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index 82771a071d..2808b18ddd 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -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 (); diff --git a/gtk2_ardour/pan_automation_time_axis.cc b/gtk2_ardour/pan_automation_time_axis.cc index efeb1727f8..6b614a5a47 100644 --- a/gtk2_ardour/pan_automation_time_axis.cc +++ b/gtk2_ardour/pan_automation_time_axis.cc @@ -26,16 +26,17 @@ #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"), "") { } diff --git a/gtk2_ardour/pan_automation_time_axis.h b/gtk2_ardour/pan_automation_time_axis.h index 5224bd4aca..b35ee67735 100644 --- a/gtk2_ardour/pan_automation_time_axis.h +++ b/gtk2_ardour/pan_automation_time_axis.h @@ -15,7 +15,7 @@ class PanAutomationTimeAxisView : public AutomationTimeAxisView ARDOUR::Route&, PublicEditor&, TimeAxisView& parent_axis, - ArdourCanvas::Group& parent, + ArdourCanvas::Canvas& canvas, std::string name); ~PanAutomationTimeAxisView(); diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index a70aedaf70..d155db57c6 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -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)); diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 0046147c96..ef7ba1eb2a 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -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*); diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 3be8123c23..7a7fa1925e 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -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; diff --git a/gtk2_ardour/redirect_automation_line.cc b/gtk2_ardour/redirect_automation_line.cc index 0879bd28a4..90acec08c4 100644 --- a/gtk2_ardour/redirect_automation_line.cc +++ b/gtk2_ardour/redirect_automation_line.cc @@ -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) diff --git a/gtk2_ardour/redirect_automation_line.h b/gtk2_ardour/redirect_automation_line.h index 0a26a95ecb..feeb024276 100644 --- a/gtk2_ardour/redirect_automation_line.h +++ b/gtk2_ardour/redirect_automation_line.h @@ -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; } diff --git a/gtk2_ardour/redirect_automation_time_axis.cc b/gtk2_ardour/redirect_automation_time_axis.cc index 236d182475..f3c6ca3776 100644 --- a/gtk2_ardour/redirect_automation_time_axis.cc +++ b/gtk2_ardour/redirect_automation_time_axis.cc @@ -24,17 +24,18 @@ #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) diff --git a/gtk2_ardour/redirect_automation_time_axis.h b/gtk2_ardour/redirect_automation_time_axis.h index 0e57afb8b6..b8d94b2a3e 100644 --- a/gtk2_ardour/redirect_automation_time_axis.h +++ b/gtk2_ardour/redirect_automation_time_axis.h @@ -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, diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index 7f4d88e5ec..59bb6c58ea 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -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. diff --git a/gtk2_ardour/visual_time_axis.cc b/gtk2_ardour/visual_time_axis.cc index 0030c05fb5..1f2de282d3 100644 --- a/gtk2_ardour/visual_time_axis.cc +++ b/gtk2_ardour/visual_time_axis.cc @@ -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")), diff --git a/gtk2_ardour/visual_time_axis.h b/gtk2_ardour/visual_time_axis.h index 43176fa6e8..2768a0aac0 100644 --- a/gtk2_ardour/visual_time_axis.h +++ b/gtk2_ardour/visual_time_axis.h @@ -22,14 +22,13 @@ #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) ; //---------------------------------------------------------------------------------------// diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h index f9d4569e44..7de3101496 100644 --- a/libs/gtkmm2ext/gtkmm2ext/utils.h +++ b/libs/gtkmm2ext/gtkmm2ext/utils.h @@ -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); diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index 2f0bf3a98e..b82fad3c55 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -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); } } |