]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/abbreviation-beam-engraver.hh
release: 1.1.65
[lilypond.git] / lily / include / abbreviation-beam-engraver.hh
1 /*
2   abbreviation-beam-engraver.hh -- declare Abbreviation_beam_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7            Jan Nieuwenhuizen <janneke@gnu.org>
8 */
9
10
11 #ifndef ABBREVIATION_BEAM_ENGRAVER_HH
12 #define ABBREVIATION_BEAM_ENGRAVER_HH
13
14 #include "engraver.hh"
15 #include "drul-array.hh"
16
17 /**
18   Generate an abbreviation beam.  Eat stems.
19  */
20 class Abbreviation_beam_engraver : public Engraver
21 {
22 public:
23   VIRTUAL_COPY_CONS(Translator);
24   
25
26   Abbreviation_beam_engraver();
27
28 protected:
29   virtual void do_removal_processing();
30   virtual void do_process_requests();
31   virtual bool do_try_music (Music*);
32   virtual void acknowledge_element (Score_element_info);
33   virtual void do_pre_move_processing();
34   virtual void do_post_move_processing();
35
36 private:
37   void typeset_beam ();
38   Drul_array<Abbreviation_beam_req*> reqs_drul_;
39   Abbreviation_beam_req* prev_start_req_;
40   Abbreviation_beam* abeam_p_;
41   Abbreviation_beam* finished_abeam_p_;
42 };
43
44 #endif // ABBREVIATION_BEAM_ENGRAVER_HH