#include "elem-group-item.hh"
+#include "p-col.hh"
void
Horizontal_vertical_group_item::do_print()const
}
IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_item,Horizontal_vertical_group,Item);
-
-IMPLEMENT_IS_TYPE_B2(Horizontal_group_item, Horizontal_group, Item);
-
/*
- elem-group-item.hh -- declare Element_group_item
-
+ elem-group-item.hh -- declare Horizontal_vertical_group_item
+
source file of the GNU LilyPond music typesetter
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
virtual void do_print() const;
};
-class Horizontal_group_item : public Item, public Horizontal_group {
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEM_CLONE(Horizontal_group_item);
-protected:
- virtual void do_print() const { Elbement_group::do_print(); }
-};
-
#endif // ELEM_GROUP_ITEM_HH
Engravers put elements on the same or lowel level in a line
*/
class Line_group_engraver : public Engraver{
- Line_of_staff *staffline_p_;
+ Vertical_group_spanner *staffline_p_;
protected:
virtual void do_creation_processing();
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+
#include "p-score.hh"
#include "debug.hh"
#include "item.hh"
#include "p-col.hh"
+#include "elem-group.hh"
Item::Item()
{
pcol_l_ = 0;
-
broken_to_a_[0]
= broken_to_a_[1]=0;
}
-
IMPLEMENT_IS_TYPE_B1(Item, Score_elem);
void
return 1;
}
+void
+Item::copy_breakable_items()
+{
+ for (int i=0; i < 2; i++) {
+ Item * item_p = clone()->item();
+ item_p->copy_dependencies(*this);
+ /* add our pre and postbreaks blondly to our own y_group
+ Let Vertical_group_spanner figure out the mess.
+ */
+ if ( y_group_l_ )
+ y_group_l_->add_element( item_p );
+ pscore_l_->typeset_item(item_p, pcol_l_, -1+ 2*i);
+ item_p->handle_prebroken_dependencies();
+ broken_to_a_[i] = item_p;
+ }
+}
+
void
Item::do_breakable_col_processing()
{
if (!c->breakable_b())
return;
- for (int i=0; i < 2; i++) {
- broken_to_a_[i] = clone()->item();
- pscore_l_->typeset_item(broken_to_a_[i], c, -1+ 2*i);
- broken_to_a_[i]->handle_prebroken_dependencies();
- }
-
+ copy_breakable_items();
handle_prebroken_dependencies();
}