summaryrefslogtreecommitdiff
path: root/gtk2_ardour/marker.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-12 20:39:53 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-12 20:39:53 +0000
commitff9ddf510065305e13d169d35f9b4e6b88ce76d7 (patch)
tree0e41589d7332ce31499c9f02ca59f9b799487b03 /gtk2_ardour/marker.cc
parentab565167ff36eb473340e950d93d46c3dfaa9616 (diff)
tidy up (a bit) locations editing widget ; use pixbuf/string code from 2.0;remove edit point clock
git-svn-id: svn://localhost/ardour2/branches/3.0@6074 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/marker.cc')
-rw-r--r--gtk2_ardour/marker.cc35
1 files changed, 4 insertions, 31 deletions
diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc
index 9cf5969fd7..75a96ef5a4 100644
--- a/gtk2_ardour/marker.cc
+++ b/gtk2_ardour/marker.cc
@@ -356,40 +356,13 @@ Marker::the_item() const
void
Marker::set_name (const string& new_name)
{
- uint32_t pb_width;
- double font_size;
+ int name_width = pixel_width (new_name, *name_font) + 2;
- if (new_name.empty()) {
- return;
- }
-
- font_size = name_font->get_size() / Pango::SCALE;
- pb_width = new_name.length() * font_size;
-
- Glib::RefPtr<Gdk::Pixbuf> buf = Gdk::Pixbuf::create(Gdk::COLORSPACE_RGB, true, 8, pb_width, name_height);
-
- cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, pb_width, name_height);
- cairo_t *cr = cairo_create (surface);
- cairo_text_extents_t te;
- cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0);
- cairo_select_font_face (cr, name_font->get_family().c_str(),
- CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
- cairo_set_font_size (cr, font_size);
- cairo_text_extents (cr, new_name.c_str(), &te);
-
- cairo_move_to (cr, 0.5,
- 0.5 - te.height / 2 - te.y_bearing + name_height / 2);
- cairo_show_text (cr, new_name.c_str());
-
- unsigned char* src = cairo_image_surface_get_data (surface);
- convert_bgra_to_rgba(src, buf->get_pixels(), pb_width, name_height);
-
- cairo_destroy(cr);
- name_pixbuf->property_pixbuf() = buf;
+ name_pixbuf->property_pixbuf() = pixbuf_from_ustring(new_name, name_font, name_width, name_height);
if (_type == End || _type == LoopEnd || _type == PunchOut) {
- name_pixbuf->property_x() = -(te.width);
- }
+ name_pixbuf->property_x() = - (name_width);
+ }
}
void