cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
cairo_paint (cr);
- /* Add some padding on the left/right */
- cairo_translate (cr, pad, pad);
+ /* Add some padding on the sides and top */
+ cairo_translate (cr, pad, (int) scherzo->staff_height / 2);
score_set_staff_height (score, scherzo->staff_height);
score_set_width (score, widget_width - 2 * pad);
score->space_height = (int) height / 4;
score->staff_height = score->space_height * 4;
- score->line_width = score->space_height / 15;
+ score->line_width = score->space_height / 10;
if (score->line_width == 0)
score->line_width = 1;
cairo_select_font_face (cr, "Gonville-26", 0, 0);
- /* XXX: This font size is a rough guess at best. We should figure
- * out to correctly measure, size, and place clefs. */
- cairo_set_font_size (cr, 24);
+ cairo_set_font_size (cr, score->staff_height);
/* XXX: The hard-coded glyph indices here are very ugly. We should
* figure out how to lookup glyphs by name from this font. */
glyph.y = 1 * score->space_height;
break;
}
- glyph.x = 2;
+ glyph.x = 3 * score->line_width;
+ glyph.y += 1;
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); /* black */
cairo_show_glyphs (cr, &glyph, 1);
{
#define BRACE_GLYPHS 1
cairo_glyph_t brace;
+ cairo_text_extents_t brace_extents;
cairo_save (cr);
/* Brace test */
cairo_select_font_face (cr, "Gonville-Brace", 0, 0);
- /* XXX: This font size (in conjunction with the glyph selection)
- * is a rough guess at best. We should figure out how the brace
- * font is intended to be used and actually measure to find the
- * correctly sized glyph. */
- cairo_set_font_size (cr, 40);
-
- cairo_translate (cr, 5, 0);
- score->width -= 5;
-
/* XXX: This hard-coded glyph index is pretty ugly. We should
* figure out how to lookup the glyph we want, (though, as it
* turns out, this brace font pretty much just has numbered glyph
* names for different sizes, so it wouldn't be all that different
* than just the bare index here). */
- brace.index = 185;
+ brace.index = 300;
brace.x = 0;
- brace.y = score->staff_height * 1.5;
+ brace.y = (score->staff_height * 3) / 2 + 1;
+
+ /* XXX: This font size (in conjunction with the glyph selection)
+ * is a rough guess at best. We should figure out how the brace
+ * font is intended to be used and actually measure to find the
+ * correctly-sized glyph. */
+ cairo_set_font_size (cr, (score->staff_height * 3) / 3.85);
+
+ cairo_glyph_extents (cr, &brace, 1, &brace_extents);
+
+ cairo_translate (cr, -brace_extents.x_bearing, 0);
+ score->width += brace_extents.x_bearing;
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); /* black */
cairo_show_glyphs (cr, &brace, 1);