Correct left text alignment of DynamicTextSpanner.
[lilypond.git] / lily / include / ligature-engraver.hh
blobccdcb452991376e538f4e7537a10d86c6daf7470
1 /*
2 ligature-engraver.hh -- declare Ligature_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
7 */
9 #ifndef LIGATURE_ENGRAVER_HH
10 #define LIGATURE_ENGRAVER_HH
12 #include "engraver.hh"
13 #include "moment.hh"
15 class Ligature_engraver : public Engraver
17 protected:
18 Ligature_engraver ();
19 void stop_translation_timestep ();
20 virtual void finalize ();
22 DECLARE_ACKNOWLEDGER (rest);
23 DECLARE_ACKNOWLEDGER (note_head);
24 virtual void listen_ligature (Stream_event *ev);
25 void process_music ();
26 virtual Spanner *create_ligature_spanner () = 0;
27 virtual void typeset_ligature (Spanner *ligature,
28 vector<Grob_info> primitives) = 0;
29 virtual Spanner *current_ligature ();
30 SCM brew_ligature_primitive_proc;
32 public:
33 // no TRANSLATOR_DECLARATIONS (Ligature_engraver) needed since this
34 // class is abstract
36 private:
37 Drul_array<Stream_event *> events_drul_;
39 Spanner *ligature_;
40 vector<Grob_info> primitives_;
42 Spanner *finished_ligature_;
43 vector<Grob_info> finished_primitives_;
45 Stream_event *prev_start_event_;
47 // moment where ligature started.
48 Moment ligature_start_mom_;
50 Grob *last_bound_;
53 #endif // LIGATURE_ENGRAVER_HH