source file of the GNU LilyPond music typesetter
- (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2004--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "text-interface.hh"
-#include "line-spanner.hh"
#include "spanner.hh"
#include "font-interface.hh"
#include "dimensions.hh"
struct Ottava_bracket
{
DECLARE_SCHEME_CALLBACK (print, (SCM));
- static bool has_interface (Grob *);
+ DECLARE_GROB_INTERFACE ();
};
/*
Interval span_points;
Grob *common = me->get_bound (LEFT)->common_refpoint (me->get_bound (RIGHT), X_AXIS);
- Output_def *layout = me->get_layout ();
+ Output_def *layout = me->layout ();
Drul_array<bool> broken;
Direction d = LEFT;
{
extract_grob_set (b, "note-heads", heads);
common = common_refpoint_of_array (heads, common, X_AXIS);
- for (int i = 0; i < heads.size (); i++)
+ for (vsize i = 0; i < heads.size (); i++)
{
Grob *h = heads[i];
Grob *dots = Rhythmic_head::get_dots (h);
SCM markup = me->get_property ("text");
Stencil text;
if (Text_interface::is_markup (markup))
- text = *unsmob_stencil (Text_interface::interpret_markup (layout->self_scm (), properties, markup));
+ text = *unsmob_stencil (Text_interface::interpret_markup (layout->self_scm (),
+ properties, markup));
Drul_array<Real> shorten = robust_scm2interval (me->get_property ("shorten-pair"),
Interval (0, 0));
if (Note_column::has_interface (b))
{
extract_grob_set (b, "note-heads", heads);
- for (int i = 0; i < heads.size (); i++)
+ for (vsize i = 0; i < heads.size (); i++)
{
Grob *h = heads[i];
ext.unite (h->extent (common, X_AXIS));
Drul_array<Real> flare = robust_scm2interval (me->get_property ("bracket-flare"),
Interval (0, 0));
- edge_height[LEFT] = 0.0;
- edge_height[RIGHT] *= -get_grob_direction (me);
- if (broken[RIGHT])
- edge_height[RIGHT] = 0.0;
+ do
+ {
+ edge_height[d] *= -get_grob_direction (me);
+ if (broken[d])
+ edge_height[d] = 0.0;
+ }
+ while (flip(&d) != LEFT);
Stencil b;
Interval empty;
return b.smobbed_copy ();
}
-ADD_INTERFACE (Ottava_bracket, "ottava-bracket-interface",
- "An ottava bracket",
- "edge-height bracket-flare shorten-pair minimum-length");
+ADD_INTERFACE (Ottava_bracket,
+ "An ottava bracket.",
+
+ /* properties */
+ "edge-height "
+ "bracket-flare "
+ "shorten-pair "
+ "minimum-length "
+ );