]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/side-position-interface.hh
release: 1.3.54
[lilypond.git] / lily / include / side-position-interface.hh
index cfa65ffec02be2071bda9e39ec77f05227aabc3d..8ace8fcad84bcedda5a7899cbf85546d75d2ee52 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
 #include "spanner.hh"
 #include "item.hh"
 
+
+/**
+   Position victim object (ELT_L_) next to other objects (the support).
+
+   side-support -- list of score elements
+
+   direction -- where to put the victim object (left or right?)
+
+   side-relative-direction -- if set: get the direction from a different object, and multiply by this.
+   
+   direction-source -- in case side-relative-direction is set, where
+   to get the direction
+
+   minimum-space -- minimum distance that the victim should move
+   (after padding)
+
+   padding -- add this much extra space between victim and support
+
+   TODO: move  out unrelated callbacks.
+   
+ */
 struct Side_position_interface
 {
   Score_element * elt_l_;
 public:
   Side_position_interface (Score_element const*);
-  static Real side_position (Dimension_cache const *);
-  static Real self_alignment (Dimension_cache const *);
-  static Real aligned_side (Dimension_cache const *);  
-  static Real quantised_position (Dimension_cache const*);
+  static Real side_position (Score_element const *, Axis);
+  static Real aligned_on_self (Score_element const *, Axis);
+  static Real aligned_side (Score_element const *, Axis);  
+  static Real quantised_position (Score_element const*, Axis);
+  static Real centered_on_parent (Score_element const*, Axis);
   void set_axis (Axis);
+  void set_minimum_space (Real);
+  void set_padding (Real);
   void set_quantised (Axis);
   Axis get_axis () const;
   
   bool supported_b () const;
   bool has_interface_b () const;
   void add_support (Score_element*);
-  
+
+  void add_staff_support ();
   Direction get_direction () const;
   void set_direction (Direction);
 };