use image cursors for left/right trim cursors
[ardour.git] / gtk2_ardour / marker_view.cc
index 7ee74cc4d1a61ffe844b05b6b37cadad78739042..23397d6776e96597264e0ee0d28c21091775c8e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2003 Paul Davis 
+    Copyright (C) 2003 Paul Davis
 
     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
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #include <gtkmm.h>
 #include "marker_view.h"
 
 using namespace ARDOUR ;
-using namespace sigc;
 
-sigc::signal<void,MarkerView*> MarkerView::GoingAway;
+PBD::Signal1<void,MarkerView*> MarkerView::CatchDeletion
 
 //---------------------------------------------------------------------------------------//
 // Constructor / Desctructor
 
 /**
  * Constructs a new MarkerView
- * 
+ *
  * @param parent the parent canvas item
  * @param tv the parent TimeAxisView of this item
  * @param tavi the TimeAxisViewItem that this item is to be assciated (marking) with
- * @param spu the current samples per unit 
+ * @param spu the current samples per unit
  * @param base_color
  * @param mark_type the marker type/name text, eg fade out, pan up etc.
  * @param mark_id unique name/id of this item
  * @param start the start time of this item
  * @param duration the duration of this item
  */
-MarkerView::MarkerView(GnomeCanvasGroup *parent,
-       TimeAxisView* tv,
-       ImageFrameView* marked,
-       double spu,
-       Gdk::Color& basic_color,
-       std::string mark_type,
-       std::string mark_id,
-       jack_nframes_t start,
-       jack_nframes_t duration)
-  : TimeAxisViewItem(mark_id, parent,*tv,spu,basic_color,start,duration)
+MarkerView::MarkerView(ArdourCanvas::Group *parent,
+                      TimeAxisView* tv,
+                      ImageFrameView* marked,
+                      double spu,
+                      Gdk::Color& basic_color,
+                      std::string mark_type,
+                      std::string mark_id,
+                      nframes_t start,
+                      nframes_t duration)
+  : TimeAxisViewItem(mark_id, *parent,*tv,spu,basic_color,start,duration)
 {
        mark_type_text = mark_type ;
        marked_item = marked ;
@@ -64,21 +62,14 @@ MarkerView::MarkerView(GnomeCanvasGroup *parent,
        // set the canvas item text to the marker type, not the id
        set_name_text(mark_type_text) ;
 
-       // hoo up our canvas events
-       gtk_signal_connect (GTK_OBJECT(frame_handle_start), "event",
-               (GtkSignalFunc) PublicEditor::canvas_markerview_start_handle_event,
-               this);
-       
-       gtk_signal_connect (GTK_OBJECT(frame_handle_end), "event",
-               (GtkSignalFunc) PublicEditor::canvas_markerview_end_handle_event,
-               this);
-               
-       gtk_signal_connect (GTK_OBJECT(group), "event",
-               (GtkSignalFunc) PublicEditor::canvas_markerview_item_view_event,        this);
-       
-    /* handle any specific details required by the initial start end duration values */
-    set_position(start, this) ;
-    set_duration(duration, this) ;
+       // hook up our canvas events
+
+       frame_handle_start->signal_event().connect (sigc::bind (sigc::mem_fun (PublicEditor::instance(), &PublicEditor::canvas_markerview_start_handle_event), frame_handle_start, this));
+       frame_handle_end->signal_event().connect (sigc::bind (sigc::mem_fun (PublicEditor::instance(), &PublicEditor::canvas_markerview_end_handle_event), frame_handle_end, this));
+       group->signal_event().connect (sigc::bind (sigc::mem_fun (PublicEditor::instance(), &PublicEditor::canvas_markerview_item_view_event), group, this));
+
+       set_position(start, this) ;
+       set_duration(duration, this) ;
 }
 
 /**
@@ -94,12 +85,12 @@ MarkerView::~MarkerView()
        }
 }
 
-       
+
 //---------------------------------------------------------------------------------------//
 // Marker Type Methods
 
 /**
- * Sets the marker Type text of this this MarkerItem, eg fade_out, pan up etc. 
+ * Sets the marker Type text of this this MarkerItem, eg fade_out, pan up etc.
  *
  * @param type_text the marker type text of this item
  */
@@ -109,9 +100,9 @@ MarkerView::set_mark_type_text(std::string type_text)
        mark_type_text = type_text ;
         MarkTypeChanged(mark_type_text, this) ; /* EMIT_SIGNAL */
 }
-               
+
 /**
- * Returns the marker Type of this this MarkerItem, eg fade_out, pan up etc. 
+ * Returns the marker Type of this this MarkerItem, eg fade_out, pan up etc.
  *
  * @return the marker type text of this item
  */
@@ -130,7 +121,7 @@ MarkerView::set_marked_item(ImageFrameView* item)
 {
        ImageFrameView* temp = marked_item ;
        marked_item = item ;
-       
+
         MarkedItemChanged(marked_item, this) ; /* EMIT_SIGNAL */
        return(temp) ;
 }