/*
- elem-group.cc -- implement Horizontal_vertical_group
+ elem-group.cc -- implement Horizontal_vertical_group_element
source file of the GNU LilyPond music typesetter
#include "item.hh"
#include "debug.hh"
-bool
-Elbement_group::contains_b(Score_elem const*e)const
-{
- return elem_l_arr_.find_l(e);
-}
-
-Elbement_group::Elbement_group(Elbement_group const &s)
- : Score_elem(s)
-{
-}
-
-Interval
-Vertical_group::do_height()const
-{
- Interval r;
- for (int i=0; i < elem_l_arr_.size(); i++)
- r.unite(elem_l_arr_[i]->height());
- return r;
-}
-
-Interval
-Horizontal_group::do_width()const
-{
- Interval r;
- for (int i=0; i < elem_l_arr_.size(); i++)
- if (elem_l_arr_[i]->item()) // makes no at preprocessing for spanners.
- r.unite(elem_l_arr_[i]->width());
- return r;
-}
-
-
-IMPLEMENT_IS_TYPE_B1(Horizontal_group, Elbement_group);
-IMPLEMENT_IS_TYPE_B1(Vertical_group, Elbement_group);
-
void
-Elbement_group::add_element(Score_elem*i_l)
+Vertical_group_element::add_element (Graphical_element*e)
{
- assert(i_l!= this);
- assert(! contains_b(i_l));
-
- elem_l_arr_.push(i_l);
- add_dependency(i_l);
+ axis_admin_.add_element (e, this, Y_AXIS, Y_AXIS);
}
void
-Horizontal_group::add_element(Score_elem*elt)
+Vertical_group_element::remove_element (Graphical_element*e)
{
- assert ( !elt->x_group_l_ );
- elt->x_group_l_ = this;
- Elbement_group::add_element(elt);
+ axis_admin_.remove_element (e, Y_AXIS, Y_AXIS);
}
-void
-Vertical_group::add_element(Score_elem*e)
-{
- assert( ! e->y_group_l_ );
- e->y_group_l_ = this;
- Elbement_group::add_element(e);
-}
-
-
-void
-Horizontal_group::translate_x(Real x)
+Interval
+Vertical_group_element::do_height() const
{
- for (int i=0; i < elem_l_arr_.size(); i++)
- elem_l_arr_[i]->translate_x(x);
+ return axis_admin_.extent (Y_AXIS);
}
-
void
-Vertical_group::translate_y(Real y)
+Vertical_group_element::remove_all()
{
- for (int i=0; i < elem_l_arr_.size(); i++)
- elem_l_arr_[i]->translate_y(y);
+ axis_admin_.remove_all (Y_AXIS,Y_AXIS);
}
-
-IMPLEMENT_IS_TYPE_B1(Elbement_group, Score_elem);
+// ****************
void
-Elbement_group::do_print() const
+Horizontal_group_element::remove_all()
{
-#ifndef NPRINT
- for (int i=0; i < elem_l_arr_.size(); i++)
- mtor << elem_l_arr_[i]->name() << ' ';
-#endif
+ axis_admin_.remove_all (X_AXIS,X_AXIS);
}
void
-Horizontal_group::do_substitute_dependency(Score_elem* old, Score_elem *new_l)
+Horizontal_group_element::add_element (Graphical_element*e)
{
- int i;
-
- while ((i=elem_l_arr_.find_i(old))>=0) {
- old->x_group_l_ =0;
-
- if (new_l){
- new_l->x_group_l_ = this;
- elem_l_arr_[i] = new_l;
- }else {
- elem_l_arr_.unordered_del(i);
- }
- }
+ axis_admin_.add_element (e,this, X_AXIS,X_AXIS);
}
void
-Vertical_group::do_substitute_dependency(Score_elem* old, Score_elem *new_l)
+Horizontal_group_element::remove_element (Graphical_element*e)
{
- int i;
-
- while ((i=elem_l_arr_.find_i(old))>=0) {
- old->y_group_l_ =0;
-
- if (new_l){
- new_l->y_group_l_ =this;
- elem_l_arr_[i] = new_l;
- }else {
- elem_l_arr_.unordered_del(i);
- }
- }
+ axis_admin_.remove_element (e,X_AXIS,X_AXIS);
}
-Vertical_group::Vertical_group(Vertical_group
- const &s)
- : Elbement_group(s)
-{
-}
-Horizontal_group::Horizontal_group(Horizontal_group
- const &s)
- : Elbement_group(s)
-{
-}
-
-Elbement_group::Elbement_group()
+Interval
+Horizontal_group_element::do_width() const
{
- transparent_b_ = true;
+ return axis_admin_.extent (X_AXIS);
}
-IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group, Horizontal_group, Vertical_group);
-
-Horizontal_vertical_group::Horizontal_vertical_group()
-{
-}
+// ****************
void
-Horizontal_vertical_group::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Horizontal_vertical_group_element::remove_all()
{
- Vertical_group::do_substitute_dependency(o,n);
- Horizontal_group::do_substitute_dependency(o,n);
+ axis_admin_.remove_all (X_AXIS,Y_AXIS);
}
-
void
-Horizontal_vertical_group::add_element(Score_elem*e)
+Horizontal_vertical_group_element::add_element (Graphical_element *e)
{
- Vertical_group::add_element(e);
- Horizontal_group::add_element(e);
+ axis_admin_.add_element (e, this, X_AXIS, Y_AXIS);
}
void
-Horizontal_vertical_group::do_print()const
+Horizontal_vertical_group_element::remove_element (Graphical_element*e)
{
- Vertical_group::do_print();
+ axis_admin_.remove_element (e, X_AXIS, Y_AXIS);
}
-void
-Vertical_group::do_print()const
-{
- Elbement_group::do_print();
-}
-void
-Horizontal_group::do_print() const
-{
- Elbement_group::do_print();
-}
-
-
-
-void
-Vertical_group::remove_element(Score_elem*s)
-{
- remove_dependency( s );
-}
-void
-Horizontal_group::remove_element(Score_elem*s)
-{
- remove_dependency( s );
-}
+IMPLEMENT_IS_TYPE_B1(Axis_group_element, Score_elem);
+IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
+IMPLEMENT_IS_TYPE_B1(Vertical_group_element, Axis_group_element);
+IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);