2 ligature-engraver.hh -- declare Ligature_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2002--2003 Juergen Reuter <reuter@ipd.uka.de>
9 #ifndef LIGATURE_ENGRAVER_HH
10 #define LIGATURE_ENGRAVER_HH
12 #include "engraver.hh"
14 class Ligature_engraver : public Engraver
17 virtual void stop_translation_timestep ();
18 virtual void start_translation_timestep ();
19 virtual void finalize ();
21 virtual void acknowledge_grob (Grob_info);
22 virtual bool try_music (Music*);
23 virtual void process_music ();
24 virtual Spanner *create_ligature_spanner (); /* abstract method */
25 virtual void typeset_ligature (Spanner *ligature,
26 Array<Grob_info> primitives); /* abstract method */
27 virtual Spanner *current_ligature ();
28 SCM brew_ligature_primitive_proc;
31 TRANSLATOR_DECLARATIONS(Ligature_engraver);
34 Drul_array<Music*> reqs_drul_;
37 Array<Grob_info> primitives_;
39 Spanner *finished_ligature_;
40 Array<Grob_info> finished_primitives_;
42 Music *prev_start_req_;
44 // moment where ligature started.
45 Moment ligature_start_mom_;
49 void override_molecule_callback ();
50 void revert_molecule_callback ();
53 #endif // LIGATURE_ENGRAVER_HH