2 grace-align-item.cc -- implement Grace_align_item
4 source file of the GNU LilyPond music typesetter
6 (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #include "grace-align-item.hh"
11 #include "align-interface.hh"
13 #include "paper-column.hh"
14 #include "paper-def.hh"
19 MAKE_SCHEME_CALLBACK(Grace_align_item,before_line_breaking);
21 Grace_align_item::before_line_breaking (SCM smob)
23 Score_element*me = unsmob_element (smob);
24 Real nhw = // lookup_l ()->notehead (2, "")..extent (X_AXIS).length();
25 me->paper_l ()->get_var ("quartwidth");
27 me->set_elt_property ("threshold",
28 gh_cons (gh_double2scm (nhw* 1.5),
29 gh_double2scm (infinity_f)));
30 dynamic_cast<Item*>(me)->column_l ()->set_elt_property ("contains-grace", SCM_BOOL_T);
32 return SCM_UNSPECIFIED;
36 Grace_align_item::set_interface (Score_element*me)
38 me->set_interface (ly_symbol2scm ("grace-align-interface"));
39 me->set_elt_property ("stacking-dir", gh_int2scm (RIGHT));
40 Align_interface::set_interface(me);
41 Align_interface::set_axis (me,X_AXIS);
47 Grace_align_item::has_interface (Score_element*m)
49 return m&& m->has_interface (ly_symbol2scm ("grace-align-interface"));