]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/local-key-item.hh
release: 1.1.51
[lilypond.git] / lily / include / local-key-item.hh
1 /*
2   local-key-item.hh -- part of GNU LilyPond
3
4   (c) 1996--1999 Han-Wen Nienhuys
5 */
6
7 #ifndef LOCALKEYITEM_HH
8 #define LOCALKEYITEM_HH
9 #include "item.hh"
10 #include "array.hh"
11 #include "musical-pitch.hh"
12 #include "staff-symbol-referencer.hh"
13 #include "note-head-side.hh"
14
15 struct Local_key_cautionary_tuple
16 {
17   Musical_pitch pitch_;
18   bool cautionary_b_;
19
20   Local_key_cautionary_tuple ()
21     {
22       cautionary_b_ = false;
23     }
24   static int compare (Local_key_cautionary_tuple const&s1, Local_key_cautionary_tuple const&s2)
25     {
26       return Musical_pitch::compare (s1.pitch_, s2.pitch_);
27     }
28 };
29
30 /**
31   Accidentals which can be different for each octave.
32
33   TODO:
34   update item if Items are removed
35
36   TODO
37   
38   figure out private/public
39   
40  */
41 class Local_key_item : public Note_head_side, public Staff_symbol_referencer {
42   Array<Local_key_cautionary_tuple> accidental_arr_;
43
44 public:
45   int c0_position_i_;
46   Local_key_item ();
47   void add_pitch (Musical_pitch, bool cautionary);
48 protected:
49   virtual void do_pre_processing();
50   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
51   virtual Molecule* do_brew_molecule_p() const;
52 };
53 #endif // LOCALKEYITEM_HH
54