]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-margin-engraver.cc
release: 1.1.41
[lilypond.git] / lily / staff-margin-engraver.cc
index 7363f07a992258e1c6778585bc5ac04f35fc7932..2d352365f62fa3f82a015421a8e96e240a2e5bd3 100644 (file)
@@ -23,12 +23,10 @@ Staff_margin_engraver::Staff_margin_engraver ()
 }
 
 
-
 /*
     TODO
-    fix alignment/support
 
-    should be able to set whole paragraph (multiple lines, centre) to
+    should be able to set whole paragraph (multiple lines, center) to
     left (right?) of staff, e.g.:
                     ______
                    |_______
@@ -37,13 +35,10 @@ Staff_margin_engraver::Staff_margin_engraver ()
                   |______________
 */
 void
-Staff_margin_engraver::acknowledge_element (Score_element_info i)
+Staff_margin_engraver::acknowledge_element (Score_element_info inf)
 {
-  Bar * b =dynamic_cast<Bar *> (i.elem_l_);
-  if (!b)
-    return ;
-
-  if (i.origin_grav_l_arr_.size() != 1)
+  Item *i = cast_to_interesting_item (inf.elem_l_);
+  if (!i || inf.origin_grav_l_arr_.size() != 1)
     return;
 
 
@@ -58,7 +53,13 @@ Staff_margin_engraver::acknowledge_element (Score_element_info i)
   create_items (0);
   text_p_->text_str_ = long_str;
   staff_side_p_->dir_ = LEFT;
-  Bar_script_engraver::acknowledge_element(i);
+  Bar_script_engraver::do_acknowledge_element (i);
+
+  /*
+    UGH. ignores font size settings.
+   */
+  Interval iv(text_p_->extent (Y_AXIS));
+  text_p_->translate_axis (- iv.center (),  Y_AXIS);
 }