enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / gtk2_ardour / control_point.cc
index 8e05ad0a0b1b57367489db43177a66012c6b86a9..2a457c52f1ec487a19fcb06c375ccdb5d5644859 100644 (file)
 
 #include "control_point.h"
 #include "automation_line.h"
-#include "ardour_ui.h"
 #include "public_editor.h"
+#include "ui_config.h"
 
 #include "canvas/rectangle.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
@@ -44,16 +44,13 @@ ControlPoint::ControlPoint (AutomationLine& al)
        _size = 4.0;
 
        _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_outline_width (1);
+       _item->set_fill (true);
+       _item->set_fill_color (UIConfiguration::instance().color ("control point fill"));
+       _item->set_outline_color (UIConfiguration::instance().color ("control point outline"));
        _item->set_data ("control_point", this);
        _item->Event.connect (sigc::mem_fun (this, &ControlPoint::event_handler));
 
        hide ();
-       set_visible (false);
 }
 
 ControlPoint::ControlPoint (const ControlPoint& other, bool /*dummy_arg_to_force_special_copy_constructor*/)
@@ -72,20 +69,18 @@ ControlPoint::ControlPoint (const ControlPoint& other, bool /*dummy_arg_to_force
        _size = other._size;
 
        _item = new ArdourCanvas::Rectangle (&_line.canvas_group());
-       _item->set_fill (false);
-       _item->set_outline_color (ARDOUR_UI::config()->canvasvar_ControlPointOutline.get());
-       _item->set_outline_width (1);
+       _item->set_fill (true);
+       _item->set_outline_color (UIConfiguration::instance().color ("control point outline"));
 
        /* NOTE: no event handling in copied ControlPoints */
 
        hide ();
-       set_visible (false);
 }
 
 ControlPoint::~ControlPoint ()
 {
        CatchDeletion (this); /* EMIT SIGNAL */
-       
+
        delete _item;
 }
 
@@ -107,29 +102,15 @@ ControlPoint::show()
        _item->show();
 }
 
-void
-ControlPoint::set_visible (bool yn)
-{
-       _item->property_draw() = (gboolean) yn;
-}
-
 bool
 ControlPoint::visible () const
 {
-       return _item->property_draw ();
+       return _item->visible ();
 }
 
 void
 ControlPoint::reset (double x, double y, AutomationList::iterator mi, uint32_t vi, ShapeType shape)
 {
-       /* If this is too big, libart will confuse itself and segfault after it casts the bounding box
-          of this automation line to ints.  Sigh.
-       */
-
-       if (x > INT32_MAX) {
-               x = INT32_MAX;
-       }
-
        _model = mi;
        _view_index = vi;
        move_to (x, y, shape);
@@ -138,16 +119,13 @@ ControlPoint::reset (double x, double y, AutomationList::iterator mi, uint32_t v
 void
 ControlPoint::set_color ()
 {
-       uint32_t color = 0;
-
        if (_selected) {
-               color = ARDOUR_UI::config()->canvasvar_ControlPointSelected.get();
+               _item->set_outline_color(UIConfiguration::instance().color ("control point selected outline"));;
+               _item->set_fill_color(UIConfiguration::instance().color ("control point selected fill"));
        } else {
-               color = ARDOUR_UI::config()->canvasvar_ControlPointOutline.get();
+               _item->set_outline_color(UIConfiguration::instance().color ("control point outline"));
+               _item->set_fill_color(UIConfiguration::instance().color ("control point fill"));
        }
-
-       _item->set_outline_color (color);
-       _item->set_fill_color (ARDOUR_UI::config()->canvasvar_ControlPointFill.get());
 }
 
 void
@@ -186,8 +164,8 @@ ControlPoint::move_to (double x, double y, ShapeType shape)
        _shape = shape;
 }
 
-void
-ControlPoint::i2w (double& x, double& y) const
+ArdourCanvas::Item&
+ControlPoint::item() const
 {
-       _item->item_to_canvas (x, y);
+       return *_item;
 }