--- /dev/null
+/*
+ group-interface.cc -- implement Pointer_group_interface
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+#include "group-interface.hh"
+#include "score-element.hh"
+
+Pointer_group_interface::Pointer_group_interface (Score_element const* e)
+{
+ elt_l_ = (Score_element*)e;
+ name_ = "elements";
+}
+
+
+Pointer_group_interface::Pointer_group_interface (Score_element const *e, String s)
+{
+ elt_l_ =(Score_element*)e;
+ name_ = s;
+}
+bool
+Pointer_group_interface::has_interface_b ()
+{
+ SCM el = elt_l_->get_elt_pointer (name_.ch_C());
+
+ return el == SCM_EOL || gh_pair_p (el);
+}
+
+
+void
+Pointer_group_interface::add_element (Score_element*p)
+{
+ elt_l_->set_elt_pointer (name_.ch_C(),
+ gh_cons (p->self_scm_,
+ elt_l_->get_elt_pointer (name_.ch_C())));
+}
+
+int
+Pointer_group_interface::count ()
+{
+ return scm_ilength (elt_l_->get_elt_pointer (name_.ch_C()));
+}
+
+void
+Pointer_group_interface::set_interface ()
+{
+ if (!has_interface_b ())
+ {
+ elt_l_->set_elt_pointer (name_.ch_C(), SCM_EOL);
+ }
+}
+
/*
- score-grav.cc -- implement Score_engraver
+ score-engraver.cc -- implement Score_engraver
source file of the GNU LilyPond music typesetter
typeset_all ();
- if (musical_column_l_->linked_b ())
- programming_error ("Last column in score should be non-musical");
set_columns (0,0);
}
{
if (!elem_p->parent_l (X_AXIS))
{
- bool br = to_boolean (elem_p->remove_elt_property ("breakable"));
+ bool br = to_boolean (elem_p->get_elt_property ("breakable"));
Axis_group_interface gi ((br) ? command_column_l_ : musical_column_l_) ;
gi.add_element(elem_p);
}
{
if (*current[i])
{
- if ((*current[i])->linked_b())
+ if ((*current[i])->used_b())
+
{
scoreline_l_->add_column ((*current[i]));
-
}
else
{
Spanner::set_bound(Direction d, Item*i)
{
spanned_drul_[d] =i;
- if (i)
- {
- i->used_b_ = true;
- }
/**
We check for Line_of_score to prevent the column -> line_of_score
}
-Spanner::Spanner ()
+Spanner::Spanner (SCM s)
+ : Score_element (s)
{
spanned_drul_[LEFT]=0;
spanned_drul_[RIGHT]=0;