-Molecule*
-Dots::brew_molecule_p () const
-{
- Atom d = paper ()->lookup_l ()->dots (no_dots_i_);
- Molecule *out = new Molecule (Atom (d));
- Real inter_f = paper ()->internote_f ();
- out->translate (inter_f * position_i_, Y_AXIS);
- return out;
+ if (scm_is_number (c))
+ {
+ SCM scm_style = sc->get_property ("style");
+ string style = "";
+ if (scm_is_symbol (scm_style))
+ style = ly_symbol2string (scm_style);
+ string idx = "dots.dot" + style;
+ Stencil d = Font_interface::get_default_font (sc)->find_by_name (idx);
+ if (d.is_empty ())
+ {
+ sc->warning (_f ("dot `%s' not found", idx.c_str ()));
+ return SCM_EOL;
+ }
+ Real dw = d.extent (X_AXIS).length ();
+
+ /*
+ we need to add a real blank box, to assure that
+ side-positioning doth not cancel the left-most padding. */
+
+ /*
+ TODO: this should be handled by side-position padding.
+ */
+ mol = Lookup::blank (Box (Interval (0, 0),
+ Interval (0, 0)));
+
+ for (int i = scm_to_int (c); i--;)
+ {
+ d.translate_axis (2 * dw, X_AXIS);
+ mol.add_at_edge (X_AXIS, RIGHT, d, dw);
+ }
+ }
+ return mol.smobbed_copy ();