#include "pointer-group-interface.hh"
#include "hara-kiri-group-spanner.hh"
#include "grob-array.hh"
+#include "international.hh"
/*
TODO: for vertical spacing, should also include a rod & spring
{
Grob *me = unsmob_grob (smob);
SCM axis = scm_car (me->get_property ("axes"));
- Axis ax = (Axis)scm_to_int (axis);
+ Axis ax = Axis (scm_to_int (axis));
SCM force = me->get_property ("forced-distance");
if (scm_is_number (force))
Spanner *me_spanner = dynamic_cast<Spanner *> (me);
extract_grob_set (me, "elements", elems);
+
if (me_spanner && elems.size ())
{
Grob *common = common_refpoint_of_array (elems, me, Y_AXIS);
extract_grob_set (me, "elements", elem_source);
- Link_array__Grob_ elems (elem_source); // writable..
+ vector<Grob*> elems (elem_source); // writable..
Real where_f = 0;
Interval v;
v.set_empty ();
- std::vector<Real> translates;
+ vector<Real> translates;
for (vsize j = elems.size (); j--;)
{
SCM line_break_details = SCM_EOL;
if (a == Y_AXIS && me_spanner)
- line_break_details = me_spanner->get_bound (LEFT)->get_property ("line-break-system-details");
+ {
+ line_break_details = me_spanner->get_bound (LEFT)->get_property ("line-break-system-details");
+
+ if (!me->get_system ())
+ me->warning (_ ("vertical alignment called before line-breaking.\n"
+ "Only do cross-staff spanners with PianoStaff."));
+
+ }
Direction stacking_dir = robust_scm2dir (me->get_property ("stacking-dir"),
DOWN);
Interval threshold = robust_scm2interval (me->get_property ("threshold"),
Interval (0, Interval::infinity ()));
- std::vector<Interval> dims;
- Link_array__Grob_ elems;
+ vector<Interval> dims;
+ vector<Grob*> elems;
extract_grob_set (me, "elements", all_grobs);
for (vsize i = 0; i < all_grobs.size (); i++)
: SCM_EOL,
extra_space);
- std::vector<Real> translates;
+ vector<Real> translates;
for (vsize j = 0; j < elems.size (); j++)
{
Real dy = -dims[j][-stacking_dir];
/*
also move the grobs that were empty, to maintain spatial order.
*/
- std::vector<Real> all_translates;
+ vector<Real> all_translates;
if (translates.size ())
{
Real w = translates[0];