source file of the GNU LilyPond music typesetter
- (c) 2000--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "system-start-delimiter.hh"
-
-
-#include "spanner.hh"
+#include "text-interface.hh"
+#include "all-font-metrics.hh"
#include "axis-group-interface.hh"
-#include "output-def.hh"
#include "font-interface.hh"
-#include "all-font-metrics.hh"
-#include "staff-symbol-referencer.hh"
-#include "lookup.hh"
#include "item.hh"
#include "line-interface.hh"
-
+#include "lookup.hh"
+#include "output-def.hh"
#include "pointer-group-interface.hh"
+#include "spanner.hh"
+#include "staff-symbol-referencer.hh"
Stencil
System_start_delimiter::staff_bracket (Grob *me, Real height)
Stencil bracket = Lookup::filled_box (box);
Direction d = DOWN;
do
- bracket.add_at_edge (Y_AXIS, d, tips[d], -overlap, 0.0);
+ bracket.add_at_edge (Y_AXIS, d, tips[d], -overlap);
while (flip (&d) != DOWN);
bracket = Stencil (box, bracket.expr ());
System_start_delimiter::line_bracket (Grob *me, Real height)
{
Real thick
- = me->layout ()->get_dimension (ly_symbol2scm ("linethickness"))
+ = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"))
* robust_scm2double (me->get_property ("thickness"), 1);
Real w = 0.8;
Stencil
System_start_delimiter::simple_bar (Grob *me, Real h)
{
- Real lt = me->layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+ Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
Real w = lt * robust_scm2double (me->get_property ("thickness"), 1);
return Lookup::round_filled_box (Box (Interval (0, w), Interval (-h / 2, h / 2)),
lt);
Interval ext;
int non_empty_count = 0;
- for (int i = elts.size (); i--;)
+ for (vsize i = elts.size (); i--;)
{
Spanner *sp = dynamic_cast<Spanner *> (elts[i]);
SCM glyph_sym = me->get_property ("style");
Real len = ext.length ();
if (ext.is_empty ()
- || (robust_scm2double (me->get_property ("collapse-height"), 0.0) >= ext.length ())
- || (glyph_sym == ly_symbol2scm ("bar-line")
- && non_empty_count <= 1))
+ || (robust_scm2double (me->get_property ("collapse-height"), 0.0) >= ext.length ()))
{
me->suicide ();
return SCM_UNSPECIFIED;
/* We go through the style sheet to lookup the font file
name. This is better than using find_font directly,
esp. because that triggers mktextfm for non-existent
-> fonts. */
+ fonts. */
SCM fam = scm_cons (ly_symbol2scm ("font-encoding"),
ly_symbol2scm ("fetaBraces"));
SCM alist = scm_list_n (fam, SCM_UNDEFINED);
fm = select_font (me->layout (), scm_list_n (alist, SCM_UNDEFINED));
- int lo = 0;
- int hi = max (fm->count () - 1, 2);
+ int
+ lo = 0;
+ int hi = max ((int) fm->count () - 1, 2);
/* do a binary search for each Y, not very efficient, but passable? */
Box b;
while (hi - lo > 1);
Stencil stil (fm->find_by_name ("brace" + to_string (lo)));
- stil.translate_axis (-b[X_AXIS].length()/2, X_AXIS);
+ stil.translate_axis (-b[X_AXIS].length ()/2, X_AXIS);
stil.translate_axis (-0.2, X_AXIS);
return stil;
}
-ADD_INTERFACE (System_start_delimiter, "system-start-delimiter-interface",
- "The brace, bracket or bar in front of the system. "
- ,
+ADD_INTERFACE (System_start_delimiter,
+ "The brace, bracket or bar in front of the system. The"
+ " following values for @code{style} are recognized:\n"
+ "\n"
+ "@table @code\n"
+ "@item bracket\n"
+ "A thick bracket, normally used to group similar"
+ " instruments in a score. Default for @code{StaffGroup}."
+ " @code{SystemStartBracket} uses this style.\n"
+ "@item brace\n"
+ "A @q{piano style} brace normally used for an instrument"
+ " that uses two staves. The default style for"
+ " @code{GrandStaff}. @code{SystemStartBrace} uses this"
+ " style.\n"
+ "@item bar-line\n"
+ "A simple line between the staves in a score. Default"
+ " for staves enclosed in @code{<<} and @code{>>}."
+ " @code{SystemStartBar} uses this style.\n"
+ "@item line-bracket\n"
+ "A simple square, normally used for subgrouping"
+ " instruments in a score. @code{SystemStartSquare} uses"
+ " this style.\n"
+ "@end table\n"
+ "\n"
+ "See also @file{input/regression/system-start-nesting.ly}.",
/* properties */
"collapse-height "
"style "
- "staff-hierarchy "
"thickness "
);