Move control surface options into RC prefs editor. Remove Options menu.
[ardour.git] / gtk2_ardour / marker.cc
index 6e37908d1b3b1e01efee1c4b5eb2b070a740d785..9bc475214ac24f2709942ef92a6f2f6e5135575f 100644 (file)
 */
 
 #include <sigc++/bind.h>
-#include <ardour/tempo.h>
+#include "ardour/tempo.h"
 
 #include "marker.h"
 #include "public_editor.h"
 #include "utils.h"
 #include "canvas_impl.h"
 #include "ardour_ui.h"
+#include "simpleline.h"
 
 #include "i18n.h"
 
+using namespace std;
 using namespace ARDOUR;
 
 Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, guint32 rgba, const string& annotation, 
@@ -244,10 +246,10 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, guint32 rgba, con
        mark->property_outline_color_rgba() = rgba;
        mark->property_width_pixels() = 1;
        Pango::FontDescription* font = get_font_for_style (N_("MarkerText"));
-       
+       //cerr << " font->get_size() = " << font->get_size() << " is_absolute = " << pango_font_description_get_size_is_absolute(font->gobj()) << " to_string = " << font->to_string() << endl;
        text = new Text (*group);
-       text->property_text() = annotation.c_str();
        text->property_font_desc() = *font;
+       text->property_text() = annotation.c_str();
 
        delete font;
        
@@ -269,7 +271,6 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, guint32 rgba, con
        }
 
        line = 0;
-       line_points = 0;
 
 }
 
@@ -283,10 +284,8 @@ Marker::~Marker ()
        delete mark;
        delete points;
 
-       if (line) {
-               delete line;
-               delete line_points;
-       }
+       delete line;
+       line = 0;
 }
 
 void Marker::reparent(ArdourCanvas::Group & parent)
@@ -295,35 +294,28 @@ void Marker::reparent(ArdourCanvas::Group & parent)
        _parent = &parent;
 }
 
+
 void
-Marker::set_line_length (double len)
+Marker::set_line_vpos (double pos, double height)
 {
        if (line) {
-               line_points->back().set_y (len);
-               line->property_points() = *line_points;
+               line->property_y1() = pos;
+               line->property_y2() = pos + height;
        }
 }
 
 void
-Marker::add_line (ArdourCanvas::Group* group, double initial_height)
+Marker::add_line (ArdourCanvas::Group* group, double y_origin, double initial_height)
 {
        if (!line) {
 
-               line_points = new ArdourCanvas::Points ();
-               line_points->push_back (Gnome::Art::Point (unit_position + shift, 0.0));
-               line_points->push_back (Gnome::Art::Point (unit_position + shift, initial_height));                     
-               
-               line = new ArdourCanvas::Line (*group);
-               line->property_width_pixels() = 1;
-               line->property_points() = *line_points;
-               line->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_EditPoint.get();
-#if 0
-               line->property_first_arrowhead() = TRUE;
-               line->property_last_arrowhead() = TRUE;
-               line->property_arrow_shape_a() = 11.0;
-               line->property_arrow_shape_b() = 0.0;
-               line->property_arrow_shape_c() = 9.0;
-#endif
+               line = new ArdourCanvas::SimpleLine (*group);
+               line->property_color_rgba() = ARDOUR_UI::config()->canvasvar_EditPoint.get();
+               line->property_x1() = unit_position + shift;
+               line->property_y1() = y_origin;
+               line->property_x2() = unit_position + shift;
+               line->property_y2() = y_origin + initial_height;
+
                line->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_marker_event), mark, this));
        }
 
@@ -372,9 +364,8 @@ Marker::set_position (nframes_t frame)
        unit_position = new_unit_position;
 
        if (line) {
-               (*line_points)[0].set_x (unit_position + shift);
-               (*line_points)[1].set_x (unit_position + shift);
-               line->property_points() = *line_points;
+               line->property_x1() = unit_position + shift;
+               line->property_x2() = unit_position + shift;
        }
 }