lilypond-1.5.10
[lilypond.git] / lily / include / clef-grav.hh
blobec4702cac896b8fdf3232b13a03a564e8df737cc
1 /*
2 clef-grav.hh -- declare Clef_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
10 #ifndef CLEF_GRAV_HH
11 #define CLEF_GRAV_HH
13 #include "scalar.hh"
14 #include "varray.hh"
15 #include "engraver.hh"
16 #include "direction.hh"
18 /// where is c-0 in the staff?
19 class Clef_engraver : public Engraver {
20 Clef_item *clef_p_;
21 Clef_change_req * clef_req_l_;
22 void create_clef();
23 void read_req (Clef_change_req*);
24 bool set_type (String);
25 protected:
26 virtual void do_process_requests();
27 virtual void fill_staff_info (Staff_info&);
28 virtual void do_pre_move_processing();
29 virtual void do_removal_processing();
30 virtual void do_creation_processing();
31 virtual void do_post_move_processing();
32 virtual bool do_try_request (Request*);
33 virtual void acknowledge_element (Score_elem_info);
34 public:
35 TRANSLATOR_CLONE(Clef_engraver);
36 int c0_position_i_;
37 Direction octave_dir_;
38 String clef_type_str_;
40 /* ************** */
42 Clef_engraver();
43 DECLARE_MY_RUNTIME_TYPEINFO;
46 #endif