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