From 4fe0ee113d09d890aa7919ddc77ecdc917d4d342 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:51:16 +0000 Subject: [PATCH] lilypond-0.1.7 --- lily/elem-group.cc | 178 ++++++++++++--------------------------------- 1 file changed, 45 insertions(+), 133 deletions(-) diff --git a/lily/elem-group.cc b/lily/elem-group.cc index badb6db851..5115c5c70b 100644 --- a/lily/elem-group.cc +++ b/lily/elem-group.cc @@ -1,5 +1,5 @@ /* - elem-group.cc -- implement Horizontal_vertical_group + elem-group.cc -- implement Horizontal_vertical_group_element source file of the GNU LilyPond music typesetter @@ -11,195 +11,107 @@ #include "item.hh" #include "debug.hh" -bool -Elbement_group::contains_b(Score_elem const*e)const +void +Axis_group_element::do_unlink() { - return elem_l_arr_.find_l(e); + remove_all(); } -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 +bool +Axis_group_element::contains_b(Score_elem const*e)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; + return axis_admin_.contains_b(e); } - -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) +Link_array +Axis_group_element::get_extra_dependencies()const { - assert(i_l!= this); - assert(! contains_b(i_l)); - - elem_l_arr_.push(i_l); - add_dependency(i_l); + return axis_admin_.elem_l_arr_; } void -Horizontal_group::add_element(Score_elem*elt) +Axis_group_element::do_print()const { - assert ( !elt->x_group_l_ ); - elt->x_group_l_ = this; - Elbement_group::add_element(elt); + axis_admin_.print(); } -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) +Vertical_group_element::add_element(Score_elem*e) { - for (int i=0; i < elem_l_arr_.size(); i++) - elem_l_arr_[i]->translate_x(x); + axis_admin_.add_element(e, this, Y_AXIS, Y_AXIS); } void -Vertical_group::translate_y(Real y) +Vertical_group_element::remove_element(Score_elem*e) { - for (int i=0; i < elem_l_arr_.size(); i++) - elem_l_arr_[i]->translate_y(y); + axis_admin_.remove_element(e, Y_AXIS, Y_AXIS); } -IMPLEMENT_IS_TYPE_B1(Elbement_group, Score_elem); - -void -Elbement_group::do_print() const +Interval +Vertical_group_element::do_height() const { -#ifndef NPRINT - for (int i=0; i < elem_l_arr_.size(); i++) - mtor << elem_l_arr_[i]->name() << ' '; -#endif + return axis_admin_.extent(Y_AXIS); } - void -Horizontal_group::do_substitute_dependency(Score_elem* old, Score_elem *new_l) +Vertical_group_element::remove_all() { - 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_.remove_all(Y_AXIS,Y_AXIS); } +// **************** void -Vertical_group::do_substitute_dependency(Score_elem* old, Score_elem *new_l) -{ - 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); - } - } -} - -Vertical_group::Vertical_group(Vertical_group - const &s) - : Elbement_group(s) +Horizontal_group_element::remove_all() { + axis_admin_.remove_all(X_AXIS,X_AXIS); } -Horizontal_group::Horizontal_group(Horizontal_group - const &s) - : Elbement_group(s) +void +Horizontal_group_element::add_element(Score_elem*e) { + axis_admin_.add_element(e,this, X_AXIS,X_AXIS); } -Elbement_group::Elbement_group() +void +Horizontal_group_element::remove_element(Score_elem*e) { - transparent_b_ = true; + axis_admin_.remove_element(e,X_AXIS,X_AXIS); } -IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group, Horizontal_group, Vertical_group); - -Horizontal_vertical_group::Horizontal_vertical_group() +Interval +Horizontal_group_element::do_width()const { + return axis_admin_.extent(X_AXIS); } -void -Horizontal_vertical_group::do_substitute_dependency(Score_elem*o,Score_elem*n) -{ - Vertical_group::do_substitute_dependency(o,n); - Horizontal_group::do_substitute_dependency(o,n); -} -void -Horizontal_vertical_group::add_element(Score_elem*e) -{ - Vertical_group::add_element(e); - Horizontal_group::add_element(e); -} +// **************** void -Horizontal_vertical_group::do_print()const +Horizontal_vertical_group_element::remove_all() { - Vertical_group::do_print(); + axis_admin_.remove_all(X_AXIS,Y_AXIS); } - void -Vertical_group::do_print()const +Horizontal_vertical_group_element::add_element(Score_elem *e) { - Elbement_group::do_print(); + axis_admin_.add_element(e, this, X_AXIS, Y_AXIS); } void -Horizontal_group::do_print() const +Horizontal_vertical_group_element::remove_element(Score_elem*e) { - Elbement_group::do_print(); + axis_admin_.remove_element(e, X_AXIS, Y_AXIS); } -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); -- 2.39.5