diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-12 03:56:43 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-12 03:56:43 +0000 |
commit | 51c333a7b3abe11dbe5c20234d92eb1ff16a30bb (patch) | |
tree | 0b4e8cf6ea570db44250151e1345714ecd790b03 /gtk2_ardour/marker.cc | |
parent | 11faee330755fea81e051d064ca2d345db9eaf42 (diff) |
more NSD madness curing; fix up canvas range rects and marker line height mgmt
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2902 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/marker.cc')
-rw-r--r-- | gtk2_ardour/marker.cc | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc index df62af90ec..7dd45499e7 100644 --- a/gtk2_ardour/marker.cc +++ b/gtk2_ardour/marker.cc @@ -25,6 +25,7 @@ #include "utils.h" #include "canvas_impl.h" #include "ardour_ui.h" +#include "simpleline.h" #include "i18n.h" @@ -267,7 +268,6 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, guint32 rgba, con } line = 0; - line_points = 0; } @@ -283,7 +283,6 @@ Marker::~Marker () if (line) { delete line; - delete line_points; } } @@ -293,12 +292,13 @@ 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; } } @@ -307,21 +307,13 @@ Marker::add_line (ArdourCanvas::Group* group, 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() = 0.0; + line->property_x2() = unit_position + shift; + line->property_y2() = initial_height; + line->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_marker_event), mark, this)); } @@ -370,9 +362,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; } } |