3 #include "gtkmm2ext/utils.h"
4 #include "gtkmm2ext/rgb_macros.h"
7 #include "canvas-flag.h"
8 #include "canvas-noevent-pixbuf.h"
9 #include "time_axis_view_item.h"
12 using namespace Gnome::Canvas;
15 CanvasFlag::CanvasFlag (MidiRegionView& region,
18 guint outline_color_rgba,
19 guint fill_color_rgba,
25 , _outline_color_rgba(outline_color_rgba)
26 , _fill_color_rgba(fill_color_rgba)
28 , name_pixbuf_width (0)
35 CanvasFlag::delete_allocated_objects()
48 CanvasFlag::set_text (const string& text)
50 delete_allocated_objects();
52 _name_pixbuf = new ArdourCanvas::NoEventPixbuf (*this);
53 name_pixbuf_width = Gtkmm2ext::pixel_width (text, TimeAxisViewItem::NAME_FONT) + 2;
55 set_color (c, _outline_color_rgba);
56 _name_pixbuf->property_pixbuf() = Gtkmm2ext::pixbuf_from_string (text, TimeAxisViewItem::NAME_FONT, name_pixbuf_width,
57 TimeAxisViewItem::NAME_HEIGHT, c);
58 _name_pixbuf->property_x() = 10.0;
59 _name_pixbuf->property_y() = 2.0;
62 double flagwidth = name_pixbuf_width + 8.0;
63 double flagheight = TimeAxisViewItem::NAME_HEIGHT + 3.0;
64 _line = new SimpleLine(*this, 0.0, 0.0, 0.0, _height);
65 _line->property_color_rgba() = _outline_color_rgba;
66 _rect = new SimpleRect(*this, 0.0, 0.0, flagwidth, flagheight);
67 _rect->property_outline_color_rgba() = _outline_color_rgba;
68 _rect->property_fill_color_rgba() = _fill_color_rgba;
70 _name_pixbuf->raise_to_top();
73 CanvasFlag::~CanvasFlag()
75 delete_allocated_objects();
79 CanvasFlag::set_height (double h)
84 _line->property_y2() = _height;