source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "p-score.hh"
broken_to_drul_[LEFT] = broken_to_drul_[RIGHT]=0;
}
+bool
+Item::breakable_b () const
+{
+ return !unbroken_original_l_
+ && dynamic_cast<Item*>(parent_l (X_AXIS))->breakable_b ();
+}
+
void
Item::do_print() const
{
Graphical_element *g = parent_l (X_AXIS);
if (!g)
return 0;
- return dynamic_cast <Score_element *> (g)-> line_l ();
+ return dynamic_cast<Score_element *> (g)-> line_l ();
}
Direction
void
Item::copy_breakable_items()
{
- if (broken_to_drul_[LEFT] || broken_to_drul_[RIGHT])
+ if (broken_to_drul_[LEFT] || broken_to_drul_[RIGHT]
+ || ! breakable_b ())
return;
+
Drul_array<Item *> new_copies;
Direction i=LEFT;
do
*/
add_dependency (broken_to_drul_[LEFT]);
add_dependency (broken_to_drul_[RIGHT]);
-
}
void
Item::do_breakable_col_processing()
{
- if (breakable_b_)
+ if (breakable_b ())
do_break ();
}
void
Item::handle_prebroken_dependents ()
{
- Dimension_cache * dim = dim_cache_[X_AXIS].parent_l_;
- if (!dim)
- return;
-
- Item * parent = dynamic_cast<Item*> (dim->element_l ());
- if (parent && parent->broken_to_drul_[LEFT])
+ Item * parent = dynamic_cast<Item*> (parent_l( X_AXIS));
+ if (breakable_b () && parent)
{
- if(!(broken_to_drul_[LEFT] || broken_to_drul_[RIGHT]))
+ if(!(broken_to_drul_[LEFT] || broken_to_drul_[RIGHT]))
do_break ();
Direction d = LEFT;