]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/key-engraver.hh
release: 1.3.52
[lilypond.git] / lily / include / key-engraver.hh
1 /*
2   key-engraver.hh -- declare Key_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef KEYGRAV_HH
11 #define KEYGRAV_HH
12
13 #include "engraver.hh"
14 #include "key.hh"
15 #include "musical-pitch.hh"
16
17 /**
18   Make the key signature.
19  */
20 class Key_engraver : public Engraver {
21   void create_key(bool);
22   void read_req (Key_change_req const * r);
23
24 public:
25   Key_engraver();
26   
27   VIRTUAL_COPY_CONS(Translator);
28
29   /*
30     TODO: move these into properties.
31    */
32   Key key_;
33   Key_change_req * keyreq_l_;
34   Key_item * item_p_;
35
36   Array<Musical_pitch> accidental_idx_arr_;
37   Array<Musical_pitch> old_accidental_idx_arr_;
38
39
40   bool key_changed_b() const;
41     
42 protected:
43   virtual bool do_try_music (Music *req_l);
44   virtual void do_process_music();
45   virtual void do_pre_move_processing();
46   virtual void do_post_move_processing();
47   virtual void acknowledge_element (Score_element_info);
48 };
49
50 #endif // KEYGRAV_HH