X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fitem-scheme.cc;h=48f3218f22951f11f218f8feffefcb42e22ef95d;hb=528d28e079419b3a45098b42b8b2b4eb9f1b15b1;hp=58b98b29f59305503ba191c9eeb6540be6bb6719;hpb=f5e923a6ce8cebb7ef893c03ce56aa5e598002c9;p=lilypond.git diff --git a/lily/item-scheme.cc b/lily/item-scheme.cc index 58b98b29f5..48f3218f22 100644 --- a/lily/item-scheme.cc +++ b/lily/item-scheme.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2005--2014 Han-Wen Nienhuys + Copyright (C) 2005--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -19,12 +19,13 @@ */ #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?") { - Grob *me = Grob::unsmob (g); + Grob *me = unsmob (g); bool b = dynamic_cast (me); return ly_bool2scm (b); } @@ -36,6 +37,20 @@ LY_DEFINE (ly_item_break_dir, "ly:item-break-dir", " @code{1}@tie{}beginning of line.") { LY_ASSERT_SMOB (Item, it, 1); - Item *me = Item::unsmob (it); + 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; +}