X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fitem-scheme.cc;h=48f3218f22951f11f218f8feffefcb42e22ef95d;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=0ebbc2832de9a65663a665e7e39a847a23c3c317;hpb=474c8729dc274a30558102a015a01fa5882673db;p=lilypond.git diff --git a/lily/item-scheme.cc b/lily/item-scheme.cc index 0ebbc2832d..48f3218f22 100644 --- a/lily/item-scheme.cc +++ b/lily/item-scheme.cc @@ -1,30 +1,56 @@ /* - item-scheme.cc -- implement Item bindings. + 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--2007 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 "item.hh" - +#include "paper-column.hh" LY_DEFINE (ly_item_p, "ly:item?", - 1, 0, 0, (SCM g), - "Is @var{g} an @code{Item} object?") + 1, 0, 0, (SCM g), + "Is @var{g} an @code{Item} object?") { - Grob *me = unsmob_grob (g); + Grob *me = unsmob (g); bool b = dynamic_cast (me); return ly_bool2scm (b); } LY_DEFINE (ly_item_break_dir, "ly:item-break-dir", - 1, 0, 0, (SCM it), - "The break status dir of item @var{it}. @code{-1} is end of " - "line, @code{0} unbroken, and @code{1} begin of line.") + 1, 0, 0, (SCM it), + "The break status direction of item @var{it}. @w{@code{-1}} means" + " end of line, @code{0}@tie{}unbroken, and" + " @code{1}@tie{}beginning of line.") { - Item *me = dynamic_cast (unsmob_grob (it)); - SCM_ASSERT_TYPE (me, it, SCM_ARG1, __FUNCTION__, "Item"); + LY_ASSERT_SMOB (Item, it, 1); + Item *me = unsmob (it); return scm_from_int (me->break_status_dir ()); } + +LY_DEFINE (ly_item_get_column, "ly:item-get-column", + 1, 0, 0, (SCM it), + "Return the @code{PaperColumn} or @code{NonMusicalPaperColumn}" + " associated with this @code{Item}.") +{ + LY_ASSERT_SMOB (Item, it, 1); + Item *me = unsmob (it); + + if (Paper_column *col = me->get_column ()) + return col->self_scm (); + + return SCM_EOL; +}