- Staff_symbol_referencer::do_substitute_element_pointer (o,n);
- if (Item* c = dynamic_cast <Item*> (o))
- column_arr_.substitute (c, dynamic_cast<Item*> (n));
+ Real thick_thick = robust_scm2double (me->get_property ("thick-thickness"), 1.0);
+ Real hair_thick = robust_scm2double (me->get_property ("hair-thickness"), .1);
+
+
+ Real ss = Staff_symbol_referencer::staff_space (me);
+ Real slt = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+ Real y = slt * thick_thick/2 * ss;
+ Real ythick = hair_thick * slt * ss;
+ Box b (Interval (0, 0 >? (width - 2 * ythick)), Interval (-y, y));
+
+ Real blot = width ? (.8 * (y <? ythick)) : 0.0;
+
+ Stencil m = Lookup::round_filled_box (b, blot);
+ Stencil yb = Lookup::round_filled_box (Box (Interval (-0.5, 0.5)* ythick, Interval (-ss, ss)), blot);
+
+ m.add_at_edge (X_AXIS, RIGHT, yb, 0, 0);
+ m.add_at_edge (X_AXIS, LEFT, yb, 0, 0);
+
+ m.align_to (X_AXIS, LEFT);
+
+ return m;