]> 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 c98ae4dd50faf6678b6aac54d32c96d570eadb9a..2856aa04c5c574834a74c5f8b5e1594d09ddf519 100644 (file)
@@ -1,40 +1,61 @@
 /*
   line-of-score.hh -- part of GNU LilyPond
 
-  (c) 1996--1999 Han-Wen Nienhuys
+  (c) 1996--2000 Han-Wen Nienhuys
 */
 
 #ifndef SCORELINE_HH
 #define SCORELINE_HH
 
-#include "colhpos.hh"
+#include "protected-scm.hh" 
+#include "column-x-positions.hh"
 #include "spanner.hh"
-#include "super-element.hh"
 
-/// the columns of a score that form one line.
-class Line_of_score : public Spanner , public Super_element
+/**
+   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:
-  Link_array<Paper_column> cols_;
-  bool error_mark_b_;
 
   
+  void post_processing();
+
+  /// -> SCM
+  int rank_i_;
+
+  Protected_scm output_;
   Line_of_score();
     
-  void add_element (Score_element *);
-
   /// is #c# contained in #*this#?
   bool contains_b (Paper_column const *c) const;
-    
-  Link_array<Line_of_score> get_lines() const;
-  Line_of_score * set_breaking (Array<Column_x_positions> const&, int j) const;
-
-protected:
-  virtual Link_array<Score_element> get_extra_dependencies () const;
+  int element_count () const;
 
+  void break_into_pieces (Array<Column_x_positions> const&);
+  void output_lines ();
 
-  virtual Interval do_width() const;
-  virtual void do_print() const;
+  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);
 };