summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/audio_region_view.cc58
-rw-r--r--gtk2_ardour/audio_streamview.cc12
-rw-r--r--gtk2_ardour/automation_line.cc2
-rw-r--r--gtk2_ardour/automation_streamview.cc4
-rw-r--r--gtk2_ardour/automation_time_axis.cc6
-rw-r--r--gtk2_ardour/canvas_patch_change.cc8
-rw-r--r--gtk2_ardour/control_point.cc12
-rw-r--r--gtk2_ardour/crossfade_edit.cc42
-rw-r--r--gtk2_ardour/editor.cc10
-rw-r--r--gtk2_ardour/editor_canvas.cc70
-rw-r--r--gtk2_ardour/editor_drag.cc8
-rw-r--r--gtk2_ardour/editor_mouse.cc8
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc4
-rw-r--r--gtk2_ardour/gain_meter.cc2
-rw-r--r--gtk2_ardour/ghostregion.cc16
-rw-r--r--gtk2_ardour/imageframe_time_axis_view.cc4
-rw-r--r--gtk2_ardour/level_meter.cc16
-rw-r--r--gtk2_ardour/marker.cc8
-rw-r--r--gtk2_ardour/marker_time_axis_view.cc4
-rw-r--r--gtk2_ardour/midi_region_view.cc8
-rw-r--r--gtk2_ardour/midi_streamview.cc14
-rw-r--r--gtk2_ardour/mono_panner.cc12
-rw-r--r--gtk2_ardour/note_base.cc12
-rw-r--r--gtk2_ardour/note_base.h16
-rw-r--r--gtk2_ardour/patch_change.cc4
-rw-r--r--gtk2_ardour/region_view.cc6
-rw-r--r--gtk2_ardour/route_time_axis.cc8
-rw-r--r--gtk2_ardour/shuttle_control.cc2
-rw-r--r--gtk2_ardour/stereo_panner.cc34
-rw-r--r--gtk2_ardour/sys_ex.cc4
-rw-r--r--gtk2_ardour/tempo_lines.cc4
-rw-r--r--gtk2_ardour/theme_manager.cc45
-rw-r--r--gtk2_ardour/theme_manager.h3
-rw-r--r--gtk2_ardour/time_axis_view.cc26
-rw-r--r--gtk2_ardour/time_axis_view_item.cc65
-rw-r--r--gtk2_ardour/time_axis_view_item.h1
-rw-r--r--gtk2_ardour/ui_config.h25
-rw-r--r--gtk2_ardour/ui_config_vars.h1
-rw-r--r--libs/canvas/canvas/fill.h6
-rw-r--r--libs/canvas/fill.cc28
40 files changed, 366 insertions, 252 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index 6f15aacf55..eae9eb5f78 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -441,9 +441,9 @@ AudioRegionView::region_muted ()
for (uint32_t n=0; n < waves.size(); ++n) {
if (_region->muted()) {
- waves[n]->set_outline_color (UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA));
+ waves[n]->set_outline_color (UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_WaveForm(), MUTED_ALPHA));
} else {
- waves[n]->set_outline_color (ARDOUR_UI::config()->canvasvar_WaveForm.get());
+ waves[n]->set_outline_color (ARDOUR_UI::config()->get_canvasvar_WaveForm());
}
}
}
@@ -756,18 +756,18 @@ AudioRegionView::set_colors ()
RegionView::set_colors();
if (gain_line) {
- gain_line->set_line_color (audio_region()->envelope_active() ? ARDOUR_UI::config()->canvasvar_GainLine.get() : ARDOUR_UI::config()->canvasvar_GainLineInactive.get());
+ gain_line->set_line_color (audio_region()->envelope_active() ? ARDOUR_UI::config()->get_canvasvar_GainLine() : ARDOUR_UI::config()->get_canvasvar_GainLineInactive());
}
for (uint32_t n=0; n < waves.size(); ++n) {
if (_region->muted()) {
- waves[n]->set_outline_color (UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA));
+ waves[n]->set_outline_color (UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_WaveForm(), MUTED_ALPHA));
} else {
- waves[n]->set_outline_color (ARDOUR_UI::config()->canvasvar_WaveForm.get());
+ waves[n]->set_outline_color (ARDOUR_UI::config()->get_canvasvar_WaveForm());
}
- waves[n]->set_clip_color (ARDOUR_UI::config()->canvasvar_WaveFormClip.get());
- waves[n]->set_zero_color (ARDOUR_UI::config()->canvasvar_ZeroLine.get());
+ waves[n]->set_clip_color (ARDOUR_UI::config()->get_canvasvar_WaveFormClip());
+ waves[n]->set_zero_color (ARDOUR_UI::config()->get_canvasvar_ZeroLine());
}
}
@@ -902,15 +902,15 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/)
wave->property_amplitude_above_axis() = _amplitude_above_axis;
if (_recregion) {
- wave->set_outline_color (_region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA) : ARDOUR_UI::config()->canvasvar_RecWaveForm.get());
- wave->set_fill_color (ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get());
+ wave->set_outline_color (_region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_RecWaveForm(), MUTED_ALPHA) : ARDOUR_UI::config()->get_canvasvar_RecWaveForm());
+ wave->set_fill_color (ARDOUR_UI::config()->get_canvasvar_RecWaveFormFill());
} else {
- wave->set_outline_color (_region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA) : ARDOUR_UI::config()->canvasvar_WaveForm.get());
- wave->set_fill_color (ARDOUR_UI::config()->canvasvar_WaveFormFill.get());
+ wave->set_outline_color (_region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_WaveForm(), MUTED_ALPHA) : ARDOUR_UI::config()->get_canvasvar_WaveForm());
+ wave->set_fill_color (ARDOUR_UI::config()->get_canvasvar_WaveFormFill());
}
- wave->set_clip_color (ARDOUR_UI::config()->canvasvar_WaveFormClip.get());
- wave->set_zero_color (ARDOUR_UI::config()->canvasvar_ZeroLine.get());
+ wave->set_clip_color (ARDOUR_UI::config()->get_canvasvar_WaveFormClip());
+ wave->set_zero_color (ARDOUR_UI::config()->get_canvasvar_ZeroLine());
// CAIROCANVAS
// wave->property_zero_line() = true;
@@ -1133,7 +1133,7 @@ void
AudioRegionView::envelope_active_changed ()
{
if (gain_line) {
- gain_line->set_line_color (audio_region()->envelope_active() ? ARDOUR_UI::config()->canvasvar_GainLine.get() : ARDOUR_UI::config()->canvasvar_GainLineInactive.get());
+ gain_line->set_line_color (audio_region()->envelope_active() ? ARDOUR_UI::config()->get_canvasvar_GainLine() : ARDOUR_UI::config()->get_canvasvar_GainLineInactive());
}
}
@@ -1172,26 +1172,26 @@ AudioRegionView::set_frame_color ()
if (_selected) {
if (_region->muted()) {
- wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_SelectedWaveForm.get(), MUTED_ALPHA);
+ wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_SelectedWaveForm(), MUTED_ALPHA);
} else {
- wc = ARDOUR_UI::config()->canvasvar_SelectedWaveForm.get();
+ wc = ARDOUR_UI::config()->get_canvasvar_SelectedWaveForm();
}
- fc = ARDOUR_UI::config()->canvasvar_SelectedWaveFormFill.get();
+ fc = ARDOUR_UI::config()->get_canvasvar_SelectedWaveFormFill();
} else {
if (_recregion) {
if (_region->muted()) {
- wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA);
+ wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_RecWaveForm(), MUTED_ALPHA);
} else {
- wc = ARDOUR_UI::config()->canvasvar_RecWaveForm.get();
+ wc = ARDOUR_UI::config()->get_canvasvar_RecWaveForm();
}
- fc = ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get();
+ fc = ARDOUR_UI::config()->get_canvasvar_RecWaveFormFill();
} else {
if (_region->muted()) {
- wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA);
+ wc = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->get_canvasvar_WaveForm(), MUTED_ALPHA);
} else {
- wc = ARDOUR_UI::config()->canvasvar_WaveForm.get();
+ wc = ARDOUR_UI::config()->get_canvasvar_WaveForm();
}
- fc = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
+ fc = ARDOUR_UI::config()->get_canvasvar_WaveFormFill();
}
}
@@ -1387,14 +1387,14 @@ AudioRegionView::redraw_start_xfade_to (boost::shared_ptr<AudioRegion> ar, frame
start_xfade_in = new ArdourCanvas::PolyLine (group);
// CAIROCANVAS
// start_xfade_in->set_width_pixels (1);
- start_xfade_in->set_outline_color (ARDOUR_UI::config()->canvasvar_GainLine.get());
+ start_xfade_in->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GainLine());
}
if (!start_xfade_out) {
start_xfade_out = new ArdourCanvas::PolyLine (group);
// CAIROCANVAS
// start_xfade_out->set_width_pixels (1);
- uint32_t col = UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->canvasvar_GainLine.get(), 128);
+ uint32_t col = UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->get_canvasvar_GainLine(), 128);
start_xfade_out->set_outline_color (col);
}
@@ -1403,7 +1403,7 @@ AudioRegionView::redraw_start_xfade_to (boost::shared_ptr<AudioRegion> ar, frame
// CAIROCANVAS
// start_xfade_rect->property_draw() = true;
start_xfade_rect->set_fill (true);
- start_xfade_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_ActiveCrossfade.get());
+ start_xfade_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_ActiveCrossfade());
start_xfade_rect->set_outline (false);
start_xfade_rect->Event.connect (sigc::bind (sigc::mem_fun (PublicEditor::instance(), &PublicEditor::canvas_start_xfade_event), start_xfade_rect, this));
start_xfade_rect->set_data ("regionview", this);
@@ -1495,14 +1495,14 @@ AudioRegionView::redraw_end_xfade_to (boost::shared_ptr<AudioRegion> ar, framecn
end_xfade_in = new ArdourCanvas::PolyLine (group);
// CAIROCANVAS
// end_xfade_in->property_width_pixels() = 1;
- end_xfade_in->set_outline_color (ARDOUR_UI::config()->canvasvar_GainLine.get());
+ end_xfade_in->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GainLine());
}
if (!end_xfade_out) {
end_xfade_out = new ArdourCanvas::PolyLine (group);
// CAIROCANVAS
// end_xfade_out->property_width_pixels() = 1;
- uint32_t col UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->canvasvar_GainLine.get(), 128);
+ uint32_t col UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->get_canvasvar_GainLine(), 128);
end_xfade_out->set_outline_color (col);
}
@@ -1511,7 +1511,7 @@ AudioRegionView::redraw_end_xfade_to (boost::shared_ptr<AudioRegion> ar, framecn
// CAIROCANVAS
// end_xfade_rect->property_draw() = true;
end_xfade_rect->set_fill (true);
- end_xfade_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_ActiveCrossfade.get());
+ end_xfade_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_ActiveCrossfade());
end_xfade_rect->set_outline (0);
end_xfade_rect->Event.connect (sigc::bind (sigc::mem_fun (PublicEditor::instance(), &PublicEditor::canvas_end_xfade_event), end_xfade_rect, this));
end_xfade_rect->set_data ("regionview", this);
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc
index 81c3d862fc..088eec17e5 100644
--- a/gtk2_ardour/audio_streamview.cc
+++ b/gtk2_ardour/audio_streamview.cc
@@ -271,12 +271,12 @@ AudioStreamView::setup_rec_box ()
case Normal:
case NonLayered:
xend = xstart;
- fill_color = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+ fill_color = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
break;
case Destructive:
xend = xstart + 2;
- fill_color = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+ fill_color = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
/* make the recording rect translucent to allow
the user to see the peak data coming in, etc.
*/
@@ -290,7 +290,7 @@ AudioStreamView::setup_rec_box ()
rec_rect->set_x1 (xend);
rec_rect->set_y1 (child_height ());
rec_rect->set_outline_what (0);
- rec_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get());
+ rec_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame());
rec_rect->set_fill_color (fill_color);
rec_rect->lower_to_bottom();
@@ -529,15 +529,15 @@ AudioStreamView::color_handler ()
{
//case cAudioTrackBase:
if (_trackview.is_track()) {
- canvas_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_AudioTrackBase.get());
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioTrackBase());
}
//case cAudioBusBase:
if (!_trackview.is_track()) {
if (Profile->get_sae() && _trackview.route()->is_master()) {
- canvas_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_AudioMasterBusBase.get());
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioMasterBusBase());
} else {
- canvas_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_AudioBusBase.get());
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AudioBusBase());
}
}
}
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc
index 75e20e2329..fa26177093 100644
--- a/gtk2_ardour/automation_line.cc
+++ b/gtk2_ardour/automation_line.cc
@@ -880,7 +880,7 @@ AutomationLine::set_selected_points (PointSelection const & points)
void AutomationLine::set_colors ()
{
- set_line_color (ARDOUR_UI::config()->canvasvar_AutomationLine.get());
+ set_line_color (ARDOUR_UI::config()->get_canvasvar_AutomationLine());
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
(*i)->set_color ();
}
diff --git a/gtk2_ardour/automation_streamview.cc b/gtk2_ardour/automation_streamview.cc
index cab176429d..a1ba99a2b4 100644
--- a/gtk2_ardour/automation_streamview.cc
+++ b/gtk2_ardour/automation_streamview.cc
@@ -186,11 +186,11 @@ void
AutomationStreamView::color_handler ()
{
/*if (_trackview.is_midi_track()) {
- canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiTrackBase.get();
+ canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->get_canvasvar_MidiTrackBase();
}
if (!_trackview.is_midi_track()) {
- canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiBusBase.get();;
+ canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->get_canvasvar_MidiBusBase();;
}*/
}
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index 254d8629c0..fd3c7aab52 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -110,11 +110,11 @@ AutomationTimeAxisView::AutomationTimeAxisView (
_base_rect = new ArdourCanvas::Rectangle (_canvas_display);
_base_rect->set_x1 (ArdourCanvas::COORD_MAX);
- _base_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_AutomationTrackOutline.get());
+ _base_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_AutomationTrackOutline());
/* outline ends and bottom */
_base_rect->set_outline_what (0x1 | 0x2 | 0x8);
- _base_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_AutomationTrackFill.get());
+ _base_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_AutomationTrackFill());
_base_rect->set_data ("trackview", this);
@@ -209,7 +209,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (
)
);
- line->set_line_color (ARDOUR_UI::config()->canvasvar_ProcessorAutomationLine.get());
+ line->set_line_color (ARDOUR_UI::config()->get_canvasvar_ProcessorAutomationLine());
line->queue_reset ();
add_line (line);
}
diff --git a/gtk2_ardour/canvas_patch_change.cc b/gtk2_ardour/canvas_patch_change.cc
index 7ab0eefd8c..04626692fb 100644
--- a/gtk2_ardour/canvas_patch_change.cc
+++ b/gtk2_ardour/canvas_patch_change.cc
@@ -55,11 +55,11 @@ CanvasPatchChange::CanvasPatchChange(
parent,
height,
(active_channel
- ? ARDOUR_UI::config()->canvasvar_MidiPatchChangeOutline.get()
- : ARDOUR_UI::config()->canvasvar_MidiPatchChangeInactiveChannelOutline.get()),
+ ? ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeOutline()
+ : ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeInactiveChannelOutline()),
(active_channel
- ? ARDOUR_UI::config()->canvasvar_MidiPatchChangeFill.get()
- : ARDOUR_UI::config()->canvasvar_MidiPatchChangeInactiveChannelFill.get()),
+ ? ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeFill()
+ : ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeInactiveChannelFill()),
x,
y)
, _info (info)
diff --git a/gtk2_ardour/control_point.cc b/gtk2_ardour/control_point.cc
index a3c2c1874b..7687beecaf 100644
--- a/gtk2_ardour/control_point.cc
+++ b/gtk2_ardour/control_point.cc
@@ -46,8 +46,8 @@ ControlPoint::ControlPoint (AutomationLine& al)
_item = new ArdourCanvas::Rectangle (&_line.canvas_group());
_item->property_draw() = true;
_item->set_fill (false);
- _item->set_fill_color (ARDOUR_UI::config()->canvasvar_ControlPointFill.get());
- _item->set_outline_color (ARDOUR_UI::config()->canvasvar_ControlPointOutline.get());
+ _item->set_fill_color (ARDOUR_UI::config()->get_canvasvar_ControlPointFill());
+ _item->set_outline_color (ARDOUR_UI::config()->get_canvasvar_ControlPointOutline());
_item->set_outline_width (1);
_item->set_data ("control_point", this);
_item->Event.connect (sigc::mem_fun (this, &ControlPoint::event_handler));
@@ -73,7 +73,7 @@ ControlPoint::ControlPoint (const ControlPoint& other, bool /*dummy_arg_to_force
_item = new ArdourCanvas::Rectangle (&_line.canvas_group());
_item->set_fill (false);
- _item->set_outline_color (ARDOUR_UI::config()->canvasvar_ControlPointOutline.get());
+ _item->set_outline_color (ARDOUR_UI::config()->get_canvasvar_ControlPointOutline());
_item->set_outline_width (1);
/* NOTE: no event handling in copied ControlPoints */
@@ -133,13 +133,13 @@ ControlPoint::set_color ()
uint32_t color = 0;
if (_selected) {
- color = ARDOUR_UI::config()->canvasvar_ControlPointSelected.get();
+ color = ARDOUR_UI::config()->get_canvasvar_ControlPointSelected();
} else {
- color = ARDOUR_UI::config()->canvasvar_ControlPointOutline.get();
+ color = ARDOUR_UI::config()->get_canvasvar_ControlPointOutline();
}
_item->set_outline_color (color);
- _item->set_fill_color (ARDOUR_UI::config()->canvasvar_ControlPointFill.get());
+ _item->set_fill_color (ARDOUR_UI::config()->get_canvasvar_ControlPointFill());
}
void
diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc
index 2382f89688..728a92bc09 100644
--- a/gtk2_ardour/crossfade_edit.cc
+++ b/gtk2_ardour/crossfade_edit.cc
@@ -136,23 +136,23 @@ CrossfadeEditor::CrossfadeEditor (Session* s, boost::shared_ptr<Crossfade> xf, d
toplevel = new ArdourCanvas::Rectangle (canvas->root());
toplevel->set (ArdourCanvas::Rect (0, 0, 10, 10));
toplevel->set_fill (true);
- toplevel->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorBase.get());
+ toplevel->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorBase());
toplevel->set_outline (false);
toplevel->Event.connect (sigc::mem_fun (*this, &CrossfadeEditor::canvas_event));
fade[Out].line = new ArdourCanvas::PolyLine (canvas->root());
fade[Out].line->set_outline_width (1);
- fade[Out].line->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLine.get());
+ fade[Out].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLine());
fade[Out].shading = new ArdourCanvas::Polygon (canvas->root());
- fade[Out].shading->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLineShading.get());
+ fade[Out].shading->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLineShading());
fade[In].line = new ArdourCanvas::PolyLine (canvas->root());
fade[In].line->set_outline_width (1);
- fade[In].line->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLine.get());
+ fade[In].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLine());
fade[In].shading = new ArdourCanvas::Polygon (canvas->root());
- fade[In].shading->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLineShading.get());
+ fade[In].shading->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLineShading());
fade[In].shading->Event.connect (sigc::mem_fun (*this, &CrossfadeEditor::canvas_event));
fade[In].line->Event.connect (sigc::mem_fun (*this, &CrossfadeEditor::curve_event));
@@ -466,8 +466,8 @@ CrossfadeEditor::make_point ()
p->box = new ArdourCanvas::Rectangle (canvas->root());
p->box->set_fill (true);
- p->box->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorPointFill.get());
- p->box->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorPointOutline.get());
+ p->box->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorPointFill());
+ p->box->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorPointOutline());
p->box->set_outline_width (1);
p->curve = fade[current].line;
@@ -1069,17 +1069,17 @@ CrossfadeEditor::curve_select_clicked (WhichFade wf)
if (wf == In) {
for (vector<ArdourCanvas::WaveView*>::iterator i = fade[In].waves.begin(); i != fade[In].waves.end(); ++i) {
- (*i)->set_outline_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorWave.get());
- (*i)->set_fill_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorWave.get());
+ (*i)->set_outline_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorWave());
+ (*i)->set_fill_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorWave());
}
for (vector<ArdourCanvas::WaveView*>::iterator i = fade[Out].waves.begin(); i != fade[Out].waves.end(); ++i) {
- (*i)->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorWave.get());
- (*i)->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorWave.get());
+ (*i)->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorWave());
+ (*i)->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorWave());
}
- fade[In].line->set_outline_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorLine.get());
- fade[Out].line->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLine.get());
+ fade[In].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorLine());
+ fade[Out].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLine());
fade[Out].shading->hide();
fade[In].shading->show();
@@ -1094,17 +1094,17 @@ CrossfadeEditor::curve_select_clicked (WhichFade wf)
} else {
for (vector<ArdourCanvas::WaveView*>::iterator i = fade[In].waves.begin(); i != fade[In].waves.end(); ++i) {
- (*i)->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorWave.get());
- (*i)->set_fill_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorWave.get());
+ (*i)->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorWave());
+ (*i)->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorWave());
}
for (vector<ArdourCanvas::WaveView*>::iterator i = fade[Out].waves.begin(); i != fade[Out].waves.end(); ++i) {
- (*i)->set_outline_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorWave.get());
- (*i)->set_fill_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorWave.get());
+ (*i)->set_outline_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorWave());
+ (*i)->set_fill_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorWave());
}
- fade[Out].line->set_outline_color (ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorLine.get());
- fade[In].line->set_outline_color (ARDOUR_UI::config()->canvasvar_CrossfadeEditorLine.get());
+ fade[Out].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorLine());
+ fade[In].line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorLine());
fade[In].shading->hide();
fade[Out].shading->show();
@@ -1146,9 +1146,9 @@ CrossfadeEditor::make_waves (boost::shared_ptr<AudioRegion> region, WhichFade wh
double spu;
if (which == In) {
- color = ARDOUR_UI::config()->canvasvar_SelectedCrossfadeEditorWave.get();
+ color = ARDOUR_UI::config()->get_canvasvar_SelectedCrossfadeEditorWave();
} else {
- color = ARDOUR_UI::config()->canvasvar_CrossfadeEditorWave.get();
+ color = ARDOUR_UI::config()->get_canvasvar_CrossfadeEditorWave();
}
ht = canvas->get_allocation().get_height() / (double) nchans;
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 75239a7538..96edd51af6 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -371,11 +371,11 @@ Editor::Editor ()
sfbrowser = 0;
- location_marker_color = ARDOUR_UI::config()->canvasvar_LocationMarker.get();
- location_range_color = ARDOUR_UI::config()->canvasvar_LocationRange.get();
- location_cd_marker_color = ARDOUR_UI::config()->canvasvar_LocationCDMarker.get();
- location_loop_color = ARDOUR_UI::config()->canvasvar_LocationLoop.get();
- location_punch_color = ARDOUR_UI::config()->canvasvar_LocationPunch.get();
+ location_marker_color = ARDOUR_UI::config()->get_canvasvar_LocationMarker();
+ location_range_color = ARDOUR_UI::config()->get_canvasvar_LocationRange();
+ location_cd_marker_color = ARDOUR_UI::config()->get_canvasvar_LocationCDMarker();
+ location_loop_color = ARDOUR_UI::config()->get_canvasvar_LocationLoop();
+ location_punch_color = ARDOUR_UI::config()->get_canvasvar_LocationPunch();
_edit_point = EditAtMouse;
_internal_editing = false;
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index a1d3780374..1b9795bde4 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -756,56 +756,56 @@ Editor::set_horizontal_position (double p)
void
Editor::color_handler()
{
- playhead_cursor->set_color (ARDOUR_UI::config()->canvasvar_PlayHead.get());
- _verbose_cursor->set_color (ARDOUR_UI::config()->canvasvar_VerboseCanvasCursor.get());
+ playhead_cursor->set_color (ARDOUR_UI::config()->get_canvasvar_PlayHead());
+ _verbose_cursor->set_color (ARDOUR_UI::config()->get_canvasvar_VerboseCanvasCursor());
- meter_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_MeterBar.get());
- meter_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ meter_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_MeterBar());
+ meter_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- tempo_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_TempoBar.get());
- tempo_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ tempo_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TempoBar());
+ tempo_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- marker_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_MarkerBar.get());
- marker_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ marker_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_MarkerBar());
+ marker_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- cd_marker_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_CDMarkerBar.get());
- cd_marker_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ cd_marker_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_CDMarkerBar());
+ cd_marker_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- range_marker_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_RangeMarkerBar.get());
- range_marker_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ range_marker_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_RangeMarkerBar());
+ range_marker_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- transport_marker_bar->set_fill_color (ARDOUR_UI::config()->canvasvar_TransportMarkerBar.get());
- transport_marker_bar->set_outline_color (ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get());
+ transport_marker_bar->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TransportMarkerBar());
+ transport_marker_bar->set_outline_color (ARDOUR_UI::config()->get_canvasvar_MarkerBarSeparator());
- cd_marker_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get());
- cd_marker_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get());
+ cd_marker_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_RangeDragBarRect());
+ cd_marker_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RangeDragBarRect());
- range_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get());
- range_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get());
+ range_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_RangeDragBarRect());
+ range_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RangeDragBarRect());
- transport_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_TransportDragRect.get());
- transport_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TransportDragRect.get());
+ transport_bar_drag_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TransportDragRect());
+ transport_bar_drag_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TransportDragRect());
- transport_loop_range_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_TransportLoopRect.get());
- transport_loop_range_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TransportLoopRect.get());
+ transport_loop_range_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TransportLoopRect());
+ transport_loop_range_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TransportLoopRect());
- transport_punch_range_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_TransportPunchRect.get());
- transport_punch_range_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TransportPunchRect.get());
+ transport_punch_range_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TransportPunchRect());
+ transport_punch_range_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TransportPunchRect());
- transport_punchin_line->set_outline_color (ARDOUR_UI::config()->canvasvar_PunchLine.get());
- transport_punchout_line->set_outline_color (ARDOUR_UI::config()->canvasvar_PunchLine.get());
+ transport_punchin_line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_PunchLine());
+ transport_punchout_line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_PunchLine());
- zoom_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_ZoomRect.get());
- zoom_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_ZoomRect.get());
+ zoom_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_ZoomRect());
+ zoom_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_ZoomRect());
- rubberband_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_RubberBandRect.get());
- rubberband_rect->set_fill_color ((guint32) ARDOUR_UI::config()->canvasvar_RubberBandRect.get());
+ rubberband_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RubberBandRect());
+ rubberband_rect->set_fill_color ((guint32) ARDOUR_UI::config()->get_canvasvar_RubberBandRect());
- location_marker_color = ARDOUR_UI::config()->canvasvar_LocationMarker.get();
- location_range_color = ARDOUR_UI::config()->canvasvar_LocationRange.get();
- location_cd_marker_color = ARDOUR_UI::config()->canvasvar_LocationCDMarker.get();
- location_loop_color = ARDOUR_UI::config()->canvasvar_LocationLoop.get();
- location_punch_color = ARDOUR_UI::config()->canvasvar_LocationPunch.get();
+ location_marker_color = ARDOUR_UI::config()->get_canvasvar_LocationMarker();
+ location_range_color = ARDOUR_UI::config()->get_canvasvar_LocationRange();
+ location_cd_marker_color = ARDOUR_UI::config()->get_canvasvar_LocationCDMarker();
+ location_loop_color = ARDOUR_UI::config()->get_canvasvar_LocationLoop();
+ location_punch_color = ARDOUR_UI::config()->get_canvasvar_LocationPunch();
refresh_location_display ();
/*
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 09ac4ba120..d626afcdc6 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -2143,7 +2143,7 @@ MeterMarkerDrag::motion (GdkEvent* event, bool first_move)
_marker = new MeterMarker (
*_editor,
*_editor->meter_group,
- ARDOUR_UI::config()->canvasvar_MeterMarker.get(),
+ ARDOUR_UI::config()->get_canvasvar_MeterMarker(),
name,
*new MeterSection (_marker->meter())
);
@@ -2262,7 +2262,7 @@ TempoMarkerDrag::motion (GdkEvent* event, bool first_move)
_marker = new TempoMarker (
*_editor,
*_editor->tempo_group,
- ARDOUR_UI::config()->canvasvar_TempoMarker.get(),
+ ARDOUR_UI::config()->get_canvasvar_TempoMarker(),
name,
*new TempoSection (_marker->tempo())
);
@@ -3923,8 +3923,8 @@ RangeMarkerBarDrag::RangeMarkerBarDrag (Editor* e, ArdourCanvas::Item* i, Operat
physical_screen_height (_editor->get_window())));
_drag_rect->hide ();
- _drag_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_RangeDragRect.get());
- _drag_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_RangeDragRect.get());
+ _drag_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_RangeDragRect());
+ _drag_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RangeDragRect());
}
void
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index c838f16f44..137c3e2c37 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -1860,7 +1860,7 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
if (mouse_mode == MouseGain) {
ArdourCanvas::Line *line = dynamic_cast<ArdourCanvas::Line *> (item);
if (line) {
- line->set_outline_color (ARDOUR_UI::config()->canvasvar_EnteredGainLine.get());
+ line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_EnteredGainLine());
}
if (is_drawable()) {
set_canvas_cursor (_cursors->fader);
@@ -1872,7 +1872,7 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
if (mouse_mode == MouseGain || mouse_mode == MouseObject) {
ArdourCanvas::Line *line = dynamic_cast<ArdourCanvas::Line *> (item);
if (line) {
- line->set_outline_color (ARDOUR_UI::config()->canvasvar_EnteredAutomationLine.get());
+ line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_EnteredAutomationLine());
}
if (is_drawable()) {
set_canvas_cursor (_cursors->fader);
@@ -1980,7 +1980,7 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
break;
}
entered_marker = marker;
- marker->set_color_rgba (ARDOUR_UI::config()->canvasvar_EnteredMarker.get());
+ marker->set_color_rgba (ARDOUR_UI::config()->get_canvasvar_EnteredMarker());
// fall through
case MeterMarkerItem:
case TempoMarkerItem:
@@ -2172,7 +2172,7 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type)
case FeatureLineItem:
{
ArdourCanvas::Line *line = dynamic_cast<ArdourCanvas::Line *> (item);
- line->set_outline_color (ARDOUR_UI::config()->canvasvar_ZeroLine.get());
+ line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_ZeroLine());
}
break;
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index b717ef5464..7421ebee47 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -85,7 +85,7 @@ Editor::draw_metric_marks (const Metrics& metrics)
if ((ms = dynamic_cast<const MeterSection*>(*i)) != 0) {
snprintf (buf, sizeof(buf), "%g/%g", ms->divisions_per_bar(), ms->note_divisor ());
- metric_marks.push_back (new MeterMarker (*this, *meter_group, ARDOUR_UI::config()->canvasvar_MeterMarker.get(), buf,
+ metric_marks.push_back (new MeterMarker (*this, *meter_group, ARDOUR_UI::config()->get_canvasvar_MeterMarker(), buf,
*(const_cast<MeterSection*>(ms))));
} else if ((ts = dynamic_cast<const TempoSection*>(*i)) != 0) {
if (Config->get_allow_non_quarter_pulse()) {
@@ -93,7 +93,7 @@ Editor::draw_metric_marks (const Metrics& metrics)
} else {
snprintf (buf, sizeof (buf), "%.2f", ts->beats_per_minute());
}
- metric_marks.push_back (new TempoMarker (*this, *tempo_group, ARDOUR_UI::config()->canvasvar_TempoMarker.get(), buf,
+ metric_marks.push_back (new TempoMarker (*this, *tempo_group, ARDOUR_UI::config()->get_canvasvar_TempoMarker(), buf,
*(const_cast<TempoSection*>(ts))));
}
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 73d2ce648b..70eeca2465 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -145,7 +145,7 @@ void
GainMeterBase::set_flat_buttons ()
{
printf("set_flat_butt\n");
-// gain_slider->set_flat_buttons( ARDOUR_UI::config()->flat_buttons.get() );
+// gain_slider->set_flat_buttons( ARDOUR_UI::config()->get_flat_buttons() );
}
GainMeterBase::~GainMeterBase ()
diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc
index 7a01df65f0..6801e80d02 100644
--- a/gtk2_ardour/ghostregion.cc
+++ b/gtk2_ardour/ghostregion.cc
@@ -83,8 +83,8 @@ void
GhostRegion::set_colors ()
{
if (is_automation_ghost()) {
- base_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_GhostTrackBase.get());
- base_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_GhostTrackBase.get());
+ base_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackBase());
+ base_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackBase());
}
}
@@ -138,17 +138,17 @@ AudioGhostRegion::set_colors ()
guint fill_color;
if (is_automation_ghost()) {
- fill_color = ARDOUR_UI::config()->canvasvar_GhostTrackWaveFill.get();
+ fill_color = ARDOUR_UI::config()->get_canvasvar_GhostTrackWaveFill();
}
else {
fill_color = source_track_color(200);
}
for (uint32_t n=0; n < waves.size(); ++n) {
- waves[n]->set_outline_color (ARDOUR_UI::config()->canvasvar_GhostTrackWave.get());
+ waves[n]->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackWave());
waves[n]->set_fill_color (fill_color);
- waves[n]->set_clip_color (ARDOUR_UI::config()->canvasvar_GhostTrackWaveClip.get());
- waves[n]->set_zero_color (ARDOUR_UI::config()->canvasvar_GhostTrackZeroLine.get());
+ waves[n]->set_clip_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackWaveClip());
+ waves[n]->set_zero_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackZeroLine());
}
}
@@ -232,7 +232,7 @@ MidiGhostRegion::set_colors()
for (EventList::iterator it = events.begin(); it != events.end(); ++it) {
(*it)->rect->set_fill_color (fill);
- (*it)->rect->set_outline_color (ARDOUR_UI::config()->canvasvar_GhostTrackMidiOutline.get());
+ (*it)->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackMidiOutline());
}
}
@@ -268,7 +268,7 @@ MidiGhostRegion::add_note (NoteBase* n)
events.push_back (event);
event->rect->set_fill_color (source_track_color(200));
- event->rect->set_outline_color (ARDOUR_UI::config()->canvasvar_GhostTrackMidiOutline.get());
+ event->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackMidiOutline());
MidiStreamView* mv = midi_view();
diff --git a/gtk2_ardour/imageframe_time_axis_view.cc b/gtk2_ardour/imageframe_time_axis_view.cc
index fa351cd8f0..88c97e8670 100644
--- a/gtk2_ardour/imageframe_time_axis_view.cc
+++ b/gtk2_ardour/imageframe_time_axis_view.cc
@@ -52,9 +52,9 @@ ImageFrameTimeAxisView::ImageFrameTimeAxisView (ImageFrameTimeAxis& tv)
canvas_rect (canvas_group, 0.0, 0.0, 1000000.0, tv.current_height())
{
region_color = _trackview.color() ;
- stream_base_color = ARDOUR_UI::config()->canvasvar_ImageTrack.get() ;
+ stream_base_color = ARDOUR_UI::config()->get_canvasvar_ImageTrack() ;
- canvas_rect.property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_ImageTrack.get();
+ canvas_rect.property_outline_color_rgba() = ARDOUR_UI::config()->get_canvasvar_ImageTrack();
canvas_rect.property_fill_color_rgba() = stream_base_color;
canvas_rect.signal_event().connect (sigc::bind (sigc::mem_fun (_trackview.editor, &PublicEditor::canvas_imageframe_view_event), (ArdourCanvas::Item*) &canvas_rect, &tv));
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 9ccff8d9c9..f07e259e7a 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -181,15 +181,15 @@ LevelMeter::setup_meters (int len, int initial_width)
for (int32_t n = nmeters-1; nmeters && n >= 0 ; --n) {
uint32_t b, m, t, c;
if (n < nmidi) {
- b = ARDOUR_UI::config()->canvasvar_MidiMeterColorBase.get();
- m = ARDOUR_UI::config()->canvasvar_MidiMeterColorMid.get();
- t = ARDOUR_UI::config()->canvasvar_MidiMeterColorTop.get();
- c = ARDOUR_UI::config()->canvasvar_MeterColorClip.get();
+ b = ARDOUR_UI::config()->get_canvasvar_MidiMeterColorBase();
+ m = ARDOUR_UI::config()->get_canvasvar_MidiMeterColorMid();
+ t = ARDOUR_UI::config()->get_canvasvar_MidiMeterColorTop();
+ c = ARDOUR_UI::config()->get_canvasvar_MeterColorClip();
} else {
- b = ARDOUR_UI::config()->canvasvar_MeterColorBase.get();
- m = ARDOUR_UI::config()->canvasvar_MeterColorMid.get();
- t = ARDOUR_UI::config()->canvasvar_MeterColorTop.get();
- c = ARDOUR_UI::config()->canvasvar_MeterColorClip.get();
+ b = ARDOUR_UI::config()->get_canvasvar_MeterColorBase();
+ m = ARDOUR_UI::config()->get_canvasvar_MeterColorMid();
+ t = ARDOUR_UI::config()->get_canvasvar_MeterColorTop();
+ c = ARDOUR_UI::config()->get_canvasvar_MeterColorClip();
}
if (meters[n].width != width || meters[n].length != len || color_changed) {
delete meters[n].meter;
diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc
index 1e4809f6c2..e45cf0fb2a 100644
--- a/gtk2_ardour/marker.cc
+++ b/gtk2_ardour/marker.cc
@@ -335,11 +335,11 @@ Marker::setup_line ()
if (_time_bars_line == 0) {
_time_bars_line = new ArdourCanvas::Line (editor.get_time_bars_group());
- _time_bars_line->set_outline_color (ARDOUR_UI::config()->canvasvar_EditPoint.get());
+ _time_bars_line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_EditPoint());
_time_bars_line->Event.connect (sigc::bind (sigc::mem_fun (editor, &PublicEditor::canvas_marker_event), group, this));
_track_canvas_line = new ArdourCanvas::Line (editor.get_track_canvas_group());
- _track_canvas_line->set_outline_color (ARDOUR_UI::config()->canvasvar_EditPoint.get());
+ _track_canvas_line->set_outline_color (ARDOUR_UI::config()->get_canvasvar_EditPoint());
_track_canvas_line->Event.connect (sigc::bind (sigc::mem_fun (editor, &PublicEditor::canvas_marker_event), group, this));
}
@@ -350,7 +350,7 @@ Marker::setup_line ()
_time_bars_line->set_x1 (d.x);
_time_bars_line->set_y0 (d.y);
_time_bars_line->set_y1 (ArdourCanvas::COORD_MAX);
- _time_bars_line->set_outline_color (_selected ? ARDOUR_UI::config()->canvasvar_EditPoint.get() : _color);
+ _time_bars_line->set_outline_color (_selected ? ARDOUR_UI::config()->get_canvasvar_EditPoint() : _color);
_time_bars_line->raise_to_top ();
_time_bars_line->show ();
@@ -359,7 +359,7 @@ Marker::setup_line ()
_track_canvas_line->set_x1 (d.x);
_track_canvas_line->set_y0 (d.y);
_track_canvas_line->set_y1 (ArdourCanvas::COORD_MAX);
- _track_canvas_line->set_outline_color (_selected ? ARDOUR_UI::config()->canvasvar_EditPoint.get() : _color);
+ _track_canvas_line->set_outline_color (_selected ? ARDOUR_UI::config()->get_canvasvar_EditPoint() : _color);
_track_canvas_line->raise_to_top ();
_track_canvas_line->show ();
diff --git a/gtk2_ardour/marker_time_axis_view.cc b/gtk2_ardour/marker_time_axis_view.cc
index 3fc44fa017..e51b9c82f5 100644
--- a/gtk2_ardour/marker_time_axis_view.cc
+++ b/gtk2_ardour/marker_time_axis_view.cc
@@ -49,7 +49,7 @@ MarkerTimeAxisView::MarkerTimeAxisView(MarkerTimeAxis& tv)
: _trackview (tv)
{
region_color = _trackview.color();
- stream_base_color = ARDOUR_UI::config()->canvasvar_MarkerTrack.get();
+ stream_base_color = ARDOUR_UI::config()->get_canvasvar_MarkerTrack();
canvas_group = new ArdourCanvas::Group (*_trackview.canvas_display);
@@ -58,7 +58,7 @@ MarkerTimeAxisView::MarkerTimeAxisView(MarkerTimeAxis& tv)
canvas_rect->property_y1() = 0.0;
canvas_rect->property_x2() = max_framepos;
canvas_rect->property_y2() = (double)20;
- canvas_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerTrack.get();
+ canvas_rect->property_outline_color_rgba() = ARDOUR_UI::config()->get_canvasvar_MarkerTrack();
canvas_rect->property_fill_color_rgba() = stream_base_color;
canvas_rect->signal_event().connect (sigc::bind (sigc::mem_fun (_trackview.editor, &PublicEditor::canvas_marker_time_axis_view_event), canvas_rect, &_trackview));
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 3b8e688ad3..08211b6e84 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -2554,7 +2554,7 @@ MidiRegionView::begin_resizing (bool /*at_front*/)
// calculate the colors: get the color settings
uint32_t fill_color = UINT_RGBA_CHANGE_A(
- ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get(),
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected(),
128);
// make the resize preview notes more transparent and bright
@@ -2567,7 +2567,7 @@ MidiRegionView::begin_resizing (bool /*at_front*/)
0.85));
resize_rect->set_outline_color (NoteBase::calculate_outline (
- ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get()));
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected()));
resize_data->resize_rect = resize_rect;
_resize_data.push_back(resize_data);
@@ -3205,9 +3205,9 @@ MidiRegionView::set_frame_color()
}
if (_selected) {
- f = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
+ f = ARDOUR_UI::config()->get_canvasvar_SelectedFrameBase();
} else if (high_enough_for_name) {
- f= ARDOUR_UI::config()->canvasvar_MidiFrameBase.get();
+ f= ARDOUR_UI::config()->get_canvasvar_MidiFrameBase();
} else {
f = fill_color;
}
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc
index c48a5e77f4..640c0263e1 100644
--- a/gtk2_ardour/midi_streamview.cc
+++ b/gtk2_ardour/midi_streamview.cc
@@ -298,7 +298,7 @@ MidiStreamView::draw_note_lines()
for (int i = lowest_note(); i <= highest_note(); ++i) {
y = floor(note_to_y(i));
- _note_lines->add (prev_y, 1.0, ARDOUR_UI::config()->canvasvar_PianoRollBlackOutline.get());
+ _note_lines->add (prev_y, 1.0, ARDOUR_UI::config()->get_canvasvar_PianoRollBlackOutline());
switch (i % 12) {
case 1:
@@ -306,10 +306,10 @@ MidiStreamView::draw_note_lines()
case 6:
case 8:
case 10:
- color = ARDOUR_UI::config()->canvasvar_PianoRollBlack.get();
+ color = ARDOUR_UI::config()->get_canvasvar_PianoRollBlack();
break;
default:
- color = ARDOUR_UI::config()->canvasvar_PianoRollWhite.get();
+ color = ARDOUR_UI::config()->get_canvasvar_PianoRollWhite();
break;
}
@@ -483,11 +483,11 @@ MidiStreamView::setup_rec_box ()
gdouble const xend = xstart;
uint32_t fill_color;
- fill_color = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+ fill_color = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
ArdourCanvas::Rectangle * rec_rect = new ArdourCanvas::Rectangle (_canvas_group);
rec_rect->set (ArdourCanvas::Rect (xstart, 1, xend, _trackview.current_height() - 1));
- rec_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_RecordingRect.get());
+ rec_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RecordingRect());
rec_rect->set_fill_color (fill_color);
rec_rect->lower_to_bottom();
@@ -560,9 +560,9 @@ MidiStreamView::color_handler ()
draw_note_lines ();
if (_trackview.is_midi_track()) {
- canvas_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_MidiTrackBase.get());
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_MidiTrackBase());
} else {
- canvas_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_MidiBusBase.get());
+ canvas_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_MidiBusBase());
}
}
diff --git a/gtk2_ardour/mono_panner.cc b/gtk2_ardour/mono_panner.cc
index daec1eede1..e29ec01b70 100644
--- a/gtk2_ardour/mono_panner.cc
+++ b/gtk2_ardour/mono_panner.cc
@@ -435,12 +435,12 @@ MonoPanner::on_key_press_event (GdkEventKey* ev)
void
MonoPanner::set_colors ()
{
- colors.fill = ARDOUR_UI::config()->canvasvar_MonoPannerFill.get();
- colors.outline = ARDOUR_UI::config()->canvasvar_MonoPannerOutline.get();
- colors.text = ARDOUR_UI::config()->canvasvar_MonoPannerText.get();
- colors.background = ARDOUR_UI::config()->canvasvar_MonoPannerBackground.get();
- colors.pos_outline = ARDOUR_UI::config()->canvasvar_MonoPannerPositionOutline.get();
- colors.pos_fill = ARDOUR_UI::config()->canvasvar_MonoPannerPositionFill.get();
+ colors.fill = ARDOUR_UI::config()->get_canvasvar_MonoPannerFill();
+ colors.outline = ARDOUR_UI::config()->get_canvasvar_MonoPannerOutline();
+ colors.text = ARDOUR_UI::config()->get_canvasvar_MonoPannerText();
+ colors.background = ARDOUR_UI::config()->get_canvasvar_MonoPannerBackground();
+ colors.pos_outline = ARDOUR_UI::config()->get_canvasvar_MonoPannerPositionOutline();
+ colors.pos_fill = ARDOUR_UI::config()->get_canvasvar_MonoPannerPositionFill();
}
void
diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc
index d4a2a63a92..e2ff2c1797 100644
--- a/gtk2_ardour/note_base.cc
+++ b/gtk2_ardour/note_base.cc
@@ -98,7 +98,7 @@ NoteBase::show_velocity()
if (!_text) {
_text = new Text (_item->parent ());
_text->set_ignore_events (true);
- _text->set_color (ARDOUR_UI::config()->canvasvar_MidiNoteVelocityText.get());
+ _text->set_color (ARDOUR_UI::config()->get_canvasvar_MidiNoteVelocityText());
_text->set_alignment (Pango::ALIGN_CENTER);
}
@@ -123,8 +123,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()->canvasvar_MidiNoteInactiveChannel.get());
- set_outline_color(calculate_outline(ARDOUR_UI::config()->canvasvar_MidiNoteInactiveChannel.get()));
+ set_fill_color(ARDOUR_UI::config()->get_canvasvar_MidiNoteInactiveChannel());
+ set_outline_color(calculate_outline(ARDOUR_UI::config()->get_canvasvar_MidiNoteInactiveChannel()));
} else {
// set the color according to the notes selection state
set_selected(_selected);
@@ -202,7 +202,7 @@ NoteBase::set_selected(bool selected)
set_fill_color (base_color ());
if (_selected) {
- set_outline_color(calculate_outline(ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get()));
+ set_outline_color(calculate_outline(ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected()));
if(_region.channel_selector_scoped_note() != 0){
_region.channel_selector_scoped_note()->hide_channel_selector();
@@ -236,13 +236,13 @@ NoteBase::base_color()
SCALE_USHORT_TO_UINT8_T(color.get_green()),
SCALE_USHORT_TO_UINT8_T(color.get_blue()),
opacity),
- ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get(), 0.5);
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected(), 0.5);
}
case ChannelColors:
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (NoteBase::midi_channel_colors[_note->channel()],
opacity),
- ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get(), 0.5);
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected(), 0.5);
default:
return meter_style_fill_color(_note->velocity(), selected());
diff --git a/gtk2_ardour/note_base.h b/gtk2_ardour/note_base.h
index 9680091c75..289a5fa671 100644
--- a/gtk2_ardour/note_base.h
+++ b/gtk2_ardour/note_base.h
@@ -112,25 +112,25 @@ public:
if (selected) {
if (vel < 64) {
return UINT_INTERPOLATE(
- ARDOUR_UI::config()->canvasvar_SelectedMidiNoteColorBase.get(),
- ARDOUR_UI::config()->canvasvar_SelectedMidiNoteColorMid.get(),
+ ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorBase(),
+ ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
(vel / (double)63.0));
} else {
return UINT_INTERPOLATE(
- ARDOUR_UI::config()->canvasvar_SelectedMidiNoteColorMid.get(),
- ARDOUR_UI::config()->canvasvar_SelectedMidiNoteColorTop.get(),
+ ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
+ ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorTop(),
((vel-64) / (double)63.0));
}
} else {
if (vel < 64) {
return UINT_INTERPOLATE(
- ARDOUR_UI::config()->canvasvar_MidiNoteColorBase.get(),
- ARDOUR_UI::config()->canvasvar_MidiNoteColorMid.get(),
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteColorBase(),
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
(vel / (double)63.0));
} else {
return UINT_INTERPOLATE(
- ARDOUR_UI::config()->canvasvar_MidiNoteColorMid.get(),
- ARDOUR_UI::config()->canvasvar_MidiNoteColorTop.get(),
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
+ ARDOUR_UI::config()->get_canvasvar_MidiNoteColorTop(),
((vel-64) / (double)63.0));
}
}
diff --git a/gtk2_ardour/patch_change.cc b/gtk2_ardour/patch_change.cc
index 23592dcc88..df824f4342 100644
--- a/gtk2_ardour/patch_change.cc
+++ b/gtk2_ardour/patch_change.cc
@@ -53,8 +53,8 @@ PatchChange::PatchChange(
_flag = new ArdourCanvas::Flag (
parent,
height,
- ARDOUR_UI::config()->canvasvar_MidiPatchChangeOutline.get(),
- ARDOUR_UI::config()->canvasvar_MidiPatchChangeFill.get(),
+ ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeOutline(),
+ ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeFill(),
ArdourCanvas::Duple (x, y)
);
diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc
index 2edad1cd16..2d3221da26 100644
--- a/gtk2_ardour/region_view.cc
+++ b/gtk2_ardour/region_view.cc
@@ -234,7 +234,7 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr
return;
}
- uint32_t const color = ARDOUR_UI::config()->canvasvar_Silence.get();
+ uint32_t const color = ARDOUR_UI::config()->get_canvasvar_Silence();
for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) {
@@ -275,7 +275,7 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr
_silence_text = new ArdourCanvas::Text (group);
_silence_text->set_ignore_events (true);
_silence_text->set_font_description (get_font_for_style (N_("SilenceText")));
- _silence_text->set_color (ARDOUR_UI::config()->canvasvar_SilenceText.get());
+ _silence_text->set_color (ARDOUR_UI::config()->get_canvasvar_SilenceText());
/* both positions are relative to the region start offset in source */
@@ -787,7 +787,7 @@ RegionView::update_coverage_frames (LayerDisplay d)
bool me = false;
/* the color that will be used to show parts of regions that will not be heard */
- uint32_t const non_playing_color = ARDOUR_UI::config()->canvasvar_CoveredRegion.get ();
+ uint32_t const non_playing_color = ARDOUR_UI::config()->get_canvasvar_CoveredRegion ();
while (t < end) {
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 904968b9ab..2e3098bf47 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -774,8 +774,8 @@ RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layer
if (timestretch_rect == 0) {
timestretch_rect = new ArdourCanvas::Rectangle (canvas_display ());
- timestretch_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_TimeStretchFill.get());
- timestretch_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TimeStretchOutline.get());
+ timestretch_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchFill());
+ timestretch_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchOutline());
}
timestretch_rect->show ();
@@ -1612,11 +1612,11 @@ RouteTimeAxisView::color_handler ()
{
//case cTimeStretchOutline:
if (timestretch_rect) {
- timestretch_rect->set_outline_color (ARDOUR_UI::config()->canvasvar_TimeStretchOutline.get());
+ timestretch_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchOutline());
}
//case cTimeStretchFill:
if (timestretch_rect) {
- timestretch_rect->set_fill_color (ARDOUR_UI::config()->canvasvar_TimeStretchFill.get());
+ timestretch_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchFill());
}
reset_meter();
diff --git a/gtk2_ardour/shuttle_control.cc b/gtk2_ardour/shuttle_control.cc
index 504cc2a300..fa2c48bde3 100644
--- a/gtk2_ardour/shuttle_control.cc
+++ b/gtk2_ardour/shuttle_control.cc
@@ -112,7 +112,7 @@ ShuttleControl::on_size_allocate (Gtk::Allocation& alloc)
//background
pattern = cairo_pattern_create_linear (0, 0, 0, alloc.get_height());
- uint32_t col = ARDOUR_UI::config()->canvasvar_Shuttle.get();
+ uint32_t col = ARDOUR_UI::config()->get_canvasvar_Shuttle();
int r,b,g,a;
UINT_TO_RGBA(col, &r, &g, &b, &a);
cairo_pattern_add_color_stop_rgb (pattern, 0.0, r/400.0, g/400.0, b/400.0);
diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc
index 721567bf10..4e5c6de959 100644
--- a/gtk2_ardour/stereo_panner.cc
+++ b/gtk2_ardour/stereo_panner.cc
@@ -615,23 +615,23 @@ StereoPanner::on_key_press_event (GdkEventKey* ev)
void
StereoPanner::set_colors ()
{
- colors[Normal].fill = ARDOUR_UI::config()->canvasvar_StereoPannerFill.get();
- colors[Normal].outline = ARDOUR_UI::config()->canvasvar_StereoPannerOutline.get();
- colors[Normal].text = ARDOUR_UI::config()->canvasvar_StereoPannerText.get();
- colors[Normal].background = ARDOUR_UI::config()->canvasvar_StereoPannerBackground.get();
- colors[Normal].rule = ARDOUR_UI::config()->canvasvar_StereoPannerRule.get();
-
- colors[Mono].fill = ARDOUR_UI::config()->canvasvar_StereoPannerMonoFill.get();
- colors[Mono].outline = ARDOUR_UI::config()->canvasvar_StereoPannerMonoOutline.get();
- colors[Mono].text = ARDOUR_UI::config()->canvasvar_StereoPannerMonoText.get();
- colors[Mono].background = ARDOUR_UI::config()->canvasvar_StereoPannerMonoBackground.get();
- colors[Mono].rule = ARDOUR_UI::config()->canvasvar_StereoPannerRule.get();
-
- colors[Inverted].fill = ARDOUR_UI::config()->canvasvar_StereoPannerInvertedFill.get();
- colors[Inverted].outline = ARDOUR_UI::config()->canvasvar_StereoPannerInvertedOutline.get();
- colors[Inverted].text = ARDOUR_UI::config()->canvasvar_StereoPannerInvertedText.get();
- colors[Inverted].background = ARDOUR_UI::config()->canvasvar_StereoPannerInvertedBackground.get();
- colors[Inverted].rule = ARDOUR_UI::config()->canvasvar_StereoPannerRule.get();
+ colors[Normal].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerFill();
+ colors[Normal].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerOutline();
+ colors[Normal].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerText();
+ colors[Normal].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerBackground();
+ colors[Normal].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
+
+ colors[Mono].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoFill();
+ colors[Mono].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoOutline();
+ colors[Mono].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoText();
+ colors[Mono].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoBackground();
+ colors[Mono].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
+
+ colors[Inverted].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedFill();
+ colors[Inverted].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedOutline();
+ colors[Inverted].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedText();
+ colors[Inverted].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedBackground();
+ colors[Inverted].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
}
void
diff --git a/gtk2_ardour/sys_ex.cc b/gtk2_ardour/sys_ex.cc
index 94ee5302e3..2097de4fa9 100644
--- a/gtk2_ardour/sys_ex.cc
+++ b/gtk2_ardour/sys_ex.cc
@@ -36,8 +36,8 @@ SysEx::SysEx (
_flag = new ArdourCanvas::Flag (
parent,
height,
- ARDOUR_UI::config()->canvasvar_MidiSysExOutline.get(),
- ARDOUR_UI::config()->canvasvar_MidiSysExFill.get(),
+ ARDOUR_UI::config()->get_canvasvar_MidiSysExOutline(),
+ ARDOUR_UI::config()->get_canvasvar_MidiSysExFill(),
ArdourCanvas::Duple (x, y)
);
diff --git a/gtk2_ardour/tempo_lines.cc b/gtk2_ardour/tempo_lines.cc
index 1379fafec4..282d8f62dd 100644
--- a/gtk2_ardour/tempo_lines.cc
+++ b/gtk2_ardour/tempo_lines.cc
@@ -134,12 +134,12 @@ TempoLines::draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
for (i = begin; i != end; ++i) {
if ((*i).is_bar()) {
- color = ARDOUR_UI::config()->canvasvar_MeasureLineBar.get();
+ color = ARDOUR_UI::config()->get_canvasvar_MeasureLineBar();
} else {
if (beat_density > 2.0) {
continue; /* only draw beat lines if the gaps between beats are large. */
}
- color = ARDOUR_UI::config()->canvasvar_MeasureLineBeat.get();
+ color = ARDOUR_UI::config()->get_canvasvar_MeasureLineBeat();
}
xpos = rint(((framepos_t)(*i).frame) / (double)samples_per_pixel);
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index 8a350fca49..b1e549f29e 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -60,6 +60,8 @@ ThemeManager::ThemeManager()
, flat_buttons (_("Draw \"flat\" buttons"))
, waveform_gradient_depth (0, 1.0, 0.1)
, waveform_gradient_depth_label (_("Waveforms color gradient depth"))
+ , timeline_item_gradient_depth (0, 2.0, 0.1)
+ , timeline_item_gradient_depth_label (_("Timeline item gradient depth"))
{
set_title (_("Theme Manager"));
@@ -101,13 +103,20 @@ ThemeManager::ThemeManager()
hbox->set_spacing (6);
hbox->pack_start (waveform_gradient_depth, true, true);
hbox->pack_start (waveform_gradient_depth_label, false, false);
+ vbox->pack_start (*hbox, PACK_SHRINK);
+
+ hbox = Gtk::manage (new Gtk::HBox());
+ hbox->set_spacing (6);
+ hbox->pack_start (timeline_item_gradient_depth, true, true);
+ hbox->pack_start (timeline_item_gradient_depth_label, false, false);
vbox->pack_start (*hbox, PACK_SHRINK);
vbox->pack_start (scroller);
add (*vbox);
waveform_gradient_depth.set_update_policy (Gtk::UPDATE_DELAYED);
-
+ timeline_item_gradient_depth.set_update_policy (Gtk::UPDATE_DELAYED);
+
color_display.signal_button_press_event().connect (sigc::mem_fun (*this, &ThemeManager::button_press_event), false);
color_dialog.get_colorsel()->set_has_opacity_control (true);
@@ -120,6 +129,7 @@ ThemeManager::ThemeManager()
reset_button.signal_clicked().connect (sigc::mem_fun (*this, &ThemeManager::reset_canvas_colors));
flat_buttons.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_flat_buttons_toggled));
waveform_gradient_depth.signal_value_changed().connect (sigc::mem_fun (*this, &ThemeManager::on_waveform_gradient_depth_change));
+ timeline_item_gradient_depth.signal_value_changed().connect (sigc::mem_fun (*this, &ThemeManager::on_timeline_item_gradient_depth_change));
set_size_request (-1, 400);
setup_theme ();
@@ -249,7 +259,7 @@ load_rc_file (const string& filename, bool themechange)
void
ThemeManager::on_flat_buttons_toggled ()
{
- ARDOUR_UI::config()->flat_buttons.set (flat_buttons.get_active());
+ ARDOUR_UI::config()->set_flat_buttons (flat_buttons.get_active());
ARDOUR_UI::config()->set_dirty ();
ArdourButton::set_flat_buttons (flat_buttons.get_active());
/* force a redraw */
@@ -261,24 +271,34 @@ ThemeManager::on_waveform_gradient_depth_change ()
{
double v = waveform_gradient_depth.get_value();
- ARDOUR_UI::config()->waveform_gradient_depth.set (v);
+ ARDOUR_UI::config()->set_waveform_gradient_depth (v);
ARDOUR_UI::config()->set_dirty ();
ArdourCanvas::WaveView::set_global_gradient_depth (v);
}
+
+void
+ThemeManager::on_timeline_item_gradient_depth_change ()
+{
+ double v = timeline_item_gradient_depth.get_value();
+
+ ARDOUR_UI::config()->set_timeline_item_gradient_depth (v);
+ ARDOUR_UI::config()->set_dirty ();
+}
+
void
ThemeManager::on_dark_theme_button_toggled()
{
if (!dark_button.get_active()) return;
if (HACK_PROFILE_IS_SAE()){
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark_sae.rc");
+ ARDOUR_UI::config()->set_ui_rc_file("ardour3_ui_dark_sae.rc");
} else {
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark.rc");
+ ARDOUR_UI::config()->set_ui_rc_file("ardour3_ui_dark.rc");
}
ARDOUR_UI::config()->set_dirty ();
- load_rc_file (ARDOUR_UI::config()->ui_rc_file.get(), true);
+ load_rc_file (ARDOUR_UI::config()->get_ui_rc_file(), true);
}
void
@@ -287,12 +307,12 @@ ThemeManager::on_light_theme_button_toggled()
if (!light_button.get_active()) return;
if (HACK_PROFILE_IS_SAE()){
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_light_sae.rc");
+ ARDOUR_UI::config()->set_ui_rc_file("ardour3_ui_light_sae.rc");
} else {
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_light.rc");
+ ARDOUR_UI::config()->set_ui_rc_file("ardour3_ui_light.rc");
}
- load_rc_file (ARDOUR_UI::config()->ui_rc_file.get(), true);
+ load_rc_file (ARDOUR_UI::config()->get_ui_rc_file(), true);
}
void
@@ -365,7 +385,7 @@ ThemeManager::setup_theme ()
string rcfile = Glib::getenv("ARDOUR3_UI_RC", env_defined);
if(!env_defined) {
- rcfile = ARDOUR_UI::config()->ui_rc_file.get();
+ rcfile = ARDOUR_UI::config()->get_ui_rc_file();
}
if (rcfile == "ardour3_ui_dark.rc" || rcfile == "ardour3_ui_dark_sae.rc") {
@@ -374,8 +394,9 @@ ThemeManager::setup_theme ()
light_button.set_active();
}
- flat_buttons.set_active (ARDOUR_UI::config()->flat_buttons.get());
- waveform_gradient_depth.set_value (ARDOUR_UI::config()->waveform_gradient_depth.get());
+ flat_buttons.set_active (ARDOUR_UI::config()->get_flat_buttons());
+ waveform_gradient_depth.set_value (ARDOUR_UI::config()->get_waveform_gradient_depth());
+ timeline_item_gradient_depth.set_value (ARDOUR_UI::config()->get_timeline_item_gradient_depth());
load_rc_file(rcfile, false);
}
diff --git a/gtk2_ardour/theme_manager.h b/gtk2_ardour/theme_manager.h
index 225f26ee79..8ce34ccd57 100644
--- a/gtk2_ardour/theme_manager.h
+++ b/gtk2_ardour/theme_manager.h
@@ -45,6 +45,7 @@ class ThemeManager : public ArdourWindow
void on_light_theme_button_toggled ();
void on_flat_buttons_toggled ();
void on_waveform_gradient_depth_change ();
+ void on_timeline_item_gradient_depth_change ();
private:
struct ColorDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
@@ -73,6 +74,8 @@ class ThemeManager : public ArdourWindow
Gtk::CheckButton flat_buttons;
Gtk::HScale waveform_gradient_depth;
Gtk::Label waveform_gradient_depth_label;
+ Gtk::HScale timeline_item_gradient_depth;
+ Gtk::Label timeline_item_gradient_depth_label;
bool button_press_event (GdkEventButton*);
};
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc
index 7d30ffed49..c54b26a1ea 100644
--- a/gtk2_ardour/time_axis_view.cc
+++ b/gtk2_ardour/time_axis_view.cc
@@ -944,7 +944,7 @@ TimeAxisView::get_selection_rect (uint32_t id)
rect->rect = new ArdourCanvas::Rectangle (selection_group);
rect->rect->set_outline_what (0);
- rect->rect->set_fill_color (ARDOUR_UI::config()->canvasvar_SelectionRect.get());
+ rect->rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_SelectionRect());
rect->start_trim = new ArdourCanvas::Rectangle (selection_group);
rect->start_trim->set_outline_what (0);
@@ -1116,26 +1116,26 @@ TimeAxisView::color_handler ()
for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- (*i)->rect->set_fill_color (ARDOUR_UI::config()->canvasvar_SelectionRect.get());
- (*i)->rect->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_SelectionRect());
+ (*i)->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
- (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->canvasvar_Selection.get());
- (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->get_canvasvar_Selection());
+ (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
- (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->canvasvar_Selection.get());
- (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->get_canvasvar_Selection());
+ (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
}
for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- (*i)->rect->set_fill_color (ARDOUR_UI::config()->canvasvar_SelectionRect.get());
- (*i)->rect->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_SelectionRect());
+ (*i)->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
- (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->canvasvar_Selection.get());
- (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->get_canvasvar_Selection());
+ (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
- (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->canvasvar_Selection.get());
- (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->canvasvar_Selection.get());
+ (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->get_canvasvar_Selection());
+ (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->get_canvasvar_Selection());
}
}
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index aa3c9029d7..0a20cea3dd 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -17,6 +17,8 @@
*/
+#include <utility>
+
#include "pbd/error.h"
#include "pbd/stacktrace.h"
@@ -30,6 +32,7 @@
#include "canvas/rectangle.h"
#include "canvas/debug.h"
#include "canvas/text.h"
+#include "canvas/utils.h"
#include "ardour_ui.h"
/*
@@ -169,8 +172,8 @@ TimeAxisViewItem::init (const string& it_name, double fpp, Gdk::Color const & ba
vestigial_frame = new ArdourCanvas::Rectangle (group, ArdourCanvas::Rect (0.0, 1.0, 2.0, trackview.current_height()));
vestigial_frame->hide ();
- vestigial_frame->set_outline_color (ARDOUR_UI::config()->canvasvar_VestigialFrame.get());
- vestigial_frame->set_fill_color (ARDOUR_UI::config()->canvasvar_VestigialFrame.get());
+ vestigial_frame->set_outline_color (ARDOUR_UI::config()->get_canvasvar_VestigialFrame());
+ vestigial_frame->set_fill_color (ARDOUR_UI::config()->get_canvasvar_VestigialFrame());
if (visibility & ShowFrame) {
frame = new ArdourCanvas::Rectangle (group,
@@ -179,9 +182,9 @@ TimeAxisViewItem::init (const string& it_name, double fpp, Gdk::Color const & ba
trackview.current_height()));
if (_recregion) {
- frame->set_outline_color (ARDOUR_UI::config()->canvasvar_RecordingRect.get());
+ frame->set_outline_color (ARDOUR_UI::config()->get_canvasvar_RecordingRect());
} else {
- frame->set_outline_color (ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get());
+ frame->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame());
}
} else {
@@ -240,6 +243,7 @@ TimeAxisViewItem::init (const string& it_name, double fpp, Gdk::Color const & ba
set_position (start, this);
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&TimeAxisViewItem::parameter_changed, this, _1), gui_context ());
+ ARDOUR_UI::config()->ParameterChanged.connect (sigc::mem_fun (*this, &TimeAxisViewItem::parameter_changed));
}
TimeAxisViewItem::~TimeAxisViewItem()
@@ -722,7 +726,7 @@ TimeAxisViewItem::set_frame_color()
if (_selected) {
- f = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
+ f = ARDOUR_UI::config()->get_canvasvar_SelectedFrameBase();
if (fill_opacity) {
f = UINT_RGBA_CHANGE_A (f, fill_opacity);
@@ -735,11 +739,11 @@ TimeAxisViewItem::set_frame_color()
} else {
if (_recregion) {
- f = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+ f = ARDOUR_UI::config()->get_canvasvar_RecordingRect();
} else {
if (high_enough_for_name && !Config->get_color_regions_using_track_color()) {
- f = ARDOUR_UI::config()->canvasvar_FrameBase.get();
+ f = ARDOUR_UI::config()->get_canvasvar_FrameBase();
} else {
f = fill_color;
}
@@ -755,12 +759,13 @@ TimeAxisViewItem::set_frame_color()
}
frame->set_fill_color (f);
+ set_frame_gradient ();
if (!_recregion) {
if (_selected) {
- f = ARDOUR_UI::config()->canvasvar_SelectedTimeAxisFrame.get();
+ f = ARDOUR_UI::config()->get_canvasvar_SelectedTimeAxisFrame();
} else {
- f = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
+ f = ARDOUR_UI::config()->get_canvasvar_TimeAxisFrame();
}
if (!rect_visible) {
@@ -771,6 +776,38 @@ TimeAxisViewItem::set_frame_color()
}
}
+void
+TimeAxisViewItem::set_frame_gradient ()
+{
+ if (ARDOUR_UI::config()->get_timeline_item_gradient_depth() == 0.0) {
+ frame->set_gradient (ArdourCanvas::Fill::StopList (), 0);
+ return;
+ }
+
+ ArdourCanvas::Fill::StopList stops;
+ double r, g, b, a;
+ double h, s, v;
+ ArdourCanvas::Color f (frame->fill_color());
+
+ /* need to get alpha value */
+ ArdourCanvas::color_to_rgba (f, r, g, b, a);
+
+ stops.push_back (std::make_pair (0.0, f));
+
+ /* now a darker version */
+
+ ArdourCanvas::color_to_hsv (f, h, s, v);
+ s *= ARDOUR_UI::config()->get_timeline_item_gradient_depth();
+ if (s > 1.0) {
+ s = 1.0;
+ }
+
+ ArdourCanvas::Color darker = ArdourCanvas::hsv_to_color (h, s, v, a);
+ stops.push_back (std::make_pair (1.0, darker));
+
+ frame->set_gradient (stops, _height);
+}
+
/**
* Set the colors of the start and end trim handle depending on object state
*/
@@ -779,11 +816,11 @@ TimeAxisViewItem::set_trim_handle_colors()
{
if (frame_handle_start) {
if (position_locked) {
- frame_handle_start->set_fill_color (ARDOUR_UI::config()->canvasvar_TrimHandleLocked.get());
- frame_handle_end->set_fill_color (ARDOUR_UI::config()->canvasvar_TrimHandleLocked.get());
+ frame_handle_start->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TrimHandleLocked());
+ frame_handle_end->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TrimHandleLocked());
} else {
- frame_handle_start->set_fill_color (RGBA_TO_UINT (1, 1, 1, 0)); //ARDOUR_UI::config()->canvasvar_TrimHandle.get();
- frame_handle_end->set_fill_color (RGBA_TO_UINT (1, 1, 1, 0)); //ARDOUR_UI::config()->canvasvar_TrimHandle.get();
+ frame_handle_start->set_fill_color (RGBA_TO_UINT (1, 1, 1, 0)); //ARDOUR_UI::config()->get_canvasvar_TrimHandle();
+ frame_handle_end->set_fill_color (RGBA_TO_UINT (1, 1, 1, 0)); //ARDOUR_UI::config()->get_canvasvar_TrimHandle();
}
}
}
@@ -968,5 +1005,7 @@ TimeAxisViewItem::parameter_changed (string p)
{
if (p == "color-regions-using-track-color") {
set_frame_color ();
+ } else if (p == "timeline-item-gradient-depth") {
+ set_frame_gradient ();
}
}
diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h
index dd6ebe0120..f6f72b77bd 100644
--- a/gtk2_ardour/time_axis_view_item.h
+++ b/gtk2_ardour/time_axis_view_item.h
@@ -161,6 +161,7 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
virtual void compute_colors (Gdk::Color const &);
virtual void set_colors();
virtual void set_frame_color();
+ virtual void set_frame_gradient ();
void set_trim_handle_colors();
virtual void reset_width_dependent_items (double);
diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h
index f96659de76..ed8a88c1da 100644
--- a/gtk2_ardour/ui_config.h
+++ b/gtk2_ardour/ui_config.h
@@ -93,16 +93,33 @@ class UIConfiguration : public PBD::Stateful
sigc::signal<void,const char*> ParameterChanged;
+#undef UI_CONFIG_VARIABLE
+#define UI_CONFIG_VARIABLE(Type,var,name,value) \
+ Type get_##var () const { return var.get(); } \
+ bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
+#include "ui_config_vars.h"
#undef UI_CONFIG_VARIABLE
+#undef CANVAS_VARIABLE
+#define CANVAS_VARIABLE(var,name) \
+ uint32_t get_##var () const { return var.get(); } \
+ bool set_##var (uint32_t val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
+#include "canvas_vars.h"
#undef CANVAS_VARIABLE
-#define UI_CONFIG_VARIABLE(Type,var,name,val) UIConfigVariable<Type> var;
-#define CANVAS_VARIABLE(var,name) UIConfigVariable<uint32_t> var;
+
+ private:
+
+ /* declare variables */
+
+#undef UI_CONFIG_VARIABLE
+#define UI_CONFIG_VARIABLE(Type,var,name,value) UIConfigVariable<Type> var;
#include "ui_config_vars.h"
+#undef UI_CONFIG_VARIABLE
+
+#undef CANVAS_VARIABLE
+#define CANVAS_VARIABLE(var,name) UIConfigVariable<uint32_t> var;
#include "canvas_vars.h"
-#undef UI_CONFIG_VARIABLE
#undef CANVAS_VARIABLE
- private:
XMLNode& state ();
bool _dirty;
};
diff --git a/gtk2_ardour/ui_config_vars.h b/gtk2_ardour/ui_config_vars.h
index 40a10d79a0..9471c7a1eb 100644
--- a/gtk2_ardour/ui_config_vars.h
+++ b/gtk2_ardour/ui_config_vars.h
@@ -20,4 +20,5 @@
UI_CONFIG_VARIABLE(std::string, ui_rc_file, "ui-rc-file", "ardour3_ui_dark.rc")
UI_CONFIG_VARIABLE(bool, flat_buttons, "flat-buttons", false)
UI_CONFIG_VARIABLE(float, waveform_gradient_depth, "waveform-gradient-depth", 0.6)
+UI_CONFIG_VARIABLE(float, timeline_item_gradient_depth, "timeline-item-gradient-depth", 1.3)
diff --git a/libs/canvas/canvas/fill.h b/libs/canvas/canvas/fill.h
index fa6b12e9f8..ae87edb2dc 100644
--- a/libs/canvas/canvas/fill.h
+++ b/libs/canvas/canvas/fill.h
@@ -20,6 +20,7 @@
#ifndef __CANVAS_FILL_H__
#define __CANVAS_FILL_H__
+#include <vector>
#include <stdint.h>
#include "canvas/item.h"
@@ -40,12 +41,17 @@ public:
bool fill () const {
return _fill;
}
+
+ typedef std::vector<std::pair<double,Color> > StopList;
+ void set_gradient (StopList const & stops, double height);
+
protected:
void setup_fill_context (Cairo::RefPtr<Cairo::Context>) const;
Color _fill_color;
bool _fill;
+ Cairo::RefPtr<Cairo::LinearGradient> _gradient;
};
}
diff --git a/libs/canvas/fill.cc b/libs/canvas/fill.cc
index da475a9881..339549f8be 100644
--- a/libs/canvas/fill.cc
+++ b/libs/canvas/fill.cc
@@ -59,5 +59,31 @@ Fill::set_fill (bool fill)
void
Fill::setup_fill_context (Cairo::RefPtr<Cairo::Context> context) const
{
- set_source_rgba (context, _fill_color);
+ if (_gradient) {
+ context->set_source (_gradient);
+ } else {
+ set_source_rgba (context, _fill_color);
+ }
+}
+
+void
+Fill::set_gradient (StopList const & stops, double height)
+{
+ begin_visual_change ();
+
+ if (stops.empty()) {
+ _gradient.clear();
+ } else {
+
+ double r, g, b, a;
+
+ _gradient = Cairo::LinearGradient::create (0, 0, 0, height);
+
+ for (StopList::const_iterator s = stops.begin(); s != stops.end(); ++s) {
+ color_to_rgba (s->second, r, g, b, a);
+ _gradient->add_color_stop_rgba (s->first, r, g, b, a);
+ }
+ }
+
+ end_visual_change ();
}