#include "axis-group-spanner.hh"
#include "debug.hh"
#include "item.hh"
-#include "p-col.hh"
+#include "paper-column.hh"
/** Do stuff if we're not broken. In this case the last and first
columns usually are pre- and postbreak respectively,
{
Item * item_l = dynamic_cast<Item*> (elems[i]);
if (item_l
- && item_l->breakable_b_
+ && item_l->breakable_b ()
&& item_l->break_status_dir() == 0)
{
// last two checks are paranoia
item_l->find_prebroken_piece (my_line);
add_element (broken_item_l);
}
- remove_element (elems[i]);
+
+ Spanner *spanner_l = dynamic_cast<Spanner*> (elems[i]);
+ if (spanner_l)
+ {
+ Spanner *broken_spanner_l =
+ spanner_l->find_broken_piece (my_line);
+ add_element (broken_spanner_l);
+ }
+ remove_element (elems[i]);
}
+
}
}
void
Axis_group_spanner::do_break_processing()
{
- DOUT << "do_break_processing ()\n";
+
bool breaking_self_b = ! Spanner::line_l();
if (!breaking_self_b)
{
Item *it = dynamic_cast <Item *> (elt) ;
if (Spanner * sp =dynamic_cast <Spanner *> (elt))
{
- for (int j =0; j < sp->broken_info_.size(); j++)
+ for (int j =0; j < sp->broken_into_l_arr_.size(); j++)
{
- Line_of_score *l = sp->broken_info_[j].line_l_;
+ Line_of_score *l = sp->broken_into_l_arr_[j]->line_l ();
Axis_group_spanner * my_broken_l
= dynamic_cast<Axis_group_spanner*>(find_broken_piece (l));
my_broken_l->add_element (broken_span_l);
}
}
- else if (it && it->breakable_b_ && it->break_status_dir () == 0)
+ else if (it && it->broken_original_b ())
{
// broken items
Direction j=LEFT;
do
{
- Item * my_item = it->broken_to_drul_[j];
- Line_of_score * item_line_l = my_item->line_l() ;
+ Item * broken_item = it->find_prebroken_piece (j);
+ Line_of_score * item_line_l = broken_item->line_l() ;
if (! item_line_l)
continue;
Axis_group_spanner * v
= dynamic_cast<Axis_group_spanner*>(find_broken_piece (item_line_l));
if (v)
- v->add_element (my_item);
+ v->add_element (broken_item);
else
{
- my_item->transparent_b_ = true;
- my_item->set_empty (true);
+ broken_item->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+ broken_item->set_empty (true);
}
}
}
-
-
+Interval
+Axis_group_spanner::do_width () const
+{
+ return Spanner::do_width ();
+}