property no-ledgers.
+2004-09-16 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * lily/ledger-line-spanner.cc: add ledgered-interface, with
+ property no-ledgers.
+
2004-09-16 Heikki Junes <hjunes@cc.hut.fi>
* Documentation/user/{changing-defaults,examples,invoking,
void
Ledger_line_engraver::acknowledge_grob (Grob_info s)
{
- Pointer_group_interface::add_grob (span_, ly_symbol2scm ("note-heads"),
- s.grob_);
+ if (!to_boolean (s.grob_->get_property ("no-ledgers")))
+ Pointer_group_interface::add_grob (span_, ly_symbol2scm ("note-heads"),
+ s.grob_);
}
ENTER_DESCRIPTION (Ledger_line_engraver,
"Creates the spanner to draw ledger lines, and notices objects that need ledger lines",
/* creats*/ "LedgerLineSpanner",
/* accepts */ "",
- /* acks */ "custos-interface note-head-interface", // ledgered-interface?
+ /* acks */ "ledgered-interface", // ledgered-interface?
/* reads */ "",
/* write */ "")
ADD_INTERFACE (Ledger_line_spanner,
"ledger-line-interface",
"This spanner draws the ledger lines of a staff, for note heads that stick out. ",
- "note-heads thickness gap length minimum-length")
+ "note-heads thickness gap length minimum-length");
+
+
+struct Ledgered_interface {
+ static bool has_interface (Grob*);
+};
+
+ADD_INTERFACE (Ledgered_interface,
+ "ledgered-interface",
+ "Objects that need ledger lines.",
+ "no-ledgers");
&scores);
Real opt = 1e6;
- int opt_idx = 0;
- // why backwards?
- for (int i = scores.size (); i--;)
+ int opt_idx = -1;
+ for (int i = 0; i < scores.size (); i++)
{
if (scores[i].score_ < opt)
{
os[LEFT][Y_AXIS] += dir * staff_space / 2;
}
+
+ assert (scores.size() > 0);
return scores;
}
. @var{accidental})} pairs.")
(note-names ,vector? "Vector of strings containing names for
easy-notation note heads.")
+ (no-ledgers ,boolean? "If set, don't draw ledger lines on this object.")
(no-spacing-rods ,boolean? "Items with this property do not cause
spacing constraints.")
(no-stem-extend ,boolean? "If set, notes with ledger lines do not
(breakable . #t)
(break-align-symbol . ambitus)
(break-visibility . ,begin-of-line-visible)
- (meta . ((interfaces . (axis-group-interface break-aligned-interface ambitus-interface item-interface ))))
+ (meta . ((interfaces . (axis-group-interface break-aligned-interface ambitus-interface item-interface ))))
))
(AmbitusLine
(cautionary-style . parentheses)
(after-line-breaking-callback . ,Accidental_interface::after_line_breaking) (meta . ((interfaces . (item-interface accidental-interface break-aligned-interface side-position-interface font-interface))))
))
+
(AmbitusNoteHead
. (
(duration-log . 2)
(X-extent-callback . ,Note_head::extent)
(Y-extent-callback . ,Note_head::extent)
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (meta . ((interfaces . (font-interface note-head-interface ambitus-interface staff-symbol-referencer-interface rhythmic-head-interface item-interface ))))
+ (meta . ((interfaces . (font-interface note-head-interface
+ ambitus-interface
+ staff-symbol-referencer-interface
+ rhythmic-head-interface
+ ledgered-interface
+ item-interface ))))
))
(Arpeggio
(stem-attachment-function . ,note-head-style->attachment-coordinates)
(meta . ((interfaces . (rhythmic-grob-interface
rhythmic-head-interface font-interface note-head-interface
+ ledgered-interface
staff-symbol-referencer-interface item-interface ))))
))