X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdots.cc;h=c249d6a1cf969967cc4cfd360892e915df9e4278;hb=0e0a18dbaa12275d0a07b76104243a15da821a15;hp=edd64f01445d4d92eb1af5ec4821a530d7b1b68d;hpb=b638d530ac5a32a832646cdd2b680ce52d0764f0;p=lilypond.git diff --git a/lily/dots.cc b/lily/dots.cc index edd64f0144..c249d6a1cf 100644 --- a/lily/dots.cc +++ b/lily/dots.cc @@ -7,39 +7,36 @@ */ #include "dots.hh" +#include "item.hh" #include "molecule.hh" #include "paper-def.hh" #include "lookup.hh" #include "staff-symbol-referencer.hh" #include "directional-element-interface.hh" -Dots::Dots (SCM s) - : Item (s) -{ -} -GLUE_SCORE_ELEMENT(Dots,after_line_breaking); -SCM -Dots::member_after_line_breaking () +Real +Dots::quantised_position_callback (Score_element * me, Axis a) { - SCM d= get_elt_property ("dot-count"); + assert (a == Y_AXIS); + + SCM d= me->get_elt_property ("dot-count"); if (gh_number_p (d) && gh_scm2int (d)) { - if (!Directional_element_interface (this).get ()) - Directional_element_interface (this).set (UP); + if (!Directional_element_interface::get (me)) + Directional_element_interface::set (me, UP); - Staff_symbol_referencer_interface si (this); - int p = int (si.position_f ()); - if (!(p % 2)) - si.set_position (p + Directional_element_interface (this).get ()); - } - return SCM_UNDEFINED; + int pos = int (Staff_symbol_referencer::position_f (me)); + if (!(pos % 2)) + return Staff_symbol_referencer::staff_space (me) / 2.0 * Directional_element_interface::get (me); + } + return 0.0; } -MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Dots,brew_molecule); +MAKE_SCHEME_CALLBACK(Dots,brew_molecule); SCM Dots::brew_molecule (SCM d) {