]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/paper-column.hh
Merge branch 'master' of ssh://jneem@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / lily / include / paper-column.hh
index cc4778ddddfcff7b5b4d75cf92927bfc3c169460..cc2e2b90f1f530fe7ae14e077077d1381380c145 100644 (file)
@@ -3,43 +3,55 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
-
-#ifndef P_COL_HH
-#define P_COL_HH
+#ifndef PAPER_COLUMN_HH
+#define PAPER_COLUMN_HH
 
 #include "item.hh"
 #include "rod.hh"
-#include "spring.hh"
 
 class Paper_column : public Item
-{ 
+{
+  int rank_;
+  /// if lines are broken then this column is in #line#
+  System *system_;
+
+  // ugh: friend declarations.
+  friend void set_loose_columns (System *which, Column_x_positions const *posns);
+  friend class System;
 public:
-  VIRTUAL_COPY_CONS(Score_element);
+  Paper_column (SCM);
+  Paper_column (Paper_column const &);
 
-  /*
-    Not (yet) in scm, because of messy effects when a column commits suicide.
-   */
-  int  rank_i_;
+  virtual Grob *clone () const;
   virtual void do_break_processing ();
-  virtual Paper_column *column_l () const;
-  virtual Line_of_score *line_l () const;
-
-  /// if lines are broken then this column is in #line#
-  Line_of_score *line_l_;
-
-  /// which  one (left =0)
-  static int rank_i(Score_element*);
+  virtual Paper_column *get_column () const;
+  virtual System *get_system () const;
+  void set_system (System *);
 
-  Paper_column (SCM);
-  bool musical_b () const;
-  static Moment when_mom (Score_element*);
+  static int compare (Grob * const &a,
+                     Grob * const &b);
+  static bool less_than (Grob *const &a,
+                        Grob *const &b);
 
-  static bool used_b (Score_element*) ;
+  int get_rank () const { return rank_; }
   void set_rank (int);
+
+  DECLARE_SCHEME_CALLBACK (print, (SCM));
+  DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM));
+
+  DECLARE_GROB_INTERFACE();
+  static int get_rank (Grob const *);
+  static bool is_musical (Grob *);
+  static Moment when_mom (Grob *);
+  static bool is_used (Grob *);
+  static bool is_breakable (Grob *);
+  static bool is_extraneous_column_from_ligature (Grob *);
+  static Real minimum_distance (Grob *l, Grob *r);
+  static Interval break_align_width (Grob *me);
 };
-     
-#endif // P_COL_HH
+
+#endif // PAPER_COLUMN_HH