X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdot-column.cc;h=48e325e133083c142375560f9f9cf193b9fc6dbb;hb=5c7d64ab0b4877bc8a659194034b7b74522f3d6c;hp=7c691c5ca791485899b29f4f952f0765e02b2454;hpb=72b030aeed611d4a24ed6ade7fcc570cceac4c0d;p=lilypond.git diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 7c691c5ca7..48e325e133 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -3,16 +3,17 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2004 Han-Wen Nienhuys + (c) 1997--2005 Han-Wen Nienhuys */ -#include +#include "dot-column.hh" + +#include +#include #include #include "dots.hh" -#include "dot-column.hh" #include "rhythmic-head.hh" -#include "group-interface.hh" #include "staff-symbol-referencer.hh" #include "directional-element-interface.hh" #include "side-position-interface.hh" @@ -23,33 +24,33 @@ TODO: let Dot_column communicate with stem via Note_column. */ -MAKE_SCHEME_CALLBACK (Dot_column,force_shift_callback,2); +MAKE_SCHEME_CALLBACK (Dot_column, force_shift_callback, 2); SCM Dot_column::force_shift_callback (SCM element_smob, SCM axis) { Grob *me = unsmob_grob (element_smob); - Axis a = (Axis) gh_scm2int (axis); + Axis a = (Axis) scm_to_int (axis); assert (a == Y_AXIS); me = me->get_parent (X_AXIS); - if (!to_boolean (me->get_grob_property ("positioning-done"))) + if (!to_boolean (me->get_property ("positioning-done"))) { - me->set_grob_property ("positioning-done", SCM_BOOL_T); + me->set_property ("positioning-done", SCM_BOOL_T); do_shifts (me); } - return gh_double2scm (0.0); + return scm_make_real (0.0); } -MAKE_SCHEME_CALLBACK(Dot_column,side_position, 2); +MAKE_SCHEME_CALLBACK (Dot_column, side_position, 2); SCM Dot_column::side_position (SCM element_smob, SCM axis) { Grob *me = unsmob_grob (element_smob); - Axis a = (Axis) gh_scm2int (axis); + Axis a = (Axis) scm_to_int (axis); assert (a == X_AXIS); - Grob * stem = unsmob_grob (me->get_grob_property ("stem")); + Grob * stem = unsmob_grob (me->get_property ("stem")); if (stem && !Stem::get_beam (stem) && Stem::duration_log (stem) > 2 @@ -79,7 +80,7 @@ struct Dot_position Dot_position () { dot_ = 0; - pos_ =0; + pos_ = 0; dir_ = CENTER; } }; @@ -164,7 +165,7 @@ shift_one (Dot_configuration const &cfg, { if (new_cfg.find (p) == new_cfg.end ()) { - offset =0; + offset = 0; } new_cfg[p + offset] = i->second; } @@ -193,7 +194,7 @@ shift_one (Dot_configuration const &cfg, { if (new_cfg.find (p) == new_cfg.end ()) { - offset =0; + offset = 0; } new_cfg[p + offset] = i->second; @@ -230,7 +231,7 @@ SCM Dot_column::do_shifts (Grob*me) { Link_array dots = - Pointer_group_interface__extract_grobs (me, (Grob*)0, "dots"); + extract_grob_array (me, ly_symbol2scm ("dots")); { /* Trigger note collision resolution first, since that may kill off @@ -254,11 +255,11 @@ Dot_column::do_shifts (Grob*me) dots.sort (compare_position); for (int i = dots.size (); i--;) - if (!dots[i]->live ()) + if (!dots[i]->is_live ()) dots.del (i); Dot_configuration cfg; - for (int i =0;i < dots.size (); i++) + for (int i = 0;i < dots.size (); i++) { Dot_position dp; dp.dot_ = dots[i]; @@ -266,16 +267,16 @@ Dot_column::do_shifts (Grob*me) Grob * note = dots[i]->get_parent (Y_AXIS); if (note) { - Grob *stem = unsmob_grob (note->get_grob_property ("stem")); + Grob *stem = unsmob_grob (note->get_property ("stem")); if (stem) dp.extremal_head_ = Stem::first_head (stem) == note; } - int p = int (Staff_symbol_referencer::get_position (dp.dot_)); - dp.pos_= p; + int p = Staff_symbol_referencer::get_rounded_position (dp.dot_); + dp.pos_ = p; if (dp.extremal_head_) - dp.dir_ = to_dir (dp.dot_->get_grob_property ("direction")); + dp.dir_ = to_dir (dp.dot_->get_property ("direction")); remove_collision (cfg, p); cfg[p] = dp; @@ -295,10 +296,10 @@ Dot_column::do_shifts (Grob*me) void Dot_column::add_head (Grob * me, Grob *rh) { - Grob * d = unsmob_grob (rh->get_grob_property ("dot")); + Grob * d = unsmob_grob (rh->get_property ("dot")); if (d) { - Side_position_interface::add_support (me,rh); + Side_position_interface::add_support (me, rh); Pointer_group_interface::add_grob (me, ly_symbol2scm ("dots"), d); d->add_offset_callback (Dot_column::force_shift_callback_proc , Y_AXIS);