/*
plet-spanner.hh -- part of GNU LilyPond
- (c) 1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1997--2001 Jan Nieuwenhuizen <janneke@gnu.org>
*/
-#ifndef Tuplet_spanner_HH
-#define Tuplet_spanner_HH
-#include "text-def.hh"
-#include "pointer.hh"
-#include "directional-spanner.hh"
+#ifndef Tuplet_bracket_HH
+#define Tuplet_bracket_HH
-/** supportable plet: triplets, eentweetjes, ottava, etc. */
+#include "lily-guile.hh"
-class Tuplet_spanner : public Directional_spanner
+/*
+
+ TODO: quantise, we don't want to collide with staff lines.
+ (or should we be above staff?)
+
+ todo: handle breaking elegantly.
+*/
+class Tuplet_bracket
{
public:
- Tuplet_spanner ();
-
- void add_column (Note_column*);
- void set_beam (Beam*);
- P<Text_def> tdef_p_;
- bool bracket_visibility_b_;
- bool num_visibility_b_;
-
-protected:
- Beam *beam_l_;
- Link_array<Note_column> column_arr_;
+ DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
+ static void set_interface (Grob*);
+ static bool has_interface (Grob*);
+
+ static void add_column (Grob*me,Item*);
+ static void add_beam (Grob*me,Grob*);
- virtual Molecule* do_brew_molecule_p () const;
- VIRTUAL_COPY_CONS(Score_element);
+ static void calc_dy (Grob*,Real *) ;
+ static void calc_position_and_height (Grob*,Real*,Real *dy);
+
+ DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM ));
- virtual void do_add_processing ();
- virtual void do_post_processing ();
- virtual void set_default_dir ();
- virtual void do_substitute_dependency (Score_element*,Score_element*);
+ static Direction get_default_dir (Grob*);
};
-#endif // Tuplet_spanner_HH
+#endif // Tuplet_bracket_HH