- figure_ = new Item (get_property ("BassFigure"));
- SCM l = SCM_EOL;
-
- for (int i = 0; i <figures_.size (); i++)
- l = gh_cons (figures_[i]->self_scm(), l);
- figure_->set_grob_property ("causes", l);
-
- announce_grob(figure_, figures_[0]->self_scm()); // todo
+ SCM proc = get_property ("bassFigureFormatFunction");
+ if (gh_procedure_p (proc))
+ {
+ SCM l = SCM_EOL;
+
+ for (int i = 0; i <figures_.size (); i++)
+ l = gh_cons (figures_[i]->self_scm(), l);
+
+ SCM markup = scm_call_2 (proc, l, daddy_trans_->self_scm ());
+
+ figure_ = make_item ("BassFigure");
+ figure_->set_grob_property ("text", markup);
+ announce_grob(figure_, figures_[0]->self_scm()); // todo
+ }