summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-16 00:05:45 -0500
committerDavid Robillard <d@drobilla.net>2014-12-16 00:05:45 -0500
commite0cb9efb003500fea319552a772364f00753a26f (patch)
treeb49c48d16b2a0e5b9fb94cfa4c335671be3e7fd5 /gtk2_ardour
parent211f8f61d7cc11dcf867010735e335201563b1d2 (diff)
Various color tweaks.
This commit changes some color names, nuke your theme. This isn't quite ideal yet, but takes some steps towards where I think things should go aesthetically: Make automation tracks/regions colors correspond to their parent's type. Make selected MIDI notes outlined in red like most everything else, and scrap separate min/mid/max fill colors for selected MIDI notes. Color automation ghost MIDI notes based on original note color. Try to kill 90's looking brightish gray gradients in general.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/automation_region_view.cc1
-rw-r--r--gtk2_ardour/automation_streamview.cc28
-rw-r--r--gtk2_ardour/automation_time_axis.cc6
-rw-r--r--gtk2_ardour/dark.colors74
-rw-r--r--gtk2_ardour/ghostregion.cc6
-rw-r--r--gtk2_ardour/midi_region_view.cc5
-rw-r--r--gtk2_ardour/note_base.cc10
-rw-r--r--gtk2_ardour/note_base.h44
-rw-r--r--gtk2_ardour/time_axis_view_item.cc13
-rw-r--r--gtk2_ardour/time_axis_view_item.h3
-rw-r--r--gtk2_ardour/ui_config.cc6
-rw-r--r--gtk2_ardour/ui_config.h1
12 files changed, 97 insertions, 100 deletions
diff --git a/gtk2_ardour/automation_region_view.cc b/gtk2_ardour/automation_region_view.cc
index 61b0f1f39c..ac9083e6ed 100644
--- a/gtk2_ardour/automation_region_view.cc
+++ b/gtk2_ardour/automation_region_view.cc
@@ -75,6 +75,7 @@ AutomationRegionView::init (bool /*wfd*/)
set_height (trackview.current_height());
+ _fill_color_name = "midi frame base";
set_colors ();
_enable_display = true;
diff --git a/gtk2_ardour/automation_streamview.cc b/gtk2_ardour/automation_streamview.cc
index c4787f14ea..89ae7fa079 100644
--- a/gtk2_ardour/automation_streamview.cc
+++ b/gtk2_ardour/automation_streamview.cc
@@ -31,19 +31,21 @@
#include "ardour/midi_region.h"
#include "ardour/midi_source.h"
-#include "automation_streamview.h"
-#include "region_view.h"
+#include "ardour_ui.h"
#include "automation_region_view.h"
+#include "automation_streamview.h"
#include "automation_time_axis.h"
-#include "region_selection.h"
-#include "selection.h"
+#include "global_signals.h"
+#include "gui_thread.h"
#include "public_editor.h"
-#include "ardour_ui.h"
+#include "region_selection.h"
+#include "region_view.h"
#include "rgb_macros.h"
-#include "gui_thread.h"
+#include "selection.h"
using namespace std;
using namespace ARDOUR;
+using namespace ARDOUR_UI_UTILS;
using namespace PBD;
using namespace Editing;
@@ -56,7 +58,9 @@ AutomationStreamView::AutomationStreamView (AutomationTimeAxisView& tv)
CANVAS_DEBUG_NAME (_canvas_group, string_compose ("SV canvas group auto %1", tv.name()));
CANVAS_DEBUG_NAME (canvas_rect, string_compose ("SV canvas rectangle auto %1", tv.name()));
- canvas_rect->set_fill (false);
+ color_handler ();
+
+ ColorsChanged.connect(sigc::mem_fun(*this, &AutomationStreamView::color_handler));
}
AutomationStreamView::~AutomationStreamView ()
@@ -191,13 +195,11 @@ AutomationStreamView::setup_rec_box ()
void
AutomationStreamView::color_handler ()
{
- /*if (_trackview.is_midi_track()) {
- canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->get_MidiTrackBase();
+ if (_trackview.is_midi_track()) {
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->color_mod ("midi track base", "midi track base"));
+ } else {
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->color ("midi bus base"));
}
-
- if (!_trackview.is_midi_track()) {
- canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->get_MidiBusBase();;
- }*/
}
AutoState
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index d4c62a2739..3452da3847 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -110,6 +110,10 @@ AutomationTimeAxisView::AutomationTimeAxisView (
_controller = AutomationController::create (_automatable, _control->parameter(), _control->desc(), _control);
}
+ const std::string fill_color_name = (dynamic_cast<MidiTimeAxisView*>(&parent)
+ ? "midi automation track fill"
+ : "audio automation track fill");
+
automation_menu = 0;
auto_off_item = 0;
auto_touch_item = 0;
@@ -124,7 +128,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (
CANVAS_DEBUG_NAME (_base_rect, string_compose ("base rect for %1", _name));
_base_rect->set_x1 (ArdourCanvas::COORD_MAX);
_base_rect->set_outline (false);
- _base_rect->set_fill_color (ARDOUR_UI::config()->color_mod ("automation track fill", "automation track fill"));
+ _base_rect->set_fill_color (ARDOUR_UI::config()->color_mod (fill_color_name, "automation track fill"));
_base_rect->set_data ("trackview", this);
_base_rect->Event.connect (sigc::bind (sigc::mem_fun (_editor, &PublicEditor::canvas_automation_track_event), _base_rect, this));
if (!a) {
diff --git a/gtk2_ardour/dark.colors b/gtk2_ardour/dark.colors
index 5724b09fcd..507f8420ad 100644
--- a/gtk2_ardour/dark.colors
+++ b/gtk2_ardour/dark.colors
@@ -117,14 +117,14 @@
<Color name="color 98" value="0x9effffff"/>
<Color name="color 99" value="0x5da3c1ff"/>
</Colors>
- <ColorAliases>
+ <ColorAliases>
<ColorAlias name="active crossfade" alias="color 1"/>
<ColorAlias name="arrange base" alias="color 2"/>
+ <ColorAlias name="audio automation track fill" alias="color 70"/>
<ColorAlias name="audio bus base" alias="color 3"/>
<ColorAlias name="audio master bus base" alias="color 4"/>
- <ColorAlias name="audio track base" alias="color 5"/>
+ <ColorAlias name="audio track base" alias="color 70"/>
<ColorAlias name="automation line" alias="color 6"/>
- <ColorAlias name="automation track fill" alias="color 5"/>
<ColorAlias name="automation track outline" alias="color 7"/>
<ColorAlias name="big clock active: background" alias="color 4"/>
<ColorAlias name="big clock active: cursor" alias="color 8"/>
@@ -141,13 +141,11 @@
<ColorAlias name="clock: cursor" alias="color 8"/>
<ColorAlias name="clock: edited text" alias="color 8"/>
<ColorAlias name="clock: text" alias="color 12"/>
- <ColorAlias name="control point fill" alias="color 13"/>
- <ColorAlias name="control point outline" alias="color 9"/>
- <ColorAlias name="control point selected" alias="color 14"/>
<ColorAlias name="control point fill" alias="color 17"/>
<ColorAlias name="control point outline" alias="meter color3"/>
<ColorAlias name="control point selected fill" alias="color 72"/>
<ColorAlias name="control point selected outline" alias="color 9"/>
+ <ColorAlias name="covered region" alias="color 87"/>
<ColorAlias name="crossfade editor base" alias="color 15"/>
<ColorAlias name="crossfade editor line" alias="color 4"/>
<ColorAlias name="crossfade editor line shading" alias="color 16"/>
@@ -168,7 +166,7 @@
<ColorAlias name="generic button: fill" alias="color 25"/>
<ColorAlias name="generic button: fill active" alias="color 9"/>
<ColorAlias name="generic button: led active" alias="color 18"/>
- <ColorAlias name="ghost track base" alias="color 28"/>
+ <ColorAlias name="ghost track base" alias="color 46"/>
<ColorAlias name="ghost track midi outline" alias="color 4"/>
<ColorAlias name="ghost track wave" alias="color 29"/>
<ColorAlias name="ghost track wave clip" alias="color 29"/>
@@ -248,17 +246,18 @@
<ColorAlias name="meterbridge peakindicator: led" alias="color 9"/>
<ColorAlias name="meterbridge peakindicator: led active" alias="color 9"/>
<ColorAlias name="meterbridge peaklabel" alias="color 9"/>
- <ColorAlias name="meterstrip dpm fg" alias="color 31"/>
- <ColorAlias name="meterstrip ppm fg" alias="color 31"/>
- <ColorAlias name="meterstrip vu fg" alias="color 4"/>
<ColorAlias name="meterstrip dpm bg" alias="color 27"/>
+ <ColorAlias name="meterstrip dpm fg" alias="color 31"/>
<ColorAlias name="meterstrip ppm bg" alias="color 27"/>
+ <ColorAlias name="meterstrip ppm fg" alias="color 31"/>
<ColorAlias name="meterstrip vu bg" alias="color 32"/>
+ <ColorAlias name="meterstrip vu fg" alias="color 4"/>
+ <ColorAlias name="midi automation track fill" alias="color 94"/>
<ColorAlias name="midi bus base" alias="color 4"/>
<ColorAlias name="midi device: fill" alias="color 25"/>
<ColorAlias name="midi device: fill active" alias="color 42"/>
<ColorAlias name="midi device: led active" alias="color 17"/>
- <ColorAlias name="midi frame base" alias="color 51"/>
+ <ColorAlias name="midi frame base" alias="color 87"/>
<ColorAlias name="midi input button: fill active" alias="color 48"/>
<ColorAlias name="midi input button: led active" alias="color 4"/>
<ColorAlias name="midi meter color0" alias="color 52"/>
@@ -271,18 +270,19 @@
<ColorAlias name="midi meter color7" alias="color 56"/>
<ColorAlias name="midi meter color8" alias="color 56"/>
<ColorAlias name="midi meter color9" alias="color 17"/>
+ <ColorAlias name="midi note inactive channel" alias="color 4"/>
<ColorAlias name="midi note max" alias="color 52"/>
<ColorAlias name="midi note mid" alias="color 57"/>
<ColorAlias name="midi note min" alias="color 58"/>
- <ColorAlias name="midi note inactive channel" alias="color 4"/>
<ColorAlias name="midi note selected" alias="color 59"/>
+ <ColorAlias name="midi note selected outline" alias="color 9"/>
<ColorAlias name="midi note velocity text" alias="color 32"/>
<ColorAlias name="midi patch change fill" alias="color 60"/>
<ColorAlias name="midi patch change outline" alias="color 26"/>
<ColorAlias name="midi select rect outline" alias="color 63"/>
<ColorAlias name="midi sysex fill" alias="color 32"/>
<ColorAlias name="midi sysex outline" alias="color 64"/>
- <ColorAlias name="midi track base" alias="color 65"/>
+ <ColorAlias name="midi track base" alias="color 41"/>
<ColorAlias name="mixer strip button: fill active" alias="color 8"/>
<ColorAlias name="mixer strip button: led active" alias="color 8"/>
<ColorAlias name="mixer strip name button: fill active" alias="color 67"/>
@@ -336,7 +336,7 @@
<ColorAlias name="nudge clock: edited text" alias="color 8"/>
<ColorAlias name="nudge clock: text" alias="color 12"/>
<ColorAlias name="piano roll black" alias="color 76"/>
- <ColorAlias name="piano roll black outline" alias="color 10"/>
+ <ColorAlias name="piano roll black outline" alias="color 33"/>
<ColorAlias name="piano roll white" alias="color 45"/>
<ColorAlias name="play head" alias="color 9"/>
<ColorAlias name="plugin bypass button: fill" alias="color 71"/>
@@ -368,14 +368,13 @@
<ColorAlias name="range marker bar" alias="color 34"/>
<ColorAlias name="record enable button: fill active" alias="color 83"/>
<ColorAlias name="record enable button: led active" alias="color 85"/>
+ <ColorAlias name="recording rect" alias="color 86"/>
<ColorAlias name="recording waveform fill" alias="color 13"/>
<ColorAlias name="recording waveform outline" alias="color 43"/>
- <ColorAlias name="recording rect" alias="color 86"/>
+ <ColorAlias name="region base" alias="color 94"/>
<ColorAlias name="region list automatic" alias="color 53"/>
<ColorAlias name="region list missing source" alias="color 9"/>
<ColorAlias name="region list whole file" alias="color 1"/>
- <ColorAlias name="covered region" alias="color 87"/>
- <ColorAlias name="region base" alias="color 11"/>
<ColorAlias name="route button: fill active" alias="color 67"/>
<ColorAlias name="route button: led active" alias="color 8"/>
<ColorAlias name="rubber band rect" alias="color 88"/>
@@ -398,9 +397,7 @@
<ColorAlias name="secondary delta clock: cursor" alias="color 9"/>
<ColorAlias name="secondary delta clock: edited text" alias="color 9"/>
<ColorAlias name="secondary delta clock: text" alias="color 92"/>
- <ColorAlias name="selected midi note max" alias="color 62"/>
- <ColorAlias name="selected midi note mid" alias="color 93"/>
- <ColorAlias name="selected midi note min" alias="color 61"/>
+ <ColorAlias name="selected midi note frame" alias="color 86"/>
<ColorAlias name="selected region base" alias="color 25"/>
<ColorAlias name="selected time axis frame" alias="color 86"/>
<ColorAlias name="selected waveform fill" alias="color 8"/>
@@ -411,10 +408,10 @@
<ColorAlias name="selection clock: edited text" alias="color 9"/>
<ColorAlias name="selection clock: text" alias="color 12"/>
<ColorAlias name="selection rect" alias="color 95"/>
- <ColorAlias name="send bg" alias="color 38"/>
<ColorAlias name="send alert button: fill" alias="color 71"/>
<ColorAlias name="send alert button: fill active" alias="color 38"/>
<ColorAlias name="send alert button: led active" alias="color 4"/>
+ <ColorAlias name="send bg" alias="color 38"/>
<ColorAlias name="shuttle" alias="color 12"/>
<ColorAlias name="silence" alias="color 98"/>
<ColorAlias name="silence text" alias="color 99"/>
@@ -478,33 +475,34 @@
<ColorAlias name="zero line" alias="color 104"/>
<ColorAlias name="zoom button: fill active" alias="color 48"/>
<ColorAlias name="zoom button: led active" alias="color 8"/>
- </ColorAliases>
+ </ColorAliases>
<Modifiers>
+ <Modifier name="audio bus base" modifier="= alpha:0.4078"/>
+ <Modifier name="audio track base" modifier="= alpha:0.4078"/>
+ <Modifier name="automation track fill" modifier="= alpha:0.326156"/>
<Modifier name="crossfade alpha" modifier="= alpha:0.1803"/>
- <Modifier name="stereo panner inverted" modifier="= alpha:0.7882"/>
- <Modifier name="loop rectangle" modifier="= alpha:0.9764"/>
- <Modifier name="mono panner position fill" modifier="= alpha:0.8"/>
- <Modifier name="region base" modifier="= alpha:0.8"/>
<Modifier name="gain line inactive" modifier="= alpha:0.7725"/>
- <Modifier name="ghost track base" modifier="= alpha:0.7764"/>
- <Modifier name="audio bus base" modifier="= alpha:0.4078"/>
+ <Modifier name="ghost track base" modifier="= alpha:0.640782"/>
+ <Modifier name="ghost track midi fill" modifier="= alpha:0.228968"/>
<Modifier name="inactive crossfade" modifier="= alpha:0.4666"/>
- <Modifier name="midi note velocity text" modifier="= alpha:0.4666"/>
- <Modifier name="midi sysex fill" modifier="= alpha:0.4666"/>
- <Modifier name="verbose canvas cursor" modifier="= alpha:0.4666"/>
+ <Modifier name="loop rectangle" modifier="= alpha:0.9764"/>
<Modifier name="measure line beat" modifier="= alpha:0.4627"/>
- <Modifier name="piano roll white" modifier="= alpha:0.4627"/>
- <Modifier name="audio track base" modifier="= alpha:0.4078"/>
- <Modifier name="automation track fill" modifier="= alpha:0.4078"/>
<Modifier name="midi frame base" modifier="= alpha:0.4"/>
+ <Modifier name="midi note" modifier="= alpha:0.686905"/>
+ <Modifier name="midi note velocity text" modifier="= alpha:0.4666"/>
<Modifier name="midi patch change fill" modifier="= alpha:0.6274"/>
- <Modifier name="stereo panner inverted bg" modifier="= alpha:0.7529"/>
+ <Modifier name="midi sysex fill" modifier="= alpha:0.4666"/>
<Modifier name="midi track base" modifier="= alpha:0.3725"/>
+ <Modifier name="mono panner position fill" modifier="= alpha:0.8"/>
<Modifier name="panner fill" modifier="= alpha:0.7882"/>
- <Modifier name="piano roll black" modifier="= alpha:0.4196"/>
+ <Modifier name="piano roll black" modifier="= alpha:0.331098"/>
+ <Modifier name="piano roll white" modifier="= alpha:0.4627"/>
+ <Modifier name="region base" modifier="= alpha:0.99"/>
+ <Modifier name="selected midi note" modifier="= alpha:0.7529"/>
<Modifier name="selection rect" modifier="= alpha:0.4666"/>
<Modifier name="silence" modifier="= alpha:0.4784"/>
- <Modifier name="midi note" modifier="= alpha:0.5333"/>
- <Modifier name="selected midi note" modifier="= alpha:0.7529"/>
+ <Modifier name="stereo panner inverted" modifier="= alpha:0.7882"/>
+ <Modifier name="stereo panner inverted bg" modifier="= alpha:0.7529"/>
+ <Modifier name="verbose canvas cursor" modifier="= alpha:0.4666"/>
</Modifiers>
</Ardour>
diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc
index aff64e9845..0813a229bb 100644
--- a/gtk2_ardour/ghostregion.cc
+++ b/gtk2_ardour/ghostregion.cc
@@ -230,12 +230,10 @@ MidiGhostRegion::set_height ()
void
MidiGhostRegion::set_colors()
{
- guint fill = source_track_color(200);
-
GhostRegion::set_colors();
for (EventList::iterator it = events.begin(); it != events.end(); ++it) {
- (*it)->rect->set_fill_color (fill);
+ (*it)->rect->set_fill_color (ARDOUR_UI::config()->color_mod((*it)->event->base_color(), "ghost track midi fill"));
(*it)->rect->set_outline_color (ARDOUR_UI::config()->color ("ghost track midi outline"));
}
}
@@ -272,7 +270,7 @@ MidiGhostRegion::add_note (NoteBase* n)
GhostEvent* event = new GhostEvent (n, group);
events.push_back (event);
- event->rect->set_fill_color (source_track_color(200));
+ event->rect->set_fill_color (ARDOUR_UI::config()->color_mod(n->base_color(), "ghost track midi fill"));
event->rect->set_outline_color (ARDOUR_UI::config()->color ("ghost track midi outline"));
MidiStreamView* mv = midi_view();
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 2e1da30c37..96dd9b27a7 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -274,6 +274,7 @@ MidiRegionView::init (bool wfd)
_model = midi_region()->midi_source(0)->model();
_enable_display = false;
+ _fill_color_name = "midi frame base";
RegionView::init (false);
@@ -3282,8 +3283,8 @@ MidiRegionView::set_frame_color()
if (_selected) {
f = ARDOUR_UI::config()->color ("selected region base");
- } else if (high_enough_for_name) {
- f= ARDOUR_UI::config()->color_mod ("midi frame base", "midi frame base");
+ } else if (high_enough_for_name || !ARDOUR_UI::config()->get_color_regions_using_track_color()) {
+ f = ARDOUR_UI::config()->color_mod ("midi frame base", "midi frame base");
} else {
f = fill_color;
}
diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc
index 158161d62d..71d8dd98fc 100644
--- a/gtk2_ardour/note_base.cc
+++ b/gtk2_ardour/note_base.cc
@@ -122,7 +122,8 @@ NoteBase::on_channel_selection_change(uint16_t selection)
// make note change its color if its channel is not marked active
if ( (selection & (1 << _note->channel())) == 0 ) {
set_fill_color(ARDOUR_UI::config()->color ("midi note inactive channel"));
- set_outline_color(calculate_outline(ARDOUR_UI::config()->color ("midi note inactive channel")));
+ set_outline_color(calculate_outline(ARDOUR_UI::config()->color ("midi note inactive channel"),
+ _selected));
} else {
// set the color according to the notes selection state
set_selected(_selected);
@@ -149,12 +150,7 @@ NoteBase::set_selected(bool selected)
_selected = selected;
set_fill_color (base_color());
- if (_selected) {
- set_outline_color(calculate_outline(ARDOUR_UI::config()->color ("midi note selected")));
- } else {
- set_outline_color(calculate_outline(base_color()));
- }
-
+ set_outline_color(calculate_outline(base_color(), _selected));
}
#define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257)
diff --git a/gtk2_ardour/note_base.h b/gtk2_ardour/note_base.h
index 22dd9d462e..d426a7b59d 100644
--- a/gtk2_ardour/note_base.h
+++ b/gtk2_ardour/note_base.h
@@ -103,36 +103,26 @@ class NoteBase : public sigc::trackable
MidiRegionView& region_view() const { return _region; }
inline static uint32_t meter_style_fill_color(uint8_t vel, bool selected) {
- if (selected) {
- if (vel < 64) {
- return UINT_INTERPOLATE(
- ARDOUR_UI::config()->color_mod ("selected midi note min", "selected midi note"),
- ARDOUR_UI::config()->color_mod ("selected midi note mid", "selected midi note"),
- (vel / (double)63.0));
- } else {
- return UINT_INTERPOLATE(
- ARDOUR_UI::config()->color_mod ("selected midi note mid", "selected midi note"),
- ARDOUR_UI::config()->color_mod ("selected midi note max", "selected midi note"),
- ((vel-64) / (double)63.0));
- }
- } else {
- if (vel < 64) {
- return UINT_INTERPOLATE(
- ARDOUR_UI::config()->color_mod ("midi note min", "midi note"),
- ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
- (vel / (double)63.0));
- } else {
- return UINT_INTERPOLATE(
- ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
- ARDOUR_UI::config()->color_mod ("midi note max", " midi note"),
- ((vel-64) / (double)63.0));
- }
- }
+ if (vel < 64) {
+ return UINT_INTERPOLATE(
+ ARDOUR_UI::config()->color_mod ("midi note min", "midi note"),
+ ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
+ (vel / (double)63.0));
+ } else {
+ return UINT_INTERPOLATE(
+ ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
+ ARDOUR_UI::config()->color_mod ("midi note max", " midi note"),
+ ((vel-64) / (double)63.0));
+ }
}
/// calculate outline colors from fill colors of notes
- inline static uint32_t calculate_outline(uint32_t color) {
- return UINT_INTERPOLATE(color, 0x000000ff, 0.5);
+ inline static uint32_t calculate_outline(uint32_t color, bool selected=false) {
+ if (selected) {
+ return ARDOUR_UI::config()->color ("midi note selected outline");
+ } else {
+ return UINT_INTERPOLATE(color, 0x000000ff, 0.5);
+ }
}
/// hue circle divided into 16 equal-looking parts, courtesy Thorsten Wilms
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index 60b39e1c71..78c5b3299a 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -169,6 +169,7 @@ TimeAxisViewItem::init (ArdourCanvas::Item* parent, double fpp, uint32_t base_co
group->Event.connect (sigc::mem_fun (*this, &TimeAxisViewItem::canvas_group_event));
fill_color = base_color;
+ _fill_color_name = "region base";
samples_per_pixel = fpp;
frame_position = start;
item_duration = duration;
@@ -729,21 +730,19 @@ TimeAxisViewItem::fill_opacity () const
return 130;
}
- uint32_t col = ARDOUR_UI::config()->color_mod ("region base", "region base");
+ uint32_t col = ARDOUR_UI::config()->color_mod (_fill_color_name, _fill_color_name);
return UINT_RGBA_A (col);
}
uint32_t
TimeAxisViewItem::get_fill_color () const
{
- uint32_t f;
- uint32_t o;
-
- o = fill_opacity ();
+ uint32_t f;
+ uint32_t o = fill_opacity ();
if (_selected) {
- f = ARDOUR_UI::config()->color ("selected region base");
+ f = ARDOUR_UI::config()->color ("selected region base");
if (o == 0) {
/* some condition of this item has set fill opacity to
@@ -759,7 +758,7 @@ TimeAxisViewItem::get_fill_color () const
f = ARDOUR_UI::config()->color ("recording rect");
} else {
if ((!Config->get_show_name_highlight() || high_enough_for_name) && !ARDOUR_UI::config()->get_color_regions_using_track_color()) {
- f = ARDOUR_UI::config()->color_mod ("region base", "region base");
+ f = ARDOUR_UI::config()->color_mod (_fill_color_name, _fill_color_name);
} else {
f = fill_color;
}
diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h
index 2488355eef..74a655a6c0 100644
--- a/gtk2_ardour/time_axis_view_item.h
+++ b/gtk2_ardour/time_axis_view_item.h
@@ -76,7 +76,7 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
void set_color (uint32_t);
void set_name_text_color ();
- uint32_t get_fill_color () const;
+ uint32_t get_fill_color () const;
ArdourCanvas::Item* get_canvas_frame();
ArdourCanvas::Item* get_canvas_group();
@@ -241,6 +241,7 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
double _height;
Visibility visibility;
+ std::string _fill_color_name;
bool _recregion;
bool _automation; ///< true if this is an automation region view
bool _dragging;
diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc
index e1aba7d524..8021d3dc9e 100644
--- a/gtk2_ardour/ui_config.cc
+++ b/gtk2_ardour/ui_config.cc
@@ -558,6 +558,12 @@ UIConfiguration::color_mod (std::string const & colorname, std::string const & m
}
ArdourCanvas::Color
+UIConfiguration::color_mod (const ArdourCanvas::Color& color, std::string const & modifiername) const
+{
+ return HSV (color).mod (modifier (modifiername)).color ();
+}
+
+ArdourCanvas::Color
UIConfiguration::color (const std::string& name, bool* failed) const
{
ColorAliases::const_iterator e = color_aliases.find (name);
diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h
index c8dcbacf12..244c1a0a82 100644
--- a/gtk2_ardour/ui_config.h
+++ b/gtk2_ardour/ui_config.h
@@ -71,6 +71,7 @@ class UIConfiguration : public PBD::Stateful
ArdourCanvas::Color color (const std::string&, bool* failed = 0) const;
ArdourCanvas::Color color_mod (std::string const & color, std::string const & modifier) const;
+ ArdourCanvas::Color color_mod (const ArdourCanvas::Color& color, std::string const & modifier) const;
ArdourCanvas::HSV color_hsv (const std::string&) const;
ArdourCanvas::SVAModifier modifier (const std::string&) const;