summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/automation_region_view.cc26
-rw-r--r--gtk2_ardour/automation_region_view.h4
-rw-r--r--gtk2_ardour/dark.colors24
-rw-r--r--gtk2_ardour/midi_region_view.cc39
-rw-r--r--gtk2_ardour/midi_region_view.h4
-rw-r--r--gtk2_ardour/region_view.cc22
-rw-r--r--gtk2_ardour/region_view.h5
-rw-r--r--gtk2_ardour/time_axis_view_item.cc29
-rw-r--r--gtk2_ardour/time_axis_view_item.h4
9 files changed, 65 insertions, 92 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)
{
diff --git a/gtk2_ardour/automation_region_view.h b/gtk2_ardour/automation_region_view.h
index c9b7d47f18..76632901f7 100644
--- a/gtk2_ardour/automation_region_view.h
+++ b/gtk2_ardour/automation_region_view.h
@@ -70,6 +70,8 @@ public:
// We are a ghost. Meta ghosts? Crazy talk.
virtual GhostRegion* add_ghost(TimeAxisView&) { return 0; }
+ uint32_t get_fill_color() const;
+
void set_height (double);
void reset_width_dependent_items(double pixel_width);
@@ -79,6 +81,7 @@ protected:
void region_resized (const PBD::PropertyChange&);
bool canvas_group_event(GdkEvent* ev);
void add_automation_event (GdkEvent* event, framepos_t when, double y, bool with_guard_points);
+ void mouse_mode_changed ();
void entered();
void exited();
@@ -87,6 +90,7 @@ private:
ARDOUR::DoubleBeatsFramesConverter _source_relative_time_converter;
Evoral::Parameter _parameter;
boost::shared_ptr<AutomationLine> _line;
+ PBD::ScopedConnection _mouse_mode_connection;
};
#endif /* __gtk_ardour_automation_region_view_h__ */
diff --git a/gtk2_ardour/dark.colors b/gtk2_ardour/dark.colors
index 8610e5d1ef..5c3e8bb719 100644
--- a/gtk2_ardour/dark.colors
+++ b/gtk2_ardour/dark.colors
@@ -1,18 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- The Dark Theme for Ardour -->
-
<Ardour>
<Colors>
- <Color name="meter color0" value="0x008800FF"/>
- <Color name="meter color1" value="0x00AA00FF"/>
- <Color name="meter color2" value="0x00FF00FF"/>
- <Color name="meter color3" value="0x00FF00FF"/>
- <Color name="meter color4" value="0xFFF000ff"/>
- <Color name="meter color5" value="0xFFF000ff"/>
- <Color name="meter color6" value="0xFF8800ff"/>
- <Color name="meter color7" value="0xFF8800ff"/>
- <Color name="meter color8" value="0xFF0000ff"/>
- <Color name="meter color9" value="0xFF0000ff"/>
<Color name="color 1" value="0x20b2b2ff"/>
<Color name="color 10" value="0xf0f0f0ff"/>
<Color name="color 100" value="0xe49c9cff"/>
@@ -116,6 +104,16 @@
<Color name="color 97" value="0xccccccff"/>
<Color name="color 98" value="0x9effffff"/>
<Color name="color 99" value="0x5da3c1ff"/>
+ <Color name="meter color0" value="0x008800ff"/>
+ <Color name="meter color1" value="0x00aa00ff"/>
+ <Color name="meter color2" value="0x00ff00ff"/>
+ <Color name="meter color3" value="0x00ff00ff"/>
+ <Color name="meter color4" value="0xfff000ff"/>
+ <Color name="meter color5" value="0xfff000ff"/>
+ <Color name="meter color6" value="0xff8800ff"/>
+ <Color name="meter color7" value="0xff8800ff"/>
+ <Color name="meter color8" value="0xff0000ff"/>
+ <Color name="meter color9" value="0xff0000ff"/>
</Colors>
<ColorAliases>
<ColorAlias name="active crossfade" alias="color 1"/>
@@ -481,6 +479,8 @@
<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="dragging region" modifier="= alpha:0.9"/>
+ <Modifier name="editable region" modifier="= alpha:0.1"/>
<Modifier name="gain line inactive" modifier="= alpha:0.7725"/>
<Modifier name="ghost track base" modifier="= alpha:0.640782"/>
<Modifier name="ghost track midi fill" modifier="= alpha:0.228968"/>
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 787a997e7e..330a2204bf 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -426,8 +426,6 @@ MidiRegionView::enter_notify (GdkEventCrossing* ev)
bool
MidiRegionView::leave_notify (GdkEventCrossing*)
{
- _mouse_mode_connection.disconnect ();
-
leave_internal();
_entered = false;
@@ -3242,40 +3240,17 @@ MidiRegionView::note_mouse_position (float x_fraction, float /*y_fraction*/, boo
}
uint32_t
-MidiRegionView::fill_opacity() const
+MidiRegionView::get_fill_color() const
{
- uint32_t a = RegionView::fill_opacity();
- if (trackview.editor().current_mouse_mode() == MouseDraw ||
- trackview.editor().current_mouse_mode() == MouseContent) {
- /* Make rect more transparent when in an internal mode. This should
- probably be configurable somehow. */
- a /= 2;
- }
- return a;
-}
-
-void
-MidiRegionView::set_frame_color()
-{
- uint32_t f;
-
- TimeAxisViewItem::set_frame_color ();
-
- if (!frame) {
- return;
- }
-
+ const std::string mod_name = (_dragging ? "dragging region" :
+ trackview.editor().internal_editing() ? "editable region" :
+ "midi frame base");
if (_selected) {
- f = ARDOUR_UI::config()->color ("selected region base");
+ 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()) {
- f = ARDOUR_UI::config()->color_mod ("midi frame base", "midi frame base");
- } else {
- f = fill_color;
+ return ARDOUR_UI::config()->color_mod ("midi frame base", mod_name);
}
-
- f = UINT_RGBA_CHANGE_A (f, fill_opacity());
-
- frame->set_fill_color (f);
+ return ARDOUR_UI::config()->color_mod (fill_color, mod_name);
}
void
diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h
index 74344380e0..d7c8c29058 100644
--- a/gtk2_ardour/midi_region_view.h
+++ b/gtk2_ardour/midi_region_view.h
@@ -106,11 +106,9 @@ public:
inline ARDOUR::ColorMode color_mode() const { return midi_view()->color_mode(); }
- void set_frame_color();
+ uint32_t get_fill_color() const;
void color_handler ();
- uint32_t fill_opacity() const;
-
void show_step_edit_cursor (Evoral::MusicalTime pos);
void move_step_edit_cursor (Evoral::MusicalTime pos);
void hide_step_edit_cursor ();
diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc
index bd80e27acb..c9c423e68a 100644
--- a/gtk2_ardour/region_view.cc
+++ b/gtk2_ardour/region_view.cc
@@ -510,18 +510,6 @@ RegionView::set_duration (framecnt_t frames, void *src)
return true;
}
-uint32_t
-RegionView::fill_opacity () const
-{
- if (!_region->opaque()) {
- return 60;
- }
-
- uint32_t normal_tavi_opacity = TimeAxisViewItem::fill_opacity ();
-
- return normal_tavi_opacity;
-}
-
void
RegionView::set_colors ()
{
@@ -534,10 +522,14 @@ RegionView::set_colors ()
}
}
-void
-RegionView::set_frame_color ()
+uint32_t
+RegionView::get_fill_color () const
{
- TimeAxisViewItem::set_frame_color ();
+ uint32_t f = TimeAxisViewItem::get_fill_color();
+ if (_region->opaque()) {
+ f = UINT_RGBA_CHANGE_A (f, 255);
+ }
+ return f;
}
void
diff --git a/gtk2_ardour/region_view.h b/gtk2_ardour/region_view.h
index d39e75b759..551f8d93b0 100644
--- a/gtk2_ardour/region_view.h
+++ b/gtk2_ardour/region_view.h
@@ -85,6 +85,8 @@ class RegionView : public TimeAxisViewItem
virtual void region_changed (const PBD::PropertyChange&);
+ uint32_t get_fill_color () const;
+
virtual GhostRegion* add_ghost (TimeAxisView&) = 0;
void remove_ghost_in (TimeAxisView&);
void remove_ghost (GhostRegion*);
@@ -149,11 +151,8 @@ class RegionView : public TimeAxisViewItem
void lock_toggle ();
virtual void set_colors ();
- virtual void set_frame_color ();
virtual void reset_width_dependent_items (double pixel_width);
- uint32_t fill_opacity () const;
-
virtual void color_handler () {}
boost::shared_ptr<ARDOUR::Region> _region;
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index 8c38293442..35a1e33138 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -692,48 +692,29 @@ TimeAxisViewItem::set_name_text_color ()
}
uint32_t
-TimeAxisViewItem::fill_opacity () const
-{
- if (_dragging) {
- return 130;
- }
-
- 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 = fill_opacity ();
+ const std::string mod_name = (_dragging ? "dragging region" : _fill_color_name);
if (_selected) {
- f = ARDOUR_UI::config()->color ("selected region base");
+ f = ARDOUR_UI::config()->color_mod ("selected region base", mod_name);
- if (o == 0) {
- /* some condition of this item has set fill opacity to
- * zero, but it has been selected, so use a mid-way
- * alpha value to make it reasonably visible.
- */
- o = 130;
- }
-
} else {
if (_recregion) {
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 (_fill_color_name, _fill_color_name);
+ f = ARDOUR_UI::config()->color_mod (_fill_color_name, mod_name);
} else {
- f = fill_color;
+ f = ARDOUR_UI::config()->color_mod (fill_color, mod_name);
}
}
}
- return UINT_RGBA_CHANGE_A (f, o);
+ return f;
}
/**
diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h
index 576e2ae76a..9229a3c791 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;
+ virtual uint32_t get_fill_color () const;
ArdourCanvas::Item* get_canvas_frame();
ArdourCanvas::Item* get_canvas_group();
@@ -215,8 +215,6 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
uint32_t fill_color;
- virtual uint32_t fill_opacity() const;
-
uint32_t last_item_width;
int name_text_width;
bool wide_enough_for_name;