From: Paul Davis Date: Tue, 4 Nov 2014 02:48:02 +0000 (-0500) Subject: use ArdourCanvas::TimeRectangle for regions, notes, markers X-Git-Tag: 4.0-rc1~1467 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=f1e6b28ab7759f9bc93eb965cbe7740f1bafb2d3;p=ardour.git use ArdourCanvas::TimeRectangle for regions, notes, markers --- diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index 2fda9edb07..68757c256b 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -262,7 +262,7 @@ AudioStreamView::setup_rec_box () break; } - ArdourCanvas::Rectangle * rec_rect = new ArdourCanvas::Rectangle (_canvas_group); + ArdourCanvas::Rectangle * rec_rect = new ArdourCanvas::TimeRectangle (_canvas_group); rec_rect->set_x0 (xstart); rec_rect->set_y0 (0); rec_rect->set_x1 (xend); diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc index f8255a30c9..c2bc30600f 100644 --- a/gtk2_ardour/ghostregion.cc +++ b/gtk2_ardour/ghostregion.cc @@ -46,7 +46,7 @@ GhostRegion::GhostRegion (ArdourCanvas::Container* parent, TimeAxisView& tv, Tim CANVAS_DEBUG_NAME (group, "ghost region"); group->set_position (ArdourCanvas::Duple (initial_pos, 0)); - base_rect = new ArdourCanvas::Rectangle (group); + base_rect = new ArdourCanvas::TimeRectangle (group); CANVAS_DEBUG_NAME (base_rect, "ghost region rect"); base_rect->set_x0 (0); base_rect->set_y0 (0.0); diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc index 6570825780..0ece9b39ac 100644 --- a/gtk2_ardour/marker.cc +++ b/gtk2_ardour/marker.cc @@ -248,7 +248,7 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Container& parent, guint32 rgba, group->name = string_compose ("Marker::group for %1", annotation); #endif - _name_background = new ArdourCanvas::Rectangle (group); + _name_background = new ArdourCanvas::TimeRectangle (group); #ifdef CANVAS_DEBUG _name_background->name = string_compose ("Marker::_name_background for %1", annotation); #endif diff --git a/gtk2_ardour/note.cc b/gtk2_ardour/note.cc index dc8decf837..ddfb11fe8e 100644 --- a/gtk2_ardour/note.cc +++ b/gtk2_ardour/note.cc @@ -33,7 +33,7 @@ using namespace ArdourCanvas; Note::Note ( MidiRegionView& region, Item* parent, const boost::shared_ptr note, bool with_events) : NoteBase (region, with_events, note) - , _rectangle (new ArdourCanvas::Rectangle (parent)) + , _rectangle (new ArdourCanvas::TimeRectangle (parent)) { CANVAS_DEBUG_NAME (_rectangle, "note"); set_item (_rectangle); diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc index 5acafad0c3..c56149797f 100644 --- a/gtk2_ardour/region_view.cc +++ b/gtk2_ardour/region_view.cc @@ -243,7 +243,7 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) { - ArdourCanvas::Rectangle* cr = new ArdourCanvas::Rectangle (group); + ArdourCanvas::Rectangle* cr = new ArdourCanvas::TimeRectangle (group); cr->set_ignore_events (true); _silent_frames.push_back (cr); @@ -808,7 +808,7 @@ RegionView::update_coverage_frames (LayerDisplay d) /* start off any new rect, if required */ if (cr == 0 || me != new_me) { - cr = new ArdourCanvas::Rectangle (group); + cr = new ArdourCanvas::TimeRectangle (group); _coverage_frames.push_back (cr); cr->set_x0 (trackview.editor().sample_to_pixel (t - position)); cr->set_y0 (1); diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 26939e9c32..86e0d8c2e4 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -1018,7 +1018,7 @@ TimeAxisView::get_selection_rect (uint32_t id) rect = new SelectionRect; - rect->rect = new ArdourCanvas::Rectangle (selection_group); + rect->rect = new ArdourCanvas::TimeRectangle (selection_group); CANVAS_DEBUG_NAME (rect->rect, "selection rect"); rect->rect->set_outline (false); rect->rect->set_fill_color (ARDOUR_UI::config()->get_SelectionRect()); diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc index dbcdca4a75..2ce9d25cbe 100644 --- a/gtk2_ardour/time_axis_view_item.cc +++ b/gtk2_ardour/time_axis_view_item.cc @@ -188,14 +188,14 @@ TimeAxisViewItem::init (ArdourCanvas::Item* parent, double fpp, uint32_t base_co warning << "Time Axis Item Duration == 0" << endl; } - vestigial_frame = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, 1.0, 2.0, trackview.current_height())); + vestigial_frame = new ArdourCanvas::TimeRectangle (group, ArdourCanvas::Rect (0.0, 1.0, 2.0, trackview.current_height())); CANVAS_DEBUG_NAME (vestigial_frame, string_compose ("vestigial frame for %1", get_item_name())); vestigial_frame->hide (); vestigial_frame->set_outline_color (ARDOUR_UI::config()->get_VestigialFrame()); vestigial_frame->set_fill_color (ARDOUR_UI::config()->get_VestigialFrame()); if (visibility & ShowFrame) { - frame = new ArdourCanvas::Rectangle (group, + frame = new ArdourCanvas::TimeRectangle (group, ArdourCanvas::Rect (0.0, 0.0, trackview.editor().sample_to_pixel(duration) + RIGHT_EDGE_SHIFT, trackview.current_height() - 1.0)); diff --git a/libs/canvas/rectangle.cc b/libs/canvas/rectangle.cc index c6381776e4..232da17893 100644 --- a/libs/canvas/rectangle.cc +++ b/libs/canvas/rectangle.cc @@ -255,17 +255,18 @@ void TimeRectangle::compute_bounding_box () const { Rectangle::compute_bounding_box (); - assert (_bounding_box); - Rect r = _bounding_box.get (); - - /* This is a TimeRectangle, so its right edge is drawn 1 pixel beyond - * (larger x-axis coordinates) than a normal Rectangle. - */ - - r.x1 += 1.0; /* this should be using safe_add() */ - - _bounding_box = r; + if (_bounding_box) { + Rect r = _bounding_box.get (); + + /* This is a TimeRectangle, so its right edge is drawn 1 pixel beyond + * (larger x-axis coordinates) than a normal Rectangle. + */ + + r.x1 += 1.0; /* this should be using safe_add() */ + + _bounding_box = r; + } } void diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc index d67cf2c58f..aa857a8467 100644 --- a/libs/canvas/wave_view.cc +++ b/libs/canvas/wave_view.cc @@ -795,7 +795,7 @@ WaveView::render (Rect const & area, Cairo::RefPtr context) cons return; } - Rect self = item_to_window (Rect (0.5, 0.0, _region->length() / _samples_per_pixel, _height)); + Rect self = item_to_window (Rect (0.0, 0.0, _region->length() / _samples_per_pixel, _height)); boost::optional d = self.intersection (area); if (!d) {