2 vertical-align-item.cc -- implement Vertical_align_elem
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "vertical-align-elem.hh"
10 #include "interval.hh"
13 Vertical_align_element::add (Score_elem*el_l)
15 assert (! contains_b (el_l));
16 elem_l_arr_.push (el_l);
17 add_dependency (el_l);
21 Vertical_align_element::do_substitute_dependency (Score_elem*o,Score_elem*n)
24 while ((i = elem_l_arr_.find_i (o))>=0)
32 Align elements top to bottom.
33 The first element has its top at y =0.0 afterwards
35 TODO configurable, like Horizontal_align_item
38 Vertical_align_element::do_post_processing()
41 for (int i=0; i < elem_l_arr_.size(); i++)
43 Interval y = elem_l_arr_[i]->height() ;
51 for (int i=0 ; i < elem_l_arr_.size(); i++)
53 elem_l_arr_[i]->translate_axis (- dims[i][1] - where_f, Y_AXIS);
54 where_f += dims[i].length();
59 Vertical_align_element::contains_b (Score_elem const *e) const
61 return elem_l_arr_.find_l (e);
64 Vertical_align_element::Vertical_align_element()
66 transparent_b_ = true;
71 IMPLEMENT_IS_TYPE_B1(Vertical_align_element, Score_elem);