X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fcanvas-flag.cc;h=813c0b1468a34da2e7b89a2b626823340596077b;hb=3162ffb4f418d85088d53d5e0a4a5d6ce7235e04;hp=232035e4cf914f361c02af95d21627f6b71f009d;hpb=2c017baa4ad270f7a951161c6fc6f3ba7f7d2429;p=ardour.git diff --git a/gtk2_ardour/canvas-flag.cc b/gtk2_ardour/canvas-flag.cc index 232035e4cf..813c0b1468 100644 --- a/gtk2_ardour/canvas-flag.cc +++ b/gtk2_ardour/canvas-flag.cc @@ -5,16 +5,25 @@ using namespace Gnome::Canvas; using namespace std; - void -CanvasFlag::set_text(string& a_text) +CanvasFlag::delete_allocated_objects() { - if (_text) { - delete _text; - _text = 0; - } + delete _text; + _text = 0; + + delete _line; + _line = 0; + + delete _rect; + _rect = 0; +} + +void +CanvasFlag::set_text(const string& a_text) +{ + delete_allocated_objects(); - _text = new Text(*this, 0.0, 0.0, a_text); + _text = new InteractiveText(*this, this, 0.0, 0.0, Glib::ustring(a_text)); _text->property_justification() = Gtk::JUSTIFY_CENTER; _text->property_fill_color_rgba() = _outline_color_rgba; double flagwidth = _text->property_text_width() + 10.0; @@ -24,19 +33,19 @@ CanvasFlag::set_text(string& a_text) _text->show(); _line = new SimpleLine(*this, 0.0, 0.0, 0.0, _height); _line->property_color_rgba() = _outline_color_rgba; - _rect = new SimpleRect(*this, 0.0, 0.0, flagwidth, flagheight); + _rect = new InteractiveRect(*this, this, 0.0, 0.0, flagwidth, flagheight); _rect->property_outline_color_rgba() = _outline_color_rgba; _rect->property_fill_color_rgba() = _fill_color_rgba; - _text->lower_to_bottom(); - _text->raise(2); + _text->raise_to_top(); } CanvasFlag::~CanvasFlag() { - delete _line; - delete _rect; - if(_text) { - delete _text; - } + delete_allocated_objects(); } +bool +CanvasFlag::on_event(GdkEvent* /*ev*/) +{ + return false; +}