X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstreamview.cc;h=18953aee0913e1fe28750653371604e606326f5d;hb=ec947ff8fd2cf229284f757b8bd6b0f96cbd6383;hp=73e150549f04faf47fb7aa2949139b880eb13b24;hpb=6b3a8915f3c50f7220121fcb9202ec20144389c4;p=ardour.git diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index 73e150549f..18953aee09 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -404,6 +404,43 @@ StreamView::transport_looped() Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&StreamView::setup_rec_box, this)); } +void +StreamView::create_rec_box(framepos_t frame_pos, double width) +{ + const double xstart = _trackview.editor().sample_to_pixel(frame_pos); + const double xend = xstart + width; + const uint32_t fill_color = ARDOUR_UI::config()->color_mod("recording rect", "recording_rect"); + + ArdourCanvas::Rectangle* rec_rect = new ArdourCanvas::TimeRectangle(_canvas_group); + rec_rect->set_x0(xstart); + rec_rect->set_y0(0); + rec_rect->set_x1(xend); + rec_rect->set_y1(child_height ()); + rec_rect->set_outline_what(ArdourCanvas::Rectangle::What(0)); + rec_rect->set_outline_color(ARDOUR_UI::config()->color("recording rect")); + rec_rect->set_fill_color(fill_color); + rec_rect->lower_to_bottom(); + + RecBoxInfo recbox; + recbox.rectangle = rec_rect; + recbox.length = 0; + + if (rec_rects.empty()) { + recbox.start = _trackview.session()->record_location (); + } else { + recbox.start = _trackview.session()->transport_frame (); + } + + rec_rects.push_back (recbox); + + screen_update_connection.disconnect(); + screen_update_connection = ARDOUR_UI::instance()->SuperRapidScreenUpdate.connect( + sigc::mem_fun(*this, &StreamView::update_rec_box)); + + rec_updating = true; + rec_active = true; +} + void StreamView::update_rec_box () { @@ -675,19 +712,3 @@ StreamView::setup_new_rec_layer_time (boost::shared_ptr region) _new_rec_layer_time = max_framepos; } } - -void -StreamView::enter_internal_edit_mode () -{ - for (list::iterator i = region_views.begin(); i != region_views.end(); ++i) { - (*i)->hide_rect (); - } -} - -void -StreamView::leave_internal_edit_mode () -{ - for (list::iterator i = region_views.begin(); i != region_views.end(); ++i) { - (*i)->show_rect (); - } -}