diff options
author | David Robillard <d@drobilla.net> | 2014-12-16 20:37:16 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-12-18 20:23:34 -0500 |
commit | 60313085209a6213a7388e0b1070c10e83fe2a10 (patch) | |
tree | 8838eac295e2079cc1c2b28defb0819a6271e3ca /gtk2_ardour/automation_region_view.cc | |
parent | a12a065457a10d9be2582f3ad2fcee7178405981 (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.cc | 26 |
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) { |