]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/ligature-engraver.hh
5e8efb7eeb77b558e060b94c1d73e31cbc6268ec
[lilypond.git] / lily / include / ligature-engraver.hh
1 /*   
2   ligature-engraver.hh -- declare Ligature_engraver
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2002 Juergen Reuter <reuter@ipd.uka.de>
7   
8  */
9 #ifndef LIGATUREENGRAVER_HH
10 #define LIGATUREEENGRAVER_HH
11
12 #include "engraver.hh"
13
14 class Ligature_engraver : public Engraver
15 {
16 protected:
17   virtual void stop_translation_timestep ();
18   virtual void start_translation_timestep ();
19   virtual void finalize ();
20
21   virtual void acknowledge_grob (Grob_info);
22   virtual bool try_music (Music*);
23   virtual void process_music ();
24   virtual void try_stop_ligature ();
25   virtual Spanner *create_ligature_spanner ();
26
27   Spanner *finished_ligature_;
28   Spanner *ligature_;
29   SCM brew_ligature_primitive_proc;
30
31 public:
32   TRANSLATOR_DECLARATIONS(Ligature_engraver);
33
34 private:
35   Drul_array<Span_req*> reqs_drul_;
36   
37   Span_req *prev_start_req_;
38
39   // moment where ligature started.
40   Moment ligature_start_mom_;
41
42   Grob *last_bound;
43
44 };
45
46 #endif // ENGRAVERGROUP_HH