Revised over good by Han-Wen.
*/
-#include "stencil.hh"
-#include "text-item.hh"
#include "text-spanner.hh"
+
+#include "text-item.hh"
#include "line-spanner.hh"
#include "spanner.hh"
#include "font-interface.hh"
#include "dimensions.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
#include "warn.hh"
#include "paper-column.hh"
#include "staff-symbol-referencer.hh"
SCM
Text_spanner::print (SCM smob)
{
- Grob *me= unsmob_grob (smob);
+ Grob *me = unsmob_grob (smob);
Spanner *spanner = dynamic_cast<Spanner*> (me);
/* Ugh, must be same as Hairpin::print. */
Grob *common = spanner->get_bound (LEFT)->common_refpoint (spanner->get_bound (RIGHT), X_AXIS);
- Paper_def * paper = me->get_paper ();
+ Output_def * layout = me->get_layout ();
SCM flare = me->get_property ("bracket-flare");
SCM shorten = me->get_property ("shorten-pair");
else
{
Real encl = robust_scm2double (me->get_property ("enclose-bounds"), 0.0);
- span_points[d] = b->extent (common, X_AXIS).linear_combination (d * encl);
+ Interval ext = b->extent (common, X_AXIS);
+
+ span_points[d] =
+ robust_relative_extent (b, common, X_AXIS).linear_combination (d * encl);
if (is_number_pair (shorten))
- span_points -= d * gh_scm2double (index_get_cell (shorten, d));
+ span_points -= d * scm_to_double (index_get_cell (shorten, d));
}
if (is_number_pair (flare))
- span_points -= d * gh_scm2double (index_get_cell (flare, d));
+ span_points -= d * scm_to_double (index_get_cell (flare, d));
}
while (flip (&d) != LEFT);
- SCM properties = Font_interface::font_alist_chain (me);
+ SCM properties = Font_interface::text_font_alist_chain (me);
SCM edge_text = me->get_property ("edge-text");
Drul_array<Stencil> edge;
- if (gh_pair_p (edge_text))
+ if (scm_is_pair (edge_text))
{
Direction d = LEFT;
do
SCM text = index_get_cell (edge_text, d);
- if (Text_item::markup_p (text))
- edge[d] = *unsmob_stencil (Text_item::interpret_markup (paper->self_scm (), properties, text));
+ if (Text_interface::markup_p (text))
+ edge[d] = *unsmob_stencil (Text_interface::interpret_markup (layout->self_scm (), properties, text));
if (!edge[d].is_empty ())
edge[d].align_to (Y_AXIS, CENTER);
Real dx = 0.0;
if (is_number_pair (flare))
- dx = gh_scm2double (index_get_cell (flare, d)) * d;
+ dx = scm_to_double (index_get_cell (flare, d)) * d;
Real dy = - dir * edge_height[d] ;
if (dy)
if (!span_points.is_empty ())
{
- Stencil l =Line_spanner::line_stencil (me, Offset (span_points[LEFT], 0),
+ Stencil l = Line_spanner::line_stencil (me, Offset (span_points[LEFT], 0),
Offset (span_points[RIGHT], 0));
m.add_stencil (l);
}
ADD_INTERFACE (Text_spanner,"text-spanner-interface",
"generic text spanner",
- "dash-period if-text-padding dash-fraction edge-height bracket-flare edge-text shorten-pair style thickness enclose-bounds");
+ "dash-period dash-fraction edge-height bracket-flare edge-text shorten-pair style thickness enclose-bounds");