X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fghostregion.cc;h=71bc8de69401f434a014ca055ff7b8be08a3bc23;hb=29f0d9732eb68fcaa22219cedddddd47bcaa8c17;hp=f6a081ca35855914cd72c83c04cbc9f3d94ef055;hpb=183f69970c6c436b102f8b2fbe1bc6070c9e9bfe;p=ardour.git diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc index f6a081ca35..71bc8de694 100644 --- a/gtk2_ardour/ghostregion.cc +++ b/gtk2_ardour/ghostregion.cc @@ -1,9 +1,32 @@ -#include "canvas-simplerect.h" +/* + Copyright (C) 2000-2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "simplerect.h" +#include "waveview.h" #include "ghostregion.h" #include "automation_time_axis.h" #include "rgb_macros.h" +#include "ardour_ui.h" using namespace Editing; +using namespace ArdourCanvas; +using namespace ARDOUR; GhostRegion::GhostRegion (AutomationTimeAxisView& atv, double initial_pos) : trackview (atv) @@ -13,17 +36,17 @@ GhostRegion::GhostRegion (AutomationTimeAxisView& atv, double initial_pos) // "x", initial_pos, // "y", 0.0, // NULL); - group = new Gnome::Canvas::Group (*trackview.canvas_display); - group->set_property ("x", initial_pos); - group->set_property ("y", 0.0); - - base_rect = new Gnome::Canvas::SimpleRect (*group); - base_rect->set_property ("x1", (double) 0.0); - base_rect->set_property ("y1", (double) 0.0); - base_rect->set_property ("y2", (double) trackview.height); - base_rect->set_property ("outline_what", (guint32) 0); - base_rect->set_property ("outline_color_rgba", color_map[cGhostTrackBaseOutline]); - base_rect->set_property ("fill_color_rgba", color_map[cGhostTrackBaseFill]); + group = new ArdourCanvas::Group (*trackview.canvas_display); + group->property_x() = initial_pos; + group->property_y() = 0.0; + + base_rect = new ArdourCanvas::SimpleRect (*group); + base_rect->property_x1() = (double) 0.0; + base_rect->property_y1() = (double) 0.0; + base_rect->property_y2() = (double) trackview.height; + base_rect->property_outline_what() = (guint32) 0; + base_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); + base_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); group->lower_to_bottom (); atv.add_ghost (this); @@ -32,36 +55,51 @@ GhostRegion::GhostRegion (AutomationTimeAxisView& atv, double initial_pos) GhostRegion::~GhostRegion () { GoingAway (this); - gtk_object_destroy (GTK_OBJECT(group)); + delete base_rect; + delete group; } void GhostRegion::set_samples_per_unit (double spu) { - for (vector::iterator i = waves.begin(); i != waves.end(); ++i) { - gnome_canvas_item_set ((*i), "samples_per_unit", spu, NULL); + for (vector::iterator i = waves.begin(); i != waves.end(); ++i) { + (*i)->property_samples_per_unit() = spu; } } void GhostRegion::set_duration (double units) { - base_rect->set_property ("x2", units); + base_rect->property_x2() = units; } void GhostRegion::set_height () { gdouble ht; - vector::iterator i; + vector::iterator i; uint32_t n; - base_rect->set_property ("y2", (double) trackview.height); + base_rect->property_y2() = (double) trackview.height; ht = ((trackview.height) / (double) waves.size()); for (n = 0, i = waves.begin(); i != waves.end(); ++i, ++n) { gdouble yoff = n * ht; - gnome_canvas_item_set ((*i), "height", ht, "y", yoff, NULL); + (*i)->property_height() = ht; + (*i)->property_y() = yoff; } } +void +GhostRegion::set_colors () +{ + base_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); + base_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); + + for (uint32_t n=0; n < waves.size(); ++n) { + waves[n]->property_wave_color() = ARDOUR_UI::config()->canvasvar_GhostTrackWave.get(); + + waves[n]->property_clip_color() = ARDOUR_UI::config()->canvasvar_GhostTrackWaveClip.get(); + waves[n]->property_zero_color() = ARDOUR_UI::config()->canvasvar_GhostTrackZeroLine.get(); + } +}