]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/hyphen-engraver.hh
release: 1.1.62
[lilypond.git] / lily / include / hyphen-engraver.hh
1 /*
2   hyphen-engraver.hh -- declare Hyphen_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1999 Glen Prideaux <glenprideaux@iname.com>
7 */
8
9 #ifndef HYPHEN_ENGRAVER_HH
10 #define HYPHEN_ENGRAVER_HH
11
12 #include "engraver.hh"
13 #include "drul-array.hh"
14 #include "hyphen-spanner.hh"
15 #include "pqueue.hh"
16 #include "extender-engraver.hh"
17
18
19 /**
20   Generate an centred hyphen.  Should make a Hyphen_spanner that
21   typesets a nice centred hyphen of varying length depending on the
22   gap between syllables.
23
24   We remember the last Text_item that come across. When we get a
25   request, we create the spanner, and attach the left point to the
26   last lyrics, and the right point to any lyrics we receive by
27   then.  */
28 class Hyphen_engraver : public Engraver
29 {
30   Text_item *  last_lyric_l_;
31   Text_item * current_lyric_l_;
32   Hyphen_req* req_l_;
33   Hyphen_spanner* hyphen_spanner_p_;
34 public:
35   Hyphen_engraver ();
36   VIRTUAL_COPY_CONS (Translator);
37
38 protected:
39   virtual void acknowledge_element (Score_element_info);
40   virtual void do_removal_processing();
41   virtual void do_process_requests();
42   virtual bool do_try_music (Music*);
43   virtual void do_pre_move_processing();
44   virtual void do_post_move_processing ();
45 private:
46
47 };
48
49 #endif // HYPHEN_ENGRAVER_HH