source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "axis-group-item.hh"
#include "p-col.hh"
void
Axis_group_item::OK() const
{
- Link_array<Score_elem> elems = axis_admin_.elem_l_arr_;
- for (int i=0; i < elems.size(); i++) {
- Item * it_l = elems[i]->item();
- assert(it_l);
-
- // somebody probably broke it in pieces
- assert (it_l->pcol_l_ == pcol_l_ );
+ Link_array<Score_element> elems = elem_l_arr ();
+ for (int i=0; i < elems.size(); i++)
+ {
+ Item * it_l = dynamic_cast<Item*> (elems[i]);
+ assert (it_l);
}
}
void
Axis_group_item::do_breakable_col_processing()
{
- if (!pcol_l_->breakable_b())
- return;
- OK();
- copy_breakable_items();
-
+ if (!breakable_b_ || !column_l ()->breakable_b_) // ugh should merge with Item code
+ return;
+
+ OK();
+ copy_breakable_items();
+
- Link_array<Score_elem> elems = axis_admin_.elem_l_arr_;
- for (int i=0; i < elems.size(); i++) {
- Item* it_l = elems[i]->item();
- for ( int j=0; j < 2; j++) {
- Item *new_l = it_l->find_prebroken_piece(broken_to_a_[j]->pcol_l_);
- ((Axis_group_item*)broken_to_a_[j])->add_element( new_l );
+ Link_array<Score_element> elems = elem_l_arr ();
+ for (int i=0; i < elems.size(); i++)
+ {
+ Item* it_l = dynamic_cast<Item*> (elems[i]);
+ Direction j=LEFT;
+ do
+ {
+ Item *new_l =
+ it_l->find_prebroken_piece (broken_to_drul_[j]->break_status_dir_);
+ (dynamic_cast<Axis_group_item*> (broken_to_drul_[j]))->add_element (new_l);
}
+ while (flip(&j)!=LEFT);
}
- Item::do_breakable_col_processing();
+ Item::do_breakable_col_processing();
}
void
Axis_group_item::do_print() const
{
- Axis_group_element::do_print();
+ Axis_group_element::do_print();
+ Item::do_print ();
}