X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgrid-line-interface.cc;h=8fb2690caa7cb8202ca02c6641664689b7e12249;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=087aa2ba9a274b970889131f8a1322b6c6a36c58;hpb=e6caaa132f59006e5c47d0007b24bfedd07ad145;p=lilypond.git diff --git a/lily/grid-line-interface.cc b/lily/grid-line-interface.cc index 087aa2ba9a..8fb2690caa 100644 --- a/lily/grid-line-interface.cc +++ b/lily/grid-line-interface.cc @@ -1,10 +1,20 @@ /* - grid-line-interface.cc -- implement Grid_line_interface + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2015 Han-Wen Nienhuys - (c) 2005 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "grid-line-interface.hh" @@ -13,21 +23,19 @@ #include "pointer-group-interface.hh" #include "lookup.hh" #include "output-def.hh" -#include "stencil.hh" - MAKE_SCHEME_CALLBACK (Grid_line_interface, print, 1); SCM Grid_line_interface::print (SCM smobbed_me) { - Grob *me = unsmob_grob (smobbed_me); + Grob *me = unsmob (smobbed_me); extract_grob_set (me, "elements", elts); /* compute common refpoint of elements */ Grob *refp = common_refpoint_of_array (elts, me, Y_AXIS); Interval iv; - - for (int i = 0; i < elts.size(); i++) + + for (vsize i = 0; i < elts.size (); i++) { Grob *point = elts[i]; @@ -40,29 +48,27 @@ Grid_line_interface::print (SCM smobbed_me) return SCM_EOL; } - Real staffline = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness")); + Real staffline = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); Real thick = robust_scm2double (me->get_property ("thickness"), 1.0) - * staffline; + * staffline; - iv += - me->relative_coordinate (refp, Y_AXIS); + iv += -me->relative_coordinate (refp, Y_AXIS); Stencil st = Lookup::filled_box (Box (Interval (0, thick), - iv)); + iv)); return st.smobbed_copy (); } -MAKE_SCHEME_CALLBACK (Grid_line_interface, width_callback, 2); +MAKE_SCHEME_CALLBACK (Grid_line_interface, width, 1); SCM -Grid_line_interface::width_callback (SCM element_smob, SCM scm_axis) +Grid_line_interface::width (SCM smob) { - Grob *me = unsmob_grob (element_smob); - (void) scm_axis; - assert (scm_to_int (scm_axis) == X_AXIS); + Grob *me = unsmob (smob); - Real staffline = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness")); + Real staffline = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); Real thick = robust_scm2double (me->get_property ("thickness"), 1.0) - * staffline; - + * staffline; + return ly_interval2scm (Interval (0, thick)); } @@ -70,14 +76,19 @@ void Grid_line_interface::add_grid_point (Grob *me, Grob *b) { Pointer_group_interface::add_grob (me, ly_symbol2scm ("elements"), b); - me->add_dependency (b); } -ADD_INTERFACE (Grid_line_interface, "grid-line-interface", - "A line that spanned between grid-points. ", - "elements thickness"); +ADD_INTERFACE (Grid_line_interface, + "A line that is spanned between grid-points.", + + /* properties */ + "elements " + "thickness " + ); +ADD_INTERFACE (Grid_point_interface, + "A spanning point for grid lines.", -ADD_INTERFACE (Grid_point_interface, "grid-point-interface", - "A spanning point for grid lines. ", - ""); + /* properties */ + "" + );