notably modify the design and logic of the startup dialog, so that we can handle...
[ardour.git] / gtk2_ardour / marker_time_axis_view.cc
index 417ac5c8dc367ddbae741839327c9cdaf6fae08d..b1eb7066cd3cee78103fa17ddeec7d3df3dfe14b 100644 (file)
@@ -57,16 +57,17 @@ MarkerTimeAxisView::MarkerTimeAxisView(MarkerTimeAxis& tv)
        canvas_rect =  new ArdourCanvas::SimpleRect (*canvas_group);
        canvas_rect->property_x1() = 0.0;
        canvas_rect->property_y1() = 0.0;
-       canvas_rect->property_x2() = max_frames;
+       canvas_rect->property_x2() = max_framepos;
        canvas_rect->property_y2() = (double)20;
        canvas_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerTrack.get();
        canvas_rect->property_fill_color_rgba() = stream_base_color;
 
-       canvas_rect->signal_event().connect (bind (mem_fun (_trackview.editor, &PublicEditor::canvas_marker_time_axis_view_event), canvas_rect, &_trackview));
+       canvas_rect->signal_event().connect (sigc::bind (sigc::mem_fun (_trackview.editor, &PublicEditor::canvas_marker_time_axis_view_event), canvas_rect, &_trackview));
 
        _samples_per_unit = _trackview.editor.get_current_zoom() ;
 
-       _trackview.editor.ZoomChanged.connect (mem_fun(*this, &MarkerTimeAxisView::reset_samples_per_unit));
+       _trackview.editor.ZoomChanged.connect (sigc::mem_fun(*this, &MarkerTimeAxisView::reset_samples_per_unit));
+       MarkerView::CatchDeletion.connect (*this, boost::bind (&MarkerTimeAxisView::remove_marker_view, this, _1), gui_context());
 }
 
 /**
@@ -191,7 +192,7 @@ MarkerTimeAxisView::apply_color(Gdk::Color& color)
  * @param src the identity of the object that initiated the change
  */
 MarkerView*
-MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, nframes_t start, nframes_t dur, void* src)
+MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, framepos_t start, framecnt_t dur, void* src)
 {
        if(ifv->has_marker_view_item(mark_id))
        {
@@ -211,9 +212,7 @@ MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type,
        ifv->add_marker_view_item(mv, src) ;
        marker_view_list.push_front(mv) ;
 
-       mv->GoingAway.connect(bind (mem_fun(*this,&MarkerTimeAxisView::remove_marker_view), (void*)this)) ;
-
-        MarkerViewAdded(mv,src) ; /* EMIT_SIGNAL */
+       MarkerViewAdded(mv,src) ; /* EMIT_SIGNAL */
 
        return(mv) ;
 }
@@ -311,9 +310,9 @@ MarkerTimeAxisView::remove_named_marker_view(std::string item_id, void* src)
  * @param src the identity of the object that initiated the change
  */
 void
-MarkerTimeAxisView::remove_marker_view(MarkerView* mv, void* src)
+MarkerTimeAxisView::remove_marker_view (MarkerView* mv)
 {
-       ENSURE_GUI_THREAD(bind (mem_fun(*this, &MarkerTimeAxisView::remove_marker_view), mv, src));
+       ENSURE_GUI_THREAD (*this, &MarkerTimeAxisView::remove_marker_view, mv, src)
 
        MarkerViewList::iterator i;
 
@@ -326,7 +325,6 @@ MarkerTimeAxisView::remove_marker_view(MarkerView* mv, void* src)
        }
 }
 
-
 /**
  * Sets the duration of the selected MarkerView to the specified number of seconds
  *
@@ -337,7 +335,7 @@ MarkerTimeAxisView::set_marker_duration_sec(double sec)
 {
   if(get_selected_time_axis_item() != 0)
   {
-         get_selected_time_axis_item()->set_duration((nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ;
+         get_selected_time_axis_item()->set_duration((sec * _trackview.editor.session()->frame_rate()), this);
   }
 }