summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_region_view.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-16 20:37:16 -0500
committerDavid Robillard <d@drobilla.net>2014-12-18 20:23:34 -0500
commit60313085209a6213a7388e0b1070c10e83fe2a10 (patch)
tree8838eac295e2079cc1c2b28defb0819a6271e3ca /gtk2_ardour/automation_region_view.cc
parenta12a065457a10d9be2582f3ad2fcee7178405981 (diff)
Use color modifiers for dynamic region styles.
Diffstat (limited to 'gtk2_ardour/automation_region_view.cc')
-rw-r--r--gtk2_ardour/automation_region_view.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/gtk2_ardour/automation_region_view.cc b/gtk2_ardour/automation_region_view.cc
index ec1fa523a4..ca984ed128 100644
--- a/gtk2_ardour/automation_region_view.cc
+++ b/gtk2_ardour/automation_region_view.cc
@@ -29,6 +29,7 @@
#include "gtkmm2ext/keyboard.h"
+#include "ardour_ui.h"
#include "automation_region_view.h"
#include "editing.h"
#include "editor.h"
@@ -57,6 +58,10 @@ AutomationRegionView::AutomationRegionView (ArdourCanvas::Container*
}
group->raise_to_top();
+
+ trackview.editor().MouseModeChanged.connect(_mouse_mode_connection, invalidator (*this),
+ boost::bind (&AutomationRegionView::mouse_mode_changed, this),
+ gui_context ());
}
AutomationRegionView::~AutomationRegionView ()
@@ -97,6 +102,27 @@ AutomationRegionView::create_line (boost::shared_ptr<ARDOUR::AutomationList> lis
_line->set_offset (_region->start ());
}
+uint32_t
+AutomationRegionView::get_fill_color() const
+{
+ const std::string mod_name = (_dragging ? "dragging region" :
+ trackview.editor().internal_editing() ? "editable region" :
+ "midi frame base");
+ if (_selected) {
+ return ARDOUR_UI::config()->color_mod ("selected region base", mod_name);
+ } else if (high_enough_for_name || !ARDOUR_UI::config()->get_color_regions_using_track_color()) {
+ return ARDOUR_UI::config()->color_mod ("midi frame base", mod_name);
+ }
+ return ARDOUR_UI::config()->color_mod (fill_color, mod_name);
+}
+
+void
+AutomationRegionView::mouse_mode_changed ()
+{
+ // Adjust frame colour (become more transparent for internal tools)
+ set_frame_color();
+}
+
bool
AutomationRegionView::canvas_group_event (GdkEvent* ev)
{