]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/tuplet-bracket.hh
* Another grand 2003 update.
[lilypond.git] / lily / include / tuplet-bracket.hh
1 /*
2   tuplet-bracket.hh -- part of GNU LilyPond
3
4   (c)  1997--2003 Jan Nieuwenhuizen <janneke@gnu.org>
5 */
6
7 #ifndef Tuplet_bracket_HH
8 #define Tuplet_bracket_HH
9
10 #include "lily-guile.hh"
11 #include "lily-proto.hh"
12
13 /*
14
15     TODO: quantise, we don't want to collide with staff lines.
16  (or should we be above staff?)
17
18   todo: handle breaking elegantly.
19 */
20 class Tuplet_bracket
21 {
22 public:
23   DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
24   static bool has_interface (Grob*);
25
26   static void add_column (Grob*me,Item*);
27   static void add_beam (Grob*me,Grob*);
28   static Grob *parallel_beam (Grob *me, Link_array<Grob> const&cols, bool *equally_long);
29   static void calc_dy (Grob*,Real *) ;
30   static void calc_position_and_height (Grob*,Real*,Real *dy);
31   
32   DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM ));
33
34   DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM ));
35   static Molecule make_bracket (Axis protusion_axis,
36                                 Real dx, Real dy, Real thick, Drul_array<Real> height,
37                                 Real gap, Drul_array<Real> widen,
38                                 Drul_array<Real> shorten);
39   static Direction get_default_dir (Grob*);
40 };
41
42 #endif // Tuplet_bracket_HH
43