X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_imageframe.cc;h=eb78fb5c7f7ba9b25943be5a26d49b4b27517120;hb=a5abcd306ba589411aa8b4e5b2729621bdc77d3a;hp=925e5250997bf3985c5004679148f2a626e8e8a5;hpb=4b233612261e2d13ebbd1931f4d999c6da1451e9;p=ardour.git diff --git a/gtk2_ardour/editor_imageframe.cc b/gtk2_ardour/editor_imageframe.cc index 925e525099..eb78fb5c7f 100644 --- a/gtk2_ardour/editor_imageframe.cc +++ b/gtk2_ardour/editor_imageframe.cc @@ -1,3 +1,23 @@ +/* + Copyright (C) 2000-2003 Paul Davis + Written by Colin Law, CMT, Glasgow + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include "imageframe_view.h" #include "imageframe_time_axis.h" #include "imageframe_time_axis_view.h" @@ -7,6 +27,8 @@ #include "marker_view.h" #include "editor.h" #include "i18n.h" +#include "canvas_impl.h" + #include #include @@ -20,10 +42,13 @@ #include "ardour_image_compositor_socket.h" #include "public_editor.h" +using namespace Gtk; +using namespace PBD; + /* */ void -Editor::add_imageframe_time_axis(std::string track_name, void* src) +Editor::add_imageframe_time_axis(const string & track_name, void* src) { // check for duplicate name if(get_named_time_axis(track_name)) @@ -50,9 +75,9 @@ Editor::connect_to_image_compositor() } // XXX should really put this somewhere safe - std::string host_ip = "127.0.0.1" ; + const char * host_ip = "127.0.0.1" ; - bool retcode = image_socket_listener->connect(host_ip,ardourvis::DEFAULT_PORT) ; + bool retcode = image_socket_listener->connect(host_ip, ardourvis::DEFAULT_PORT) ; if(retcode == false) { @@ -69,23 +94,23 @@ Editor::connect_to_image_compositor() void Editor::scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item) { - jack_nframes_t offset = static_cast(frames_per_unit * (edit_hscroll_slider_width/2)) ; - - jack_nframes_t x_pos = 0 ; - if(item->get_position() < offset) - { + // GTK2FIX + //nframes_t offset = static_cast(frames_per_unit * (edit_hscroll_slider_width/2)) ; + nframes_t offset = 0; + + nframes_t x_pos = 0 ; + + if (item->get_position() < offset) { x_pos = 0 ; - } - else - { - x_pos = item->get_position() - offset + (item->get_duration() / 2) ; + } else { + x_pos = item->get_position() - offset + (item->get_duration() / 2); } - reposition_x_origin(x_pos) ; + reset_x_origin (x_pos); } void -Editor::add_imageframe_marker_time_axis(std::string track_name, TimeAxisView* marked_track, void* src) +Editor::add_imageframe_marker_time_axis(const string & track_name, TimeAxisView* marked_track, void* src) { // Can we only bind 2 data Items? // @todo we really want to bind the src attribute too, for the moment tracks can only be added remotely, @@ -94,9 +119,9 @@ Editor::add_imageframe_marker_time_axis(std::string track_name, TimeAxisView* ma } void -Editor::popup_imageframe_edit_menu(int button, int32_t time, GnomeCanvasItem* ifv, bool with_item) +Editor::popup_imageframe_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item) { - ImageFrameTimeAxis* ifta = dynamic_cast(clicked_trackview) ; + ImageFrameTimeAxis* ifta = dynamic_cast(clicked_axisview) ; if(ifta) { @@ -111,9 +136,9 @@ Editor::popup_imageframe_edit_menu(int button, int32_t time, GnomeCanvasItem* if } void -Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, GnomeCanvasItem* ifv, bool with_item) +Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item) { - MarkerTimeAxis* mta = dynamic_cast(clicked_trackview) ; + MarkerTimeAxis* mta = dynamic_cast(clicked_axisview) ; if(mta) { @@ -126,11 +151,11 @@ Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, GnomeCanvasIt } TimeAxisView* -Editor::get_named_time_axis(std::string name) +Editor::get_named_time_axis(const string & name) { TimeAxisView* tav = 0 ; - for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) + for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) { if (((TimeAxisView*)*i)->name() == name) { @@ -149,86 +174,8 @@ Editor::get_named_time_axis(std::string name) /* */ - -/** - * --------------------------------------------------------------------------------------------------- - * Static event handlers - * These handlers deal with events from the GnomeCanvas, a c-based component - */ - - -gint -Editor::_canvas_imageframe_start_handle_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data) -{ - ImageFrameView* ifv = (ImageFrameView*) data ; - Editor* editor = dynamic_cast (&ifv->get_time_axis_view().editor); - return editor->signal_canvas_imageframe_start_handle_event()(item,event,ifv); -} - -gint -Editor::_canvas_imageframe_end_handle_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data) -{ - ImageFrameView* ifv = (ImageFrameView*) data ; - Editor* editor = dynamic_cast (&ifv->get_time_axis_view().editor); - return editor->signal_canvas_imageframe_end_handle_event()(item,event,ifv); -} - - -gint -Editor::_canvas_imageframe_item_view_event(GnomeCanvasItem *item, GdkEvent* event, gpointer data) -{ - ImageFrameView *ifv = (ImageFrameView *) data ; - Editor* editor = dynamic_cast (&ifv->get_time_axis_view().editor); - return editor->signal_canvas_imageframe_item_view_event() (item, event, ifv) ; -} - -gint -Editor::_canvas_imageframe_view_event(GnomeCanvasItem *item, GdkEvent* event, gpointer data) -{ - ImageFrameTimeAxis *ifta = (ImageFrameTimeAxis*) data ; - Editor* editor = dynamic_cast (&ifta->editor); - return editor->signal_canvas_imageframe_view_event() (item, event, ifta); -} - -gint -Editor::_canvas_marker_time_axis_view_event(GnomeCanvasItem* item, GdkEvent* event, gpointer data) -{ - MarkerTimeAxis* mta = (MarkerTimeAxis*)data ; - Editor* editor = dynamic_cast (&mta->editor); - return editor->signal_canvas_marker_time_axis_view_event()(item,event,mta); -} - -gint -Editor::_canvas_markerview_item_view_event(GnomeCanvasItem *item, GdkEvent* event, gpointer data) -{ - MarkerView* mv = (MarkerView*) data ; - Editor* editor = dynamic_cast (&mv->get_time_axis_view().editor); - return editor->signal_canvas_markerview_item_view_event()(item,event,mv); -} - -gint -Editor::_canvas_markerview_start_handle_event(GnomeCanvasItem* item, GdkEvent* event, gpointer data) -{ - MarkerView* mv = (MarkerView*)data ; - Editor* editor = dynamic_cast (&mv->get_time_axis_view().editor); - return editor->signal_canvas_markerview_start_handle_event()(item,event,mv); -} - -gint -Editor::_canvas_markerview_end_handle_event(GnomeCanvasItem* item, GdkEvent* event, gpointer data) -{ - MarkerView* mv = (MarkerView*)data ; - Editor* editor = dynamic_cast (&mv->get_time_axis_view().editor); - return editor->signal_canvas_markerview_end_handle_event()(item,event,mv); -} - -/** - * --------------------------------------------------------------------------------------------------- - * End of Static event handlers - */ - -gint -Editor::canvas_imageframe_item_view_event(GnomeCanvasItem *item, GdkEvent *event, ImageFrameView *ifv) +bool +Editor::canvas_imageframe_item_view_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) { gint ret = FALSE ; ImageFrameTimeAxisGroup* iftag = 0 ; @@ -238,9 +185,9 @@ Editor::canvas_imageframe_item_view_event(GnomeCanvasItem *item, GdkEvent *event case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &ifv->get_time_axis_view(); + clicked_axisview = &ifv->get_time_axis_view(); iftag = ifv->get_time_axis_group() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_imageframe_view(iftag, ifv); + dynamic_cast(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); ret = button_press_handler (item, event, ImageFrameItem) ; break ; case GDK_BUTTON_RELEASE: @@ -255,8 +202,8 @@ Editor::canvas_imageframe_item_view_event(GnomeCanvasItem *item, GdkEvent *event return(ret) ; } -gint -Editor::canvas_imageframe_start_handle_event(GnomeCanvasItem *item, GdkEvent *event, ImageFrameView *ifv) +bool +Editor::canvas_imageframe_start_handle_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) { gint ret = FALSE ; ImageFrameTimeAxisGroup* iftag = 0 ; @@ -266,9 +213,9 @@ Editor::canvas_imageframe_start_handle_event(GnomeCanvasItem *item, GdkEvent *ev case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &ifv->get_time_axis_view() ; + clicked_axisview = &ifv->get_time_axis_view() ; iftag = ifv->get_time_axis_group() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_imageframe_view(iftag, ifv); + dynamic_cast(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); ret = button_press_handler (item, event, ImageFrameHandleStartItem) ; break ; @@ -290,8 +237,8 @@ Editor::canvas_imageframe_start_handle_event(GnomeCanvasItem *item, GdkEvent *ev return(ret) ; } -gint -Editor::canvas_imageframe_end_handle_event(GnomeCanvasItem *item, GdkEvent *event, ImageFrameView *ifv) +bool +Editor::canvas_imageframe_end_handle_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) { gint ret = FALSE ; ImageFrameTimeAxisGroup* iftag = 0 ; @@ -301,9 +248,9 @@ Editor::canvas_imageframe_end_handle_event(GnomeCanvasItem *item, GdkEvent *even case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &ifv->get_time_axis_view() ; + clicked_axisview = &ifv->get_time_axis_view() ; iftag = ifv->get_time_axis_group() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_imageframe_view(iftag, ifv); + dynamic_cast(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); ret = button_press_handler (item, event, ImageFrameHandleEndItem) ; break ; @@ -325,8 +272,8 @@ Editor::canvas_imageframe_end_handle_event(GnomeCanvasItem *item, GdkEvent *even return(ret) ; } -gint -Editor::canvas_imageframe_view_event(GnomeCanvasItem* item, GdkEvent* event, ImageFrameTimeAxis* ifta) +bool +Editor::canvas_imageframe_view_event (GdkEvent* event, ArdourCanvas::Item* item, ImageFrameTimeAxis* ifta) { gint ret = FALSE ; switch (event->type) @@ -334,7 +281,7 @@ Editor::canvas_imageframe_view_event(GnomeCanvasItem* item, GdkEvent* event, Ima case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = ifta ; + clicked_axisview = ifta ; ret = button_press_handler (item, event, ImageFrameTimeAxisItem) ; break ; case GDK_BUTTON_RELEASE: @@ -348,8 +295,8 @@ Editor::canvas_imageframe_view_event(GnomeCanvasItem* item, GdkEvent* event, Ima return(ret) ; } -gint -Editor::canvas_marker_time_axis_view_event(GnomeCanvasItem *item, GdkEvent* event, MarkerTimeAxis* mta) +bool +Editor::canvas_marker_time_axis_view_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerTimeAxis* mta) { gint ret = FALSE ; switch (event->type) @@ -357,7 +304,7 @@ Editor::canvas_marker_time_axis_view_event(GnomeCanvasItem *item, GdkEvent* even case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = mta ; + clicked_axisview = mta ; ret = button_press_handler(item, event, MarkerTimeAxisItem) ; break ; case GDK_BUTTON_RELEASE: @@ -371,8 +318,8 @@ Editor::canvas_marker_time_axis_view_event(GnomeCanvasItem *item, GdkEvent* even } -gint -Editor::canvas_markerview_item_view_event(GnomeCanvasItem *item, GdkEvent* event, MarkerView* mta) +bool +Editor::canvas_markerview_item_view_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) { gint ret = FALSE ; switch (event->type) @@ -380,8 +327,8 @@ Editor::canvas_markerview_item_view_event(GnomeCanvasItem *item, GdkEvent* event case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &mta->get_time_axis_view() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_time_axis_item(mta); + clicked_axisview = &mta->get_time_axis_view() ; + dynamic_cast(clicked_axisview)->get_view()->set_selected_time_axis_item(mta); ret = button_press_handler(item, event, MarkerViewItem) ; break ; case GDK_BUTTON_RELEASE: @@ -396,8 +343,8 @@ Editor::canvas_markerview_item_view_event(GnomeCanvasItem *item, GdkEvent* event return(ret) ; } -gint -Editor::canvas_markerview_start_handle_event(GnomeCanvasItem* item, GdkEvent* event, MarkerView* mta) +bool +Editor::canvas_markerview_start_handle_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) { gint ret = FALSE ; switch (event->type) @@ -405,8 +352,8 @@ Editor::canvas_markerview_start_handle_event(GnomeCanvasItem* item, GdkEvent* ev case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &mta->get_time_axis_view() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_time_axis_item(mta) ; + clicked_axisview = &mta->get_time_axis_view() ; + dynamic_cast(clicked_axisview)->get_view()->set_selected_time_axis_item(mta) ; ret = button_press_handler(item, event, MarkerViewHandleStartItem) ; break ; case GDK_BUTTON_RELEASE: @@ -427,8 +374,8 @@ Editor::canvas_markerview_start_handle_event(GnomeCanvasItem* item, GdkEvent* ev return(ret) ; } -gint -Editor::canvas_markerview_end_handle_event(GnomeCanvasItem* item, GdkEvent* event, MarkerView* mta) +bool +Editor::canvas_markerview_end_handle_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) { gint ret = FALSE ; switch (event->type) @@ -436,8 +383,8 @@ Editor::canvas_markerview_end_handle_event(GnomeCanvasItem* item, GdkEvent* even case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: - clicked_trackview = &mta->get_time_axis_view() ; - dynamic_cast(clicked_trackview)->get_view()->set_selected_time_axis_item(mta) ; + clicked_axisview = &mta->get_time_axis_view() ; + dynamic_cast(clicked_axisview)->get_view()->set_selected_time_axis_item(mta) ; ret = button_press_handler(item, event, MarkerViewHandleEndItem) ; break ; case GDK_BUTTON_RELEASE: @@ -473,9 +420,9 @@ Editor::canvas_markerview_end_handle_event(GnomeCanvasItem* item, GdkEvent* even /* */ void -Editor::start_imageframe_grab(GnomeCanvasItem* item, GdkEvent* event) +Editor::start_imageframe_grab(ArdourCanvas::Item* item, GdkEvent* event) { - ImageFrameView* ifv = ((ImageFrameTimeAxis*)clicked_trackview)->get_view()->get_selected_imageframe_view() ; + ImageFrameView* ifv = ((ImageFrameTimeAxis*)clicked_axisview)->get_view()->get_selected_imageframe_view() ; drag_info.copy = false ; drag_info.item = item ; drag_info.data = ifv ; @@ -494,10 +441,10 @@ Editor::start_imageframe_grab(GnomeCanvasItem* item, GdkEvent* event) so move them to the top afterwards. */ - gnome_canvas_item_raise_to_top(drag_info.item) ; - gnome_canvas_item_raise_to_top(drag_info.last_trackview->canvas_display) ; - //gnome_canvas_item_raise_to_top(time_line_group) ; - gnome_canvas_item_raise_to_top (cursor_group); + drag_info.item->raise_to_top(); + drag_info.last_trackview->canvas_display->raise_to_top(); + //time_line_group->raise_to_top(); + cursor_group->raise_to_top (); start_grab(event) ; @@ -506,9 +453,9 @@ Editor::start_imageframe_grab(GnomeCanvasItem* item, GdkEvent* event) void -Editor::start_markerview_grab(GnomeCanvasItem* item, GdkEvent* event) +Editor::start_markerview_grab(ArdourCanvas::Item* item, GdkEvent* event) { - MarkerView* mv = ((MarkerTimeAxis*)clicked_trackview)->get_view()->get_selected_time_axis_item() ; + MarkerView* mv = ((MarkerTimeAxis*)clicked_axisview)->get_view()->get_selected_time_axis_item() ; drag_info.copy = false ; drag_info.item = item ; drag_info.data = mv ; @@ -527,10 +474,10 @@ Editor::start_markerview_grab(GnomeCanvasItem* item, GdkEvent* event) so move them to the top afterwards. */ - gnome_canvas_item_raise_to_top(drag_info.item) ; - gnome_canvas_item_raise_to_top(drag_info.last_trackview->canvas_display) ; - //gnome_canvas_item_raise_to_top(time_line_group) ; - gnome_canvas_item_raise_to_top (cursor_group); + drag_info.item->raise_to_top(); + drag_info.last_trackview->canvas_display->raise_to_top(); + //time_line_group->raise_to_top(); + cursor_group->raise_to_top (); start_grab(event) ; @@ -539,19 +486,19 @@ Editor::start_markerview_grab(GnomeCanvasItem* item, GdkEvent* event) void -Editor::markerview_drag_motion_callback(GnomeCanvasItem*, GdkEvent* event) +Editor::markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event) { double cx, cy ; MarkerView* mv = reinterpret_cast(drag_info.data) ; - jack_nframes_t pending_region_position ; - jack_nframes_t pointer_frame ; + nframes_t pending_region_position ; + nframes_t pointer_frame ; pointer_frame = event_frame(event, &cx, &cy) ; snap_to(pointer_frame) ; - if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset) + if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset) { pending_region_position = pointer_frame - drag_info.pointer_frame_offset ; snap_to(pending_region_position) ; @@ -586,20 +533,20 @@ Editor::markerview_drag_motion_callback(GnomeCanvasItem*, GdkEvent* event) } void -Editor::imageframe_drag_motion_callback(GnomeCanvasItem*, GdkEvent* event) +Editor::imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event) { double cx, cy ; ImageFrameView* ifv = reinterpret_cast(drag_info.data) ; - jack_nframes_t pending_region_position; - jack_nframes_t pointer_frame; + nframes_t pending_region_position; + nframes_t pointer_frame; pointer_frame = event_frame(event, &cx, &cy) ; snap_to(pointer_frame) ; - if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset) + if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset) { pending_region_position = pointer_frame - drag_info.pointer_frame_offset ; snap_to(pending_region_position) ; @@ -625,9 +572,9 @@ Editor::imageframe_drag_motion_callback(GnomeCanvasItem*, GdkEvent* event) } void -Editor::timeaxis_item_drag_finished_callback(GnomeCanvasItem*, GdkEvent* event) +Editor::timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent* event) { - jack_nframes_t where ; + nframes_t where ; TimeAxisViewItem* tavi = reinterpret_cast(drag_info.data) ; bool item_x_movement = (drag_info.last_frame_position != tavi->get_position()) ; @@ -663,10 +610,10 @@ Editor::timeaxis_item_drag_finished_callback(GnomeCanvasItem*, GdkEvent* event) void -Editor::imageframe_start_handle_op(GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) { // get the selected item from the parent time axis - ImageFrameTimeAxis* ifta = dynamic_cast(clicked_trackview) ; + ImageFrameTimeAxis* ifta = dynamic_cast(clicked_axisview) ; if(ifta) { ImageFrameView* ifv = ifta->get_view()->get_selected_imageframe_view() ; @@ -684,8 +631,6 @@ Editor::imageframe_start_handle_op(GnomeCanvasItem* item, GdkEvent* event) drag_info.motion_callback = &Editor::imageframe_start_handle_trim_motion ; drag_info.finished_callback = &Editor::imageframe_start_handle_end_trim ; - flush_track_canvas() ; - start_grab(event) ; show_verbose_time_cursor(ifv->get_position(), 10) ; @@ -693,10 +638,10 @@ Editor::imageframe_start_handle_op(GnomeCanvasItem* item, GdkEvent* event) } void -Editor::imageframe_end_handle_op(GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) { // get the selected item from the parent time axis - ImageFrameTimeAxis* ifta = dynamic_cast(clicked_trackview) ; + ImageFrameTimeAxis* ifta = dynamic_cast(clicked_axisview) ; if(ifta) { @@ -716,8 +661,6 @@ Editor::imageframe_end_handle_op(GnomeCanvasItem* item, GdkEvent* event) drag_info.motion_callback = &Editor::imageframe_end_handle_trim_motion ; drag_info.finished_callback = &Editor::imageframe_end_handle_end_trim ; - flush_track_canvas() ; - start_grab(event, trimmer_cursor) ; show_verbose_time_cursor(ifv->get_position() + ifv->get_duration(), 10) ; @@ -725,13 +668,13 @@ Editor::imageframe_end_handle_op(GnomeCanvasItem* item, GdkEvent* event) } void -Editor::imageframe_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) { ImageFrameView* ifv = reinterpret_cast (drag_info.data) ; - jack_nframes_t start = 0 ; - jack_nframes_t end = 0 ; - jack_nframes_t pointer_frame = event_frame(event) ; + nframes_t start = 0 ; + nframes_t end = 0 ; + nframes_t pointer_frame = event_frame(event) ; // chekc th eposition of the item is not locked if(!ifv->get_position_locked()) { @@ -748,7 +691,7 @@ Editor::imageframe_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* eve } // are we getting bigger or smaller? - jack_nframes_t new_dur_val = end - start ; + nframes_t new_dur_val = end - start ; // start handle, so a smaller pointer frame increases our component size if(pointer_frame <= drag_info.grab_frame) @@ -796,7 +739,7 @@ Editor::imageframe_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* eve } void -Editor::imageframe_start_handle_end_trim(GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) { ImageFrameView* ifv = reinterpret_cast (drag_info.data) ; @@ -806,24 +749,22 @@ Editor::imageframe_start_handle_end_trim(GnomeCanvasItem* item, GdkEvent* event) } else { - jack_nframes_t temp = ifv->get_position() + ifv->get_duration() ; + nframes_t temp = ifv->get_position() + ifv->get_duration() ; - ifv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ; - ifv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ; + ifv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ; + ifv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ; } - - flush_track_canvas() ; } void -Editor::imageframe_end_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) { ImageFrameView* ifv = reinterpret_cast (drag_info.data) ; - jack_nframes_t start = 0 ; - jack_nframes_t end = 0 ; - jack_nframes_t pointer_frame = event_frame(event) ; - jack_nframes_t new_dur_val = 0 ; + nframes_t start = 0 ; + nframes_t end = 0 ; + nframes_t pointer_frame = event_frame(event) ; + nframes_t new_dur_val = 0 ; snap_to(pointer_frame) ; @@ -875,7 +816,7 @@ Editor::imageframe_end_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event void -Editor::imageframe_end_handle_end_trim (GnomeCanvasItem* item, GdkEvent* event) +Editor::imageframe_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event) { ImageFrameView* ifv = reinterpret_cast (drag_info.data) ; @@ -885,21 +826,19 @@ Editor::imageframe_end_handle_end_trim (GnomeCanvasItem* item, GdkEvent* event) } else { - jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ; + nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ; if((new_duration <= ifv->get_max_duration()) && (new_duration >= ifv->get_min_duration())) { ifv->set_duration(new_duration, this) ; } } - - flush_track_canvas (); } void -Editor::markerview_item_start_handle_op(GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_item_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) { - MarkerView* mv = reinterpret_cast(clicked_trackview)->get_view()->get_selected_time_axis_item() ; + MarkerView* mv = reinterpret_cast(clicked_axisview)->get_view()->get_selected_time_axis_item() ; if (mv == 0) { @@ -916,15 +855,13 @@ Editor::markerview_item_start_handle_op(GnomeCanvasItem* item, GdkEvent* event) drag_info.motion_callback = &Editor::markerview_start_handle_trim_motion ; drag_info.finished_callback = &Editor::markerview_start_handle_end_trim ; - flush_track_canvas() ; - start_grab(event, trimmer_cursor) ; } void -Editor::markerview_item_end_handle_op(GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_item_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) { - MarkerView* mv = reinterpret_cast(clicked_trackview)->get_view()->get_selected_time_axis_item() ; + MarkerView* mv = reinterpret_cast(clicked_axisview)->get_view()->get_selected_time_axis_item() ; if (mv == 0) { fatal << _("programming error: no MarkerView selected") << endmsg ; @@ -940,20 +877,18 @@ Editor::markerview_item_end_handle_op(GnomeCanvasItem* item, GdkEvent* event) drag_info.motion_callback = &Editor::markerview_end_handle_trim_motion ; drag_info.finished_callback = &Editor::markerview_end_handle_end_trim ; - flush_track_canvas () ; - start_grab(event, trimmer_cursor) ; } void -Editor::markerview_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) { MarkerView* mv = reinterpret_cast (drag_info.data) ; - jack_nframes_t start = 0 ; - jack_nframes_t end = 0 ; - jack_nframes_t pointer_frame = event_frame(event) ; + nframes_t start = 0 ; + nframes_t end = 0 ; + nframes_t pointer_frame = event_frame(event) ; // chekc th eposition of the item is not locked if(!mv->get_position_locked()) @@ -974,7 +909,7 @@ Editor::markerview_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* eve } // are we getting bigger or smaller? - jack_nframes_t new_dur_val = end - start ; + nframes_t new_dur_val = end - start ; if(pointer_frame <= drag_info.grab_frame) { @@ -1021,7 +956,7 @@ Editor::markerview_start_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* eve } void -Editor::markerview_start_handle_end_trim(GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) { MarkerView* mv = reinterpret_cast (drag_info.data) ; @@ -1031,24 +966,22 @@ Editor::markerview_start_handle_end_trim(GnomeCanvasItem* item, GdkEvent* event) } else { - jack_nframes_t temp = mv->get_position() + mv->get_duration() ; + nframes_t temp = mv->get_position() + mv->get_duration() ; - mv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ; - mv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ; + mv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ; + mv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ; } - - flush_track_canvas() ; } void -Editor::markerview_end_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) { MarkerView* mv = reinterpret_cast (drag_info.data) ; - jack_nframes_t start = 0 ; - jack_nframes_t end = 0 ; - jack_nframes_t pointer_frame = event_frame(event) ; - jack_nframes_t new_dur_val = 0 ; + nframes_t start = 0 ; + nframes_t end = 0 ; + nframes_t pointer_frame = event_frame(event) ; + nframes_t new_dur_val = 0 ; snap_to(pointer_frame) ; @@ -1073,7 +1006,7 @@ Editor::markerview_end_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event { // we cant extend beyond the item we are marking ImageFrameView* marked_item = mv->get_marked_item() ; - jack_nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ; + nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ; if(mv->get_max_duration_active() && (new_dur_val > mv->get_max_duration())) { @@ -1117,7 +1050,7 @@ Editor::markerview_end_handle_trim_motion(GnomeCanvasItem* item, GdkEvent* event void -Editor::markerview_end_handle_end_trim (GnomeCanvasItem* item, GdkEvent* event) +Editor::markerview_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event) { MarkerView* mv = reinterpret_cast (drag_info.data) ; @@ -1127,11 +1060,9 @@ Editor::markerview_end_handle_end_trim (GnomeCanvasItem* item, GdkEvent* event) } else { - jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ; + nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ; mv->set_duration(new_duration, this) ; } - - flush_track_canvas() ; } @@ -1146,32 +1077,36 @@ Editor::markerview_end_handle_end_trim (GnomeCanvasItem* item, GdkEvent* event) /* */ void -Editor::handle_new_imageframe_time_axis_view(std::string track_name, void* src) +Editor::handle_new_imageframe_time_axis_view(const string & track_name, void* src) { ImageFrameTimeAxis* iftav ; iftav = new ImageFrameTimeAxis(track_name, *this, *session, track_canvas) ; iftav->set_time_axis_name(track_name, this) ; track_views.push_back(iftav) ; - const gchar *rowdata[1] ; - rowdata[0] = iftav->name().c_str() ; - route_list.rows().push_back(rowdata) ; - route_list.rows().back().set_data(iftav) ; - route_list.rows().back().select() ; + + TreeModel::Row row = *(route_display_model->append()); + + row[route_display_columns.text] = iftav->name(); + row[route_display_columns.tv] = iftav; + route_list_display.get_selection()->select (row); + iftav->GoingAway.connect(bind(mem_fun(*this, &Editor::remove_route), (TimeAxisView*)iftav)) ; iftav->gui_changed.connect(mem_fun(*this, &Editor::handle_gui_changes)) ; } void -Editor::handle_new_imageframe_marker_time_axis_view(std::string track_name, TimeAxisView* marked_track) +Editor::handle_new_imageframe_marker_time_axis_view(const string & track_name, TimeAxisView* marked_track) { MarkerTimeAxis* mta = new MarkerTimeAxis (*this, *this->current_session(), track_canvas, track_name, marked_track) ; ((ImageFrameTimeAxis*)marked_track)->add_marker_time_axis(mta, this) ; track_views.push_back(mta) ; - const gchar *rowdata[1] ; - rowdata[0] = mta->name().c_str() ; - route_list.rows().push_back(rowdata) ; - route_list.rows().back().set_data (mta) ; - route_list.rows().back().select() ; + + TreeModel::Row row = *(route_display_model->append()); + + row[route_display_columns.text] = mta->name(); + row[route_display_columns.tv] = mta; + route_list_display.get_selection()->select (row); + mta->GoingAway.connect(bind(mem_fun(*this, &Editor::remove_route), (TimeAxisView*)mta)) ; }