deframe audio regions as well as MIDI when entering internal edit mode
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 3 Mar 2011 18:32:06 +0000 (18:32 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 3 Mar 2011 18:32:06 +0000 (18:32 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@9057 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_region_view.cc
gtk2_ardour/audio_time_axis.cc
gtk2_ardour/audio_time_axis.h
gtk2_ardour/midi_region_view.cc
gtk2_ardour/midi_streamview.cc
gtk2_ardour/midi_streamview.h
gtk2_ardour/streamview.cc
gtk2_ardour/streamview.h
gtk2_ardour/time_axis_view_item.cc

index d88b6b5266583ad66441ef6295d97f3f0a3ccbd6..0dea60b2782c39cdb8e6ba86bf98a4fd6154993b 100644 (file)
@@ -1335,37 +1335,39 @@ AudioRegionView::set_frame_color ()
        }
 
        TimeAxisViewItem::set_frame_color ();
+        
+        uint32_t wc;
+        uint32_t fc;
 
        if (_selected) {
-               for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
-                       if (_region->muted()) {
-                               (*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_SelectedWaveForm.get(), MUTED_ALPHA);
-                       } else {
-                               (*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_SelectedWaveForm.get();
-                               (*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_SelectedWaveFormFill.get();
-                       }
-               }
+                wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_SelectedWaveForm.get(), MUTED_ALPHA);
+                fc = ARDOUR_UI::config()->canvasvar_SelectedWaveFormFill.get();
        } else {
                if (_recregion) {
-                       for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
-                               if (_region->muted()) {
-                                       (*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA);
-                               } else {
-                                       (*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_RecWaveForm.get();
-                                       (*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get();
-                               }
-                       }
+                        if (_region->muted()) {
+                                wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA);
+                        } else {
+                                wc = ARDOUR_UI::config()->canvasvar_RecWaveForm.get();
+                                fc = ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get();
+                        }
                } else {
-                       for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
-                               if (_region->muted()) {
-                                       (*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA);
-                               } else {
-                                       (*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_WaveForm.get();
-                                       (*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
-                               }
-                       }
+                        if (_region->muted()) {
+                                wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA);
+                        } else {
+                                wc = ARDOUR_UI::config()->canvasvar_WaveForm.get();
+                                fc = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
+                        }
                }
        }
+
+        for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
+                if (_region->muted()) {
+                        (*w)->property_wave_color() = wc;
+                } else {
+                        (*w)->property_wave_color() = wc;
+                        (*w)->property_fill_color() = fc;
+                }
+        }
 }
 
 void
index 35033c39915734d08fa436659e5f7fdec35bccd6..5cfe3500db33d7905f389310bae8455044457fe8 100644 (file)
@@ -477,3 +477,19 @@ AudioTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr<Processor> w
                RouteTimeAxisView::add_processor_to_subplugin_menu (wp);
        }
 }
+
+void
+AudioTimeAxisView::enter_internal_edit_mode ()
+{
+        if (audio_view()) {
+                audio_view()->enter_internal_edit_mode ();
+        }
+}
+
+void
+AudioTimeAxisView::leave_internal_edit_mode ()
+{
+        if (audio_view()) {
+                audio_view()->leave_internal_edit_mode ();
+        }
+}
index 4841fcda818da0a77783a359dad375d8aad72a04..1023c1edf5fc8ff58e99112304158a086dc9de14 100644 (file)
@@ -80,6 +80,9 @@ class AudioTimeAxisView : public RouteTimeAxisView
        guint32 show_at (double y, int& nth, Gtk::VBox *parent);
        void hide ();
 
+        void enter_internal_edit_mode ();
+        void leave_internal_edit_mode ();
+
        void create_automation_child (const Evoral::Parameter& param, bool show);
 
        void first_idle ();
index 3ae527cc9a7975aa901e785eece2ab979ebdcd11..464058397ac2e32e5b86aa3803be032302011901 100644 (file)
@@ -2858,6 +2858,8 @@ MidiRegionView::set_frame_color()
 {
         uint32_t f;
 
+        TimeAxisViewItem::set_frame_color ();
+
        if (!frame) {
                return;
        }
@@ -2875,14 +2877,6 @@ MidiRegionView::set_frame_color()
         }
 
         frame->property_fill_color_rgba() = f;
-
-        f = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
-
-        if (!rect_visible) {
-                f = UINT_RGBA_CHANGE_A (f, 64);
-        }
-
-        frame->property_outline_color_rgba() = f;
 }
 
 void
index 807d6253d4f4ffbc646c8192f68dfc312ad3665e..723b52220210e0b3e28e972af24e6a5632135a94 100644 (file)
@@ -206,22 +206,6 @@ MidiStreamView::display_region(MidiRegionView* region_view, bool load_model)
        region_view->display_model(source->model());
 }
 
-void
-MidiStreamView::enter_internal_edit_mode ()
-{
-        for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
-                (*i)->hide_rect ();
-        }
-}
-
-void
-MidiStreamView::leave_internal_edit_mode ()
-{
-        for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
-                (*i)->show_rect ();
-        }
-}
-
 void
 MidiStreamView::display_track (boost::shared_ptr<Track> tr)
 {
index 8acb62b51ec1e1fa4e7289755a365a51d33de32d..0774fd61bd08385f754525eb44a9b1d4a1d83109 100644 (file)
@@ -56,9 +56,6 @@ class MidiStreamView : public StreamView
        MidiStreamView (MidiTimeAxisView&);
        ~MidiStreamView ();
 
-        void enter_internal_edit_mode ();
-        void leave_internal_edit_mode ();
-
        void set_selected_regionviews (RegionSelection&);
        void get_inverted_selectables (Selection&, std::list<Selectable* >& results);
 
index f17e66f9d3d5d22527053aa217914112d460c7a2..34e2b394af30cabaf539d7f6951029cdf7c53ef5 100644 (file)
@@ -648,3 +648,19 @@ StreamView::setup_new_rec_layer_time (boost::shared_ptr<Region> region)
                _new_rec_layer_time = max_framepos;
        }
 }
+
+void
+StreamView::enter_internal_edit_mode ()
+{
+        for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+                (*i)->hide_rect ();
+        }
+}
+
+void
+StreamView::leave_internal_edit_mode ()
+{
+        for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+                (*i)->show_rect ();
+        }
+}
index 3268519534194eb9530455bdc4f129b72880f562..24ab1182d9574789fecf1ccb823febe69be9fc52 100644 (file)
@@ -74,8 +74,8 @@ public:
        gdouble     get_samples_per_unit () { return _samples_per_unit; }
        virtual void horizontal_position_changed () {}
 
-        virtual void enter_internal_edit_mode () {}
-        virtual void leave_internal_edit_mode () {}
+        virtual void enter_internal_edit_mode ();
+        virtual void leave_internal_edit_mode ();
 
        void set_layer_display (LayerDisplay);
        LayerDisplay layer_display () const { return _layer_display; }
index 43634f43f537f015a5fdc8944e8943641091414f..aa9fc24b23540cb6991a871165832ac4b7fa8eed 100644 (file)
@@ -746,6 +746,16 @@ TimeAxisViewItem::set_frame_color()
        }
 
         frame->property_fill_color_rgba() = f;
+
+        if (!_recregion) {
+                f = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
+                
+                if (!rect_visible) {
+                        f = UINT_RGBA_CHANGE_A (f, 64);
+                }
+                
+                frame->property_outline_color_rgba() = f;
+        }
 }
 
 /**