]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/bar-script-engraver.hh
dec3c05ef6686107f48adef00e9be76832f6f921
[lilypond.git] / lily / include / bar-script-engraver.hh
1 /*   
2   bar-script-engraver.hh -- declare Bar_script_engraver
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef BAR_SCRIPT_ENGRAVER_HH
11 #define BAR_SCRIPT_ENGRAVER_HH
12 #include "engraver.hh"
13 #include "protected-scm.hh"
14
15 /**
16   put stuff over or next to  bars.  Examples: bar numbers, marginal notes,
17   rehearsal marks.
18  */
19 class Bar_script_engraver : public Engraver
20 {
21 public:
22   VIRTUAL_COPY_CONS(Translator);
23 protected:
24   Staff_side_item* staff_side_p_;
25   Text_item* text_p_;
26   Protected_scm visibility_lambda_;
27   String type_;
28   Axis axis_;
29   bool hang_on_clef_b_;
30 protected:
31   /**
32     Put the script on #it#
33    */
34   void do_acknowledge_element (Item *it);
35   /**
36      Return non-nil if we want to hang something on this.
37    */
38   Item *cast_to_interesting_item (Score_element*);
39   Bar_script_engraver ();
40   virtual void do_creation_processing ();
41   virtual void do_pre_move_processing ();
42   virtual void acknowledge_element (Score_element_info);
43   void create_items(Request*);
44 };
45
46
47 #endif /* BAR_SCRIPT_ENGRAVER_HH */
48