X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgrob-scheme.cc;h=1fe50f00f18b49afb443c5a91ff6014f0c9c3321;hb=67a345f965d169bc1acd23ff4160914fb2142f38;hp=92f755d7a77e3eb098d84f1c3fa031c13a558d0a;hpb=f875ef39c544bd3499dae5360e9e24f69933575f;p=lilypond.git diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 92f755d7a7..1fe50f00f1 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2011 Jan Nieuwenhuizen + Copyright (C) 1998--2012 Jan Nieuwenhuizen Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -100,6 +100,27 @@ LY_DEFINE (ly_grob_pure_property, "ly:grob-pure-property", return retval; } +LY_DEFINE (ly_grob_pure_height, "ly:grob-pure-height", + 4, 1, 0, (SCM grob, SCM refp, SCM beg, SCM end, SCM val), + "Return the pure height of @var{grob} given refpoint @var{refp}." + " If no value is found, return @var{val} or @code{'()}" + " if @var{val} is not specified.") +{ + Grob *sc = unsmob_grob (grob); + Grob *ref = unsmob_grob (refp); + + LY_ASSERT_SMOB (Grob, grob, 1); + LY_ASSERT_SMOB (Grob, refp, 2); + LY_ASSERT_TYPE (scm_is_integer, beg, 3); + LY_ASSERT_TYPE (scm_is_integer, end, 4); + if (val == SCM_UNDEFINED) + val = SCM_EOL; + + Interval retval = sc->pure_height (ref, scm_to_int (beg), scm_to_int (end)); + + return ly_interval2scm (retval); +} + LY_DEFINE (ly_grob_property, "ly:grob-property", 2, 1, 0, (SCM grob, SCM sym, SCM val), "Return the value for property @var{sym} of @var{grob}." @@ -432,3 +453,28 @@ LY_DEFINE (ly_grob_chain_callback, "ly:grob-chain-callback", chain_callback (gr, proc, sym); return SCM_UNSPECIFIED; } + +LY_DEFINE (ly_grob_vertical_less_p, "ly:grob-vertical