]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/line-of-score.hh
release: 1.3.67
[lilypond.git] / lily / include / line-of-score.hh
index f9031a2f5097789b12d68e99f579405aa26a1d54..2856aa04c5c574834a74c5f8b5e1594d09ddf519 100644 (file)
@@ -7,42 +7,54 @@
 #ifndef SCORELINE_HH
 #define SCORELINE_HH
 
+#include "protected-scm.hh" 
 #include "column-x-positions.hh"
 #include "spanner.hh"
 
-/// the columns of a score that form one line. FIXME: multiple inheritance
+/**
+   The columns of a score that form one line.  The toplevel element.
+   Any element has a Line_of_score as both X and Y reference
+   point. The Paper_score contains one element of this type. Control
+   enters the Score_element dependency calculation from this single
+   Line_of_score object.
+   
+   
+  properties:
+
+    all-elements -- list of all score elements in this line. Needed
+      for protecting elements from GC.
+
+    columns -- list of all paper columns
+
+  */
 class Line_of_score : public Spanner
 {
 public:
-/*
-  imported the following  from Super_element
-  
-  The toplevel element. The Paper_score contains this element, and any
-  element shoud be a dependency for the super element.
 
-  It is the entry point for the "constraint solver"/ dependency
-  tracker.  Every XXXX_processing () call traverses the entire
-  dependency graph, and calls the appropriate
-  Score_element::do_XXX_processing function on each Score_element it encounters.
-  */
   
   void post_processing();
-  void output_all ();
 
+  /// -> SCM
   int rank_i_;
-  
+
+  Protected_scm output_;
   Line_of_score();
     
   /// is #c# contained in #*this#?
   bool contains_b (Paper_column const *c) const;
-    
-  static int compare (Line_of_score* const &,Line_of_score* const &);
+  int element_count () const;
 
   void break_into_pieces (Array<Column_x_positions> const&);
   void output_lines ();
-  void output_line (bool last_line);
-  void add_column (Paper_column*);
+
+  Link_array<Item> broken_col_range (Item const*, Item const*) const;
+  Link_array<Paper_column> column_l_arr () const;
   
+  void add_column (Paper_column*);
+  void typeset_element (Score_element*);
+  void output_molecule (SCM, Offset);
+  void output_scheme (SCM);
+  void pre_processing ();
 protected:
   VIRTUAL_COPY_CONS(Score_element);
 };