From b7ec5b4b4014afc44d24876899d3741dfa45345e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 8 Feb 2011 20:01:55 +0000 Subject: [PATCH] Option to colour region background using the track colour (#3759). git-svn-id: svn://localhost/ardour2/branches/3.0@8778 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/rc_option_editor.cc | 8 ++++++ gtk2_ardour/time_axis_view_item.cc | 33 ++++++++++++++-------- gtk2_ardour/time_axis_view_item.h | 4 +++ libs/ardour/ardour/rc_configuration_vars.h | 1 + 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index a19e8e96d2..767e235536 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -1049,6 +1049,14 @@ RCOptionEditor::RCOptionEditor () sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_zoom_tools) )); + add_option (_("Editor"), + new BoolOption ( + "color-regions-using-track-color", + _("Color regions using their track's color"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_color_regions_using_track_color), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_color_regions_using_track_color) + )); + /* AUDIO */ add_option (_("Audio"), new OptionEditorHeading (_("Buffering"))); diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc index 8220536508..fc0b4b24a1 100644 --- a/gtk2_ardour/time_axis_view_item.cc +++ b/gtk2_ardour/time_axis_view_item.cc @@ -23,7 +23,8 @@ #include "ardour/types.h" #include "ardour/ardour.h" -#include +#include "gtkmm2ext/utils.h" +#include "gtkmm2ext/gui_thread.h" #include "ardour_ui.h" /* @@ -224,6 +225,8 @@ TimeAxisViewItem::init ( set_duration (item_duration, this); set_position (start, this); + + Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&TimeAxisViewItem::parameter_changed, this, _1), gui_context ()); } TimeAxisViewItem::~TimeAxisViewItem() @@ -692,19 +695,20 @@ TimeAxisViewItem::set_frame_color() } else { if (_recregion) { frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get(); - } else if (high_enough_for_name) { - if (fill_opacity) { - frame->property_fill_color_rgba() = UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->canvasvar_FrameBase.get(), fill_opacity); - } else { - frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameBase.get(); - } } else { - if (fill_opacity) { - frame->property_fill_color_rgba() = UINT_RGBA_CHANGE_A (fill_color, fill_opacity); + uint32_t f = 0; + if (high_enough_for_name && !Config->get_color_regions_using_track_color()) { + f = ARDOUR_UI::config()->canvasvar_FrameBase.get(); } else { - frame->property_fill_color_rgba() = fill_color; + f = fill_color; } - } + + if (fill_opacity) { + f = UINT_RGBA_CHANGE_A (f, fill_opacity); + } + + frame->property_fill_color_rgba() = f; + } } } @@ -900,3 +904,10 @@ TimeAxisViewItem::update_name_pixbuf_visibility () } } +void +TimeAxisViewItem::parameter_changed (string p) +{ + if (p == "color-regions-using-track-color") { + set_frame_color (); + } +} diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h index 26f8c07f7a..dc5c8b7f8d 100644 --- a/gtk2_ardour/time_axis_view_item.h +++ b/gtk2_ardour/time_axis_view_item.h @@ -235,6 +235,10 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList Visibility visibility; bool _recregion; bool _automation; ///< true if this is an automation region view + +private: + + void parameter_changed (std::string); }; /* class TimeAxisViewItem */ diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h index 031f8f9ce3..92647947a2 100644 --- a/libs/ardour/ardour/rc_configuration_vars.h +++ b/libs/ardour/ardour/rc_configuration_vars.h @@ -160,6 +160,7 @@ CONFIG_VARIABLE (WaveformScale, waveform_scale, "waveform-scale", Linear) CONFIG_VARIABLE (WaveformShape, waveform_shape, "waveform-shape", Traditional) CONFIG_VARIABLE (bool, allow_special_bus_removal, "allow-special-bus-removal", false) CONFIG_VARIABLE (int32_t, processor_usage, "processor-usage", -1) +CONFIG_VARIABLE (bool, color_regions_using_track_color, "color-regions-using-track-color", false) /* denormal management */