]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/paper-column.hh
Run grand-replace (issue 3765)
[lilypond.git] / lily / include / paper-column.hh
index e0510bc7f8c6070b99d0a0a44fb45bc2565d0f6c..c1638a2539f45bf47121886f31c7b2a2f6cf294c 100644 (file)
@@ -1,74 +1,64 @@
 /*
-  paper-column.hh -- declare  Paper_column
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
 
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
-#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"
-
-/**
-   stuff grouped vertically.
-    This is a class to address items vertically. It contains the data for:
-    \begin{itemize}
-    \item
-    unbroken score
-    \item
-    broken score
-    \item
-    the linespacing problem
-    \end{itemize}
-  */
 
 class Paper_column : public Item
-{ 
-public:
-  VIRTUAL_COPY_CONS(Score_element);
-  Drul_array<Array<Column_rod> > minimal_dists_arr_drul_;
-  Drul_array<Array<Column_spring> > spring_arr_drul_;
-
-  /// set a minimum distance
-  void add_rod (Paper_column * to, Real distance);
-  void add_spring (Paper_column * to, Real dist, Real strength);
-
-  virtual Paper_column * column_l () const;
-  virtual Line_of_score *line_l () const;
-
-
+{
+  int rank_;
   /// if lines are broken then this column is in #line#
-  Line_of_score *line_l_;
-
+  System *system_;
 
-  /// which  one (left =0)
-  int rank_i() const;
+public:
+  Paper_column (SCM);
+  Paper_column (Paper_column const &);
 
-  Paper_column (Moment when);
-  Moment when_mom ()const;
+  virtual Grob *clone () const;
+  virtual void do_break_processing ();
+  virtual Paper_column *get_column () const;
+  virtual System *get_system () const;
+  void set_system (System *);
 
-  bool musical_b () const;
+  static int compare (Grob *const &a,
+                      Grob *const &b);
+  static bool less_than (Grob *const &a,
+                         Grob *const &b);
 
+  int get_rank () const { return rank_; }
   void set_rank (int);
-  virtual void do_print() const;
-private:
-    
-  /**
-    The ranking: left is smaller than right 
-    -1 is uninitialised.
-    */
-  int rank_i_;
 
+  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, SCM align_sym);
 };
 
-
-// #include "compare.hh"
-// INSTANTIATE_COMPARE(Paper_column &, Paper_column::compare);
-     
-#endif // P_COL_HH
-
+#endif // PAPER_COLUMN_HH