- SCM gl = inf.grob ()->get_property ("glyph");
- SCM my_gl = delim_->get_property ("glyph");
-
- /*
- UGH UGH
- */
- if (scm_is_string (gl) && ly_is_equal (gl, scm_makfrom0str ("brace"))
- && scm_is_string (my_gl) && ly_is_equal (my_gl, scm_makfrom0str ("bracket")))
- inf.grob ()->translate_axis (-0.8, X_AXIS); // ugh
- else if (scm_is_string (gl) && ly_is_equal (gl, scm_makfrom0str ("bracket"))
- && scm_is_string (my_gl) && ly_is_equal (my_gl, scm_makfrom0str ("bracket")))
+ if (parent)
+ Side_position_interface::add_support (delimiter_, parent);
+
+ for (vsize i = 0; i < children_.size (); i++)
+ children_[i]->set_nesting_support (delimiter_);
+}
+
+void
+Bracket_nesting_group::from_list (SCM x)
+{
+ for (SCM s = x; scm_is_pair (s); s = scm_cdr (s))
+ {
+ SCM entry = scm_car (s);
+ if (scm_is_pair (entry))
+ {
+ Bracket_nesting_group *node = new Bracket_nesting_group;
+ node->from_list (entry);
+ children_.push_back (node);
+ }
+ else if (scm_is_eq (entry, ly_symbol2scm ("SystemStartBrace"))
+ || scm_is_eq (entry, ly_symbol2scm ("SystemStartBracket"))
+ || scm_is_eq (entry, ly_symbol2scm ("SystemStartBar"))
+ || scm_is_eq (entry, ly_symbol2scm ("SystemStartSquare")))
+ symbol_ = entry;
+ else
+ children_.push_back (new Bracket_nesting_staff (0));
+ }
+}
+
+bool
+Bracket_nesting_group::add_staff (Grob *grob)
+{
+ for (vsize i = 0; i < children_.size (); i++)