]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grob.cc
new file
[lilypond.git] / lily / grob.cc
index d127c0094dddf5a80e698095f2044e4d13335cb5..fca538fb7eb67bd601cae254bda3c2e8b0729fb1 100644 (file)
@@ -25,8 +25,9 @@
 #include "misc.hh"
 #include "music.hh"
 #include "item.hh"
-
+#include "paper-score.hh"
 #include "ly-smobs.icc"
+#include "output-def.hh"
 
 Grob *
 Grob::clone (int count) const
@@ -171,7 +172,7 @@ robust_relative_extent (Grob *me, Grob *refp, Axis a)
 Output_def *
 Grob::get_layout () const
 {
-  return pscore_ ? pscore_->layout_ : 0;
+  return pscore_ ? pscore_->layout () : 0;
 }
 
 /* Recursively track all dependencies of this Grob.  The status_ field
@@ -187,7 +188,7 @@ Grob::calculate_dependencies (int final, int busy, SCM funcname)
 
   if (status_ == busy)
     {
-      programming_error ("Element is busy, come back later");
+      programming_error ("element is busy, come back later");
       return;
     }
 
@@ -239,12 +240,14 @@ Grob::get_uncached_stencil () const
        stil = Stencil (m->extent_box (), SCM_EOL).smobbed_copy ();
       else
        {
-         SCM expr = scm_list_3 (ly_symbol2scm ("grob-cause"), self_scm (),
-                                m->expr ());
+         SCM expr = m->expr ();
+         if (point_and_click_global)
+           expr = scm_list_3 (ly_symbol2scm ("grob-cause"), self_scm (), expr);
+         
          stil = Stencil (m->extent_box (), expr).smobbed_copy ();
        }
 
-      /* color support... see interpret_stencil_expression() for more... */
+      /* color support... see interpret_stencil_expression () for more... */
       SCM color = get_property ("color");
       if (color != SCM_EOL)
        {
@@ -278,10 +281,9 @@ void
 Grob::add_dependency (Grob *e)
 {
   if (e)
-    Pointer_group_interface::add_grob (this, ly_symbol2scm ("dependencies"),
-                                      e);
+    Pointer_group_interface::add_grob (this, ly_symbol2scm ("dependencies"), e);
   else
-    programming_error ("Null dependency added");
+    programming_error ("null dependency added");
 }
 
 void
@@ -627,8 +629,8 @@ Grob::warning (String s) const
 void
 Grob::programming_error (String s) const
 {
-  s = "Programming error: " + s;
-  warning (s);
+  s = _f ("programming error: %s", s);
+  message (s);
 }
 
 /****************************************************
@@ -661,6 +663,9 @@ Grob::mark_smob (SCM ses)
   if (s->original_)
     scm_gc_mark (s->original_->self_scm ());
 
+  if (s->pscore_ && s->pscore_->layout ())
+    scm_gc_mark (s->pscore_->layout ()->self_scm ());
+
   s->do_derived_mark ();
   return s->mutable_property_alist_;
 }