- /*
- ugh: use gh_call () / scm_apply ().
-
- UGH: use grob-property.
- */
- SCM log = gh_int2scm (Rhythmic_head::balltype_i (me));
- SCM exp = scm_list_n (ly_symbol2scm ("find-notehead-symbol"), log,
- ly_quote_scm (style),
- SCM_UNDEFINED);
- String name = "noteheads-" + ly_scm2string (scm_primitive_eval (exp));
- Molecule out = Font_interface::get_default_font (me)->find_by_name (name);
-
- if (streepjes_i)
- {
- Direction dir = (Direction)sign (p);
- Interval hd = out.extent (X_AXIS);
- Real left_ledger_protusion = hd.length ()/4;
- Real right_ledger_protusion = left_ledger_protusion;
-
- if (unsmob_grob(me->get_grob_property ("accidentals-grob")))
- {
- /*
- make a little room for accidentals.
-
- TODO: this will look silly if a chord has ledger lines,
- and only the bottom note has an accidental.
- */
-
- left_ledger_protusion *= 0.66;
- right_ledger_protusion *= 0.8;
- }
-
- Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion,
- hd[RIGHT] + right_ledger_protusion);
- out.add_molecule (Note_head::ledger_lines (me, ledger_take_space,
- streepjes_i, dir, l_extents));
- }