]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/accidental-placement.cc
duh
[lilypond.git] / lily / accidental-placement.cc
index d8bd7aaeb84ba75434f9580b6ea41249d4c5c709..bfe0f1b58a368c8e2611e286eea75b20bebac6a5 100644 (file)
@@ -27,9 +27,9 @@ Accidental_placement::alignment_callback(SCM s, SCM )
   Grob * me =unsmob_grob (s);
 
   Grob * par = me->get_parent (X_AXIS);
-  if (!to_boolean (par->get_grob_property ("alignment-done")))
+  if (!to_boolean (par->get_grob_property ("positioning-done")))
     {
-      par->set_grob_property ("alignment-done", SCM_BOOL_T);
+      par->set_grob_property ("positioning-done", SCM_BOOL_T);
       position_accidentals (par);
     }
 
@@ -121,7 +121,7 @@ Accidental_placement::get_relevant_accidental_extent (Grob *me,
 
   if (!extent.is_empty ())
     {
-      Real p = gh_scm2double (me->get_grob_property ("left-padding"));
+      Real p = robust_scm2double (me->get_grob_property ("left-padding"), 0.2);
       extent[LEFT] -= p;
     }
   
@@ -234,6 +234,18 @@ stagger_apes (Link_array<Accidental_placement_entry> *apes)
 
 */
 
+/*
+  TODO: there should be more space in the following situation
+
+
+    Natural + downstem
+
+    |_       
+    | |    X
+    |_|   | 
+      |   |
+      
+ */
 SCM
 Accidental_placement::position_accidentals (Grob * me)
 {
@@ -368,15 +380,10 @@ Accidental_placement::position_accidentals (Grob * me)
   head_ape-> left_skyline_ = head_skyline;
   head_ape->offset_ = 0.0;
 
-  SCM rs = me->get_grob_property ("right-padding");
-  if (gh_number_p (rs))
-    head_ape->offset_ -= gh_scm2double (rs);
+  head_ape->offset_ -= robust_scm2double ( me->get_grob_property ("right-padding"), 0);
 
   
-  Real padding = 0.2;
-  SCM spad = me->get_grob_property ("padding");
-  if (gh_number_p (spad))
-    padding = gh_scm2double (spad);
+  Real padding = robust_scm2double (me->get_grob_property ("padding"),0.2);
 
   Array<Skyline_entry> left_skyline = head_ape->left_skyline_;
   /*
@@ -419,9 +426,8 @@ Accidental_placement::position_accidentals (Grob * me)
   for (int i = ape->extents_.size(); i--;)
     right_extent.unite (ape->offset_  + ape->extents_[i][X_AXIS]);
 
-  SCM ls = me->get_grob_property ("left-padding");
-  if (gh_number_p (rs))
-    left_extent[LEFT] -= gh_scm2double (ls);
+  
+  left_extent[LEFT] -= robust_scm2double (me->get_grob_property ("left-padding"), 0);
 
   
   Interval width(left_extent[LEFT], right_extent[RIGHT]);
@@ -438,4 +444,4 @@ Accidental_placement::position_accidentals (Grob * me)
 ADD_INTERFACE(Accidental_placement,
              "accidental-placement-interface",
              "Take care of complex accidental collisions.",
-             "left-padding padding right-padding accidental-grobs alignment-done")
+             "left-padding padding right-padding accidental-grobs positioning-done")