]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/separation-item.hh
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / lily / include / separation-item.hh
index 74c0b0b4d3d5626507f75783c828f109fe4a4282..5750716c7247aa919dd6ac1b60e38aadfb388616 100644 (file)
@@ -1,36 +1,32 @@
-/*   
+/*
   single-malt-grouping-item.hh -- declare Separation_item
-  
+
   source file of the GNU LilyPond music typesetter
-  
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
+
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+*/
 
 #ifndef SINGLE_MALT_GROUPING_ITEM_HH
 #define SINGLE_MALT_GROUPING_ITEM_HH
 
 #include "lily-proto.hh"
+#include "direction.hh"
+#include "grob-interface.hh"
 
-/** Calc dimensions for the Separating_group_spanner; this has to be
-   an item to get dependencies correct.  It can't be an element_group
-   since these usually are in a different X_group
-
-   Properties:
-
-
-   elements -- list of items.
-   
-   no-spacing-rods -- read from elements: boolean that makes Separation_item ignore
-     this item
-   
-*/
 struct Separation_item
 {
-  static void set_interface (Score_element*);
-  static bool has_interface (Score_element*);
-  static Interval my_width (Score_element*) ;
-  static void add_item (Score_element*,Item*);
+  DECLARE_GROB_INTERFACE();
+  DECLARE_SCHEME_CALLBACK(calc_skylines, (SCM));
+
+  static vector<Box> boxes (Grob *me);
+  static Interval conditional_width (Grob *, Grob *);
+  static Interval width (Grob *);
+  static Interval relative_width (Grob *, Grob *);
+  static Grob *extremal_break_aligned_grob (Grob *, Direction, Interval *);
+  static void set_distance (Drul_array<Item *>, Real);
+  static void set_skyline_distance (Drul_array<Item*>, Real);
+  static void add_item (Grob *, Item *);
+  static void add_conditional_item (Grob *, Grob *);
 };
 
 #endif /* SINGLE_MALT_GROUPING_ITEM_HH */