]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/grob.hh
Imported Upstream version 2.16.0
[lilypond.git] / lily / include / grob.hh
index eda94b6d5888b1778897658c683c7c20c5c57944..fd55dbf20968baba7b9c52be139fa3b6425e2e9f 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1996--2011 Han-Wen Nienhuys
+  Copyright (C) 1996--2012 Han-Wen Nienhuys
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -29,8 +29,8 @@ class Grob
 {
 private:
   DECLARE_SMOBS (Grob);
-  DECLARE_CLASSNAME(Grob);
-  
+  DECLARE_CLASSNAME (Grob);
+
   void init ();
 
 protected:
@@ -43,13 +43,13 @@ protected:
   SCM immutable_property_alist_;
   SCM mutable_property_alist_;
   SCM object_alist_;
-  
+
   /*
     If this is a property, it accounts for 25% of the property
     lookups.
   */
   SCM interfaces_;
-  
+
   void substitute_object_links (SCM, SCM);
   Real get_offset (Axis a) const;
   SCM try_callback (SCM, SCM);
@@ -57,7 +57,7 @@ protected:
   void internal_set_value_on_alist (SCM *alist, SCM sym, SCM val);
 
 public:
-  
+
   /* friends */
   friend class Spanner;
   friend class System;
@@ -75,7 +75,7 @@ public:
   Grob *original () const { return original_; }
   SCM interfaces () const { return interfaces_; }
 
-  /* life & death */ 
+  /* life & death */
   Grob (SCM basic_props);
   Grob (Grob const &);
   virtual Grob *clone () const;
@@ -97,14 +97,13 @@ public:
   SCM internal_get_object (SCM symbol) const;
   void internal_set_object (SCM sym, SCM val);
   void internal_del_property (SCM symbol);
-  void instrumented_set_property (SCM, SCM, char const*, int, char const*);
+  void instrumented_set_property (SCM, SCM, char const *, int, char const *);
   void internal_set_property (SCM sym, SCM val);
 
-  /* messages */  
+  /* messages */
   void warning (string) const;
   void programming_error (string) const;
 
-
   /* class hierarchy */
   virtual System *get_system () const;
   static System *get_system (Grob *);
@@ -121,7 +120,7 @@ public:
 
   /* interfaces */
   bool internal_has_interface (SCM intf);
-  DECLARE_GROB_INTERFACE();
+  DECLARE_GROB_INTERFACE ();
 
   /* offsets */
   void translate_axis (Real, Axis);
@@ -141,6 +140,14 @@ public:
   Grob *get_parent (Axis a) const;
   void fixup_refpoint ();
 
+  /* vertical ordering */
+  static Grob *get_root_vertical_alignment (Grob *g);
+  static Grob *get_vertical_axis_group (Grob *g);
+  static bool vertical_less (Grob *g1, Grob *g2);
+  static bool pure_vertical_less (Grob *g1, Grob *g2);
+  static bool internal_vertical_less (Grob *g1, Grob *g2, bool pure);
+  static int get_vertical_axis_group_index (Grob *g);
+
   virtual Interval_t<int> spanned_rank_interval () const;
   virtual bool pure_is_visible (int start, int end) const;
   bool check_cross_staff (Grob *common);
@@ -154,10 +161,10 @@ Item *unsmob_item (SCM);
 
 /* refpoints */
 Grob *common_refpoint_of_list (SCM elt_list, Grob *, Axis a);
-Grob *common_refpoint_of_array (vector<Grob*> const &, Grob *, Axis a);
+Grob *common_refpoint_of_array (vector<Grob *> const &, Grob *, Axis a);
 System *get_root_system (Grob *me);
 
-/* extents */ 
+/* extents */
 Interval robust_relative_extent (Grob *, Grob *, Axis);
 
 /* offset/extent callbacks. */