(c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
+#include "dimension-cache.hh"
#include "super-element.hh"
#include "line-of-score.hh"
#include "debug.hh"
#include "item.hh"
#include "score-engraver.hh"
-#include "p-score.hh"
+#include "paper-score.hh"
#include "musical-request.hh"
#include "score-column.hh"
#include "command-request.hh"
#include "paper-def.hh"
-
-
Score_engraver::Score_engraver()
{
break_penalty_i_ = 0;
removal_processing();
}
+/*
+ use start/finish?
+ */
void
-Score_engraver::do_creation_processing()
+Score_engraver::do_creation_processing ()
{
scoreline_l_ = pscore_p_->line_l_;
- scoreline_l_->set_bounds(LEFT,command_column_l_);
+
+ scoreline_l_->set_bounds(LEFT, command_column_l_);
+
command_column_l_->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
+
Engraver_group_engraver::do_creation_processing();
}
+
void
Score_engraver::do_removal_processing()
{
Engraver_group_engraver::do_announces, then
announce_info_arr_.size() will be nonzero again
*/
+/* junkme? Done by Engraver_group_engraver::do_announces ()?
+ */
+
void
Score_engraver::do_announces()
{
{
Score_element * elem_p = elem_p_arr_[i];
elem_p->add_processing ();
+
+#if 0 // TODO!
+ /*
+ elem_p wants to be connected to the rest of the
+ dependency graph.
+ */
+
+ if (elem_p->get_elt_property (dangling_scm_sym) != SCM_BOOL_F)
+ scoreline_l_->add_dependency (elem_p);
+#endif
+
if (Spanner *s = dynamic_cast <Spanner *> (elem_p))
{
/*
if (!s->spanned_drul_[d])
{
s->set_bounds(d, command_column_l_);
- ::warning (_f ("Unbound spanner `%s\'", classname(s)));
+ ::warning (_f ("unbound spanner `%s'", classname(s)));
}
} while (flip(&d) != LEFT);
}
musical_column_l_->add_element(item_p);
}
}
- if (!elem_p->dim_cache_[Y_AXIS]->parent_l_)
+ if (!elem_p->parent_l(Y_AXIS))
scoreline_l_->add_element (elem_p);
}
elem_p_arr_.clear();
if (!gotcha)
{
+ /*
+ UGH! THIS IS NOT SYMMETRIC. CLEAN ME UP!
+ */
if (Break_req* b = dynamic_cast<Break_req *> (r))
{
gotcha = true;
}
}
return gotcha;
-
}
+void
+Score_engraver::forbid_breaks ()
+{
+ break_penalty_i_ = Break_req::DISALLOW;
+}
ADD_THIS_TRANSLATOR(Score_engraver);