use ArdourCanvas::TimeRectangle for regions, notes, markers
[ardour.git] / gtk2_ardour / audio_streamview.cc
index 7b84219b750883553a5cc375bb6e329b91b79006..68757c256b1b1cc3169d0ccba5a7743c674b9ad5 100644 (file)
@@ -46,7 +46,6 @@
 #include "ardour_ui.h"
 #include "rgb_macros.h"
 #include "gui_thread.h"
-#include "utils.h"
 
 #include "i18n.h"
 
@@ -110,15 +109,15 @@ AudioStreamView::create_region_view (boost::shared_ptr<Region> r, bool wait_for_
                break;
        case Destructive:
                region_view = new TapeAudioRegionView (_canvas_group, _trackview, region,
-                               _samples_per_pixel, region_color);
+                                                      _samples_per_pixel, region_color);
                break;
        default:
-               fatal << string_compose (_("programming error: %1"), "illegal track mode in ::add_region_view_internal") << endmsg;
+               fatal << string_compose (_("programming error: %1"), "illegal track mode in ::create_region_view()") << endmsg;
                /*NOTREACHED*/
 
        }
 
-       region_view->init (region_color, wait_for_waves);
+       region_view->init (wait_for_waves);
        region_view->set_amplitude_above_axis(_amplitude_above_axis);
        region_view->set_height (child_height ());
 
@@ -142,27 +141,6 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
                return 0;
        }
 
-//     if(!recording){
-//             for (list<RegionView *>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
-//                     if ((*i)->region() == r) {
-//                             cerr << "audio_streamview in add_region_view_internal region found" << endl;
-                               /* great. we already have a AudioRegionView for this Region. use it again. */
-
-//                             (*i)->set_valid (true);
-
-                               // this might not be necessary
-//                             AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
-
-//                             if (arv) {
-//                                     arv->set_waveform_scale (_waveform_scale);
-//                                     arv->set_waveform_shape (_waveform_shape);
-//                             }
-
-//                             return NULL;
-//                     }
-//             }
-//     }
-
        region_views.push_front (region_view);
 
         if (_trackview.editor().internal_editing()) {
@@ -271,12 +249,12 @@ AudioStreamView::setup_rec_box ()
                        case Normal:
                        case NonLayered:
                                xend = xstart;
-                               fill_color = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
+                               fill_color = ARDOUR_UI::config()->get_RecordingRect();
                                break;
 
                        case Destructive:
                                xend = xstart + 2;
-                               fill_color = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
+                               fill_color = ARDOUR_UI::config()->get_RecordingRect();
                                /* make the recording rect translucent to allow
                                   the user to see the peak data coming in, etc.
                                */
@@ -284,19 +262,23 @@ 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 (1);
+                       rec_rect->set_y0 (0);
                        rec_rect->set_x1 (xend);
                        rec_rect->set_y1 (child_height ());
-                       rec_rect->set_outline_what (0);
-                       rec_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame());
+                       rec_rect->set_outline_what (ArdourCanvas::Rectangle::What (0));
+                       rec_rect->set_outline_color (ARDOUR_UI::config()->get_TimeAxisFrame());
                        rec_rect->set_fill_color (fill_color);
-                       rec_rect->lower_to_bottom();
 
                        RecBoxInfo recbox;
                        recbox.rectangle = rec_rect;
-                       recbox.start = _trackview.session()->transport_frame();
+                       
+                       if (rec_rects.empty()) {
+                               recbox.start = _trackview.session()->record_location ();
+                       } else {
+                               recbox.start = _trackview.session()->transport_frame ();
+                       }
                        recbox.length = 0;
 
                        rec_rects.push_back (recbox);
@@ -529,15 +511,15 @@ AudioStreamView::color_handler ()
 {
        //case cAudioTrackBase:
        if (_trackview.is_track()) {
-               canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioTrackBase());
+               canvas_rect->set_fill_color (ARDOUR_UI::config()->get_AudioTrackBase());
        }
 
        //case cAudioBusBase:
        if (!_trackview.is_track()) {
                if (Profile->get_sae() && _trackview.route()->is_master()) {
-                       canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioMasterBusBase());
+                       canvas_rect->set_fill_color (ARDOUR_UI::config()->get_AudioMasterBusBase());
                } else {
-                       canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioBusBase());
+                       canvas_rect->set_fill_color (ARDOUR_UI::config()->get_AudioBusBase());
                }
        }
 }