]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/note-head.hh
release: 0.0.70pre
[lilypond.git] / lily / include / note-head.hh
1 /*
2   note-head.hh -- part of GNU LilyPond
3
4   (c) 1996,97 Han-Wen Nienhuys
5 */
6
7 #ifndef NOTEHEAD_HH
8 #define NOTEHEAD_HH
9
10 #include "item.hh"
11
12 /** ball at the end of the stem takes care of:
13
14   * help lines  
15   * proper placing of dots 
16
17   It also is the item for a Rest
18   
19   */
20
21 class Note_head : public Item {
22 public:
23     NAME_MEMBERS();
24
25     bool rest_b_;
26     int position_i_;
27     
28     /// -1 = lowest, 0 = inside, 1 = top
29     int extremal_i_;
30     
31     /// needed for the help-lines
32     int staff_size_i_;
33     int dots_i_;
34     int balltype_i_;
35     int dot_delta_y_i_;
36     int x_dir_i_;
37     
38     /* *************** */
39     
40     void set_rhythmic(Rhythmic_req *);
41
42     /**
43       position of top line (5 linestaff: 8)
44       */
45     Note_head(int staff_size);
46     void set_dots();
47     static int compare(Note_head * const &a, Note_head *const &b) ;
48 protected:
49     virtual    void do_print()const;
50     virtual void do_pre_processing();
51     virtual    Molecule* brew_molecule_p()const;
52 };
53 #endif // NOTEHEAD_HH
54