]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/g-staff-side.hh
release: 1.1.45
[lilypond.git] / lily / include / g-staff-side.hh
1 /*   
2   g-staff-side.hh -- declare G_staff_side_item
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef G_STAFF_SIDE_HH
11 #define G_STAFF_SIDE_HH
12
13 #include "spanner.hh"
14 #include "item.hh"
15 #include "staff-symbol-referencer.hh"
16
17 /**
18    Position myself next to a set of elements.  Configurable in axis
19    and direction.
20
21   Properties:
22
23     padding :: Real
24
25     Amount of extra space to add.
26 */
27 class G_staff_side_element :  public Staff_symbol_referencer
28 {
29   void position_self ();
30
31 public:
32   Score_element * to_position_l_;
33   Direction dir_;
34   Link_array<Score_element> support_l_arr_;
35   Axis axis_;
36   //junkme.
37   bool staff_support_b_;
38   
39   G_staff_side_element ();
40   void set_victim (Score_element*);
41   void add_support (Score_element*);
42
43   VIRTUAL_COPY_CONS(Score_element);
44   virtual Direction get_default_direction () const;
45 protected:
46   virtual Interval do_height () const;
47   virtual void do_print () const;
48   virtual void do_add_processing ();
49   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
50   virtual void do_pre_processing ();
51   virtual void do_post_processing ();
52 };
53
54 class G_staff_side_item : public G_staff_side_element, public Item
55 {
56 public:
57   VIRTUAL_COPY_CONS(Score_element);
58 protected:
59   virtual Interval do_width () const;
60   virtual void do_print () const;
61 };
62
63 class G_staff_side_spanner : public G_staff_side_element, public Spanner
64 {
65 public:
66   VIRTUAL_COPY_CONS(Score_element);
67 protected:
68   virtual void do_print () const;
69 };
70
71 #endif /* G_STAFF_SIDE_HH */
72