]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.55
authorfred <fred>
Tue, 26 Mar 2002 23:22:16 +0000 (23:22 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:22:16 +0000 (23:22 +0000)
lily/pointer-group-interface.cc [new file with mode: 0644]
lily/score-engraver.cc
lily/spanner.cc

diff --git a/lily/pointer-group-interface.cc b/lily/pointer-group-interface.cc
new file mode 100644 (file)
index 0000000..f20aea2
--- /dev/null
@@ -0,0 +1,55 @@
+/*   
+  group-interface.cc --  implement Pointer_group_interface
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+#include "group-interface.hh"
+#include "score-element.hh"
+
+Pointer_group_interface::Pointer_group_interface (Score_element const* e)
+{
+  elt_l_ = (Score_element*)e;
+  name_ = "elements";
+}
+
+
+Pointer_group_interface::Pointer_group_interface (Score_element const *e, String s)
+{
+  elt_l_ =(Score_element*)e;
+  name_ = s;
+} 
+bool
+Pointer_group_interface::has_interface_b () 
+{
+  SCM el = elt_l_->get_elt_pointer (name_.ch_C());
+
+  return el == SCM_EOL || gh_pair_p (el);
+}
+
+
+void
+Pointer_group_interface::add_element (Score_element*p) 
+{
+  elt_l_->set_elt_pointer (name_.ch_C(),
+                          gh_cons (p->self_scm_,
+                                   elt_l_->get_elt_pointer (name_.ch_C())));
+}
+
+int
+Pointer_group_interface::count ()
+{
+  return scm_ilength (elt_l_->get_elt_pointer (name_.ch_C()));
+}
+
+void
+Pointer_group_interface::set_interface ()
+{
+  if (!has_interface_b ())
+    {
+      elt_l_->set_elt_pointer (name_.ch_C(), SCM_EOL);
+    }
+} 
+
index 7b7dbe428a6f19fbc025a72f76272120b9cb9847..b84406fa151f2a95b761210f9924d4d9ccd984d2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  score-grav.cc -- implement Score_engraver
+  score-engraver.cc -- implement Score_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -74,8 +74,6 @@ Score_engraver::do_removal_processing()
   typeset_all ();
 
 
-  if (musical_column_l_->linked_b ())
-    programming_error ("Last column in score should be non-musical");
   set_columns (0,0);
 }
 
@@ -146,7 +144,7 @@ Score_engraver::typeset_all()
        {
          if (!elem_p->parent_l (X_AXIS))
            {
-             bool br = to_boolean (elem_p->remove_elt_property ("breakable"));
+             bool br = to_boolean (elem_p->get_elt_property ("breakable"));
              Axis_group_interface gi ((br) ? command_column_l_ : musical_column_l_) ;
              gi.add_element(elem_p);
            }
@@ -183,10 +181,10 @@ Score_engraver::set_columns (Paper_column *new_command_l,
     {
       if (*current[i])
        {
-         if ((*current[i])->linked_b()) 
+         if ((*current[i])->used_b())
+
            {
              scoreline_l_->add_column ((*current[i]));
-             
            }
          else
            {
index c384224889c36aa47e621ca2d3c2db55ef11c84e..01ae90892ce657273cf1a7b27f4932a6ec114c78 100644 (file)
@@ -159,10 +159,6 @@ void
 Spanner::set_bound(Direction d, Item*i)
 {
   spanned_drul_[d] =i;
-  if (i)
-    {
-      i->used_b_ = true;
-    }
 
   /**
      We check for Line_of_score to prevent the column -> line_of_score
@@ -179,7 +175,8 @@ Spanner::set_bound(Direction d, Item*i)
 }
 
 
-Spanner::Spanner ()
+Spanner::Spanner (SCM s)
+  : Score_element (s)
 {
   spanned_drul_[LEFT]=0;
   spanned_drul_[RIGHT]=0;