2 plet-spanner.cc -- implement Plet_spanner
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
13 #include "molecule.hh"
15 #include "paper-def.hh"
16 #include "tuplet-spanner.hh"
18 #include "text-def.hh"
19 #include "note-column.hh"
21 Plet_spanner::Plet_spanner ()
25 tdef_p_.set_p(new Text_def);
26 tdef_p_->align_dir_ = CENTER;
27 tdef_p_->style_str_ = "italic";
31 Plet_spanner::brew_molecule_p () const
33 Molecule* mol_p = new Molecule;
35 if (column_arr_.size ()){
36 Real w = width ().length ();
37 Real dy = column_arr_.top ()->extent (Y_AXIS) [dir_]
38 - column_arr_[0]->extent (Y_AXIS) [dir_];
41 Atom num (tdef_p_->get_atom (paper (), CENTER));
42 num.translate (Offset (w/2, dy/2));
44 if (visibility_i_ >= 1)
45 mol_p->add_atom (num);
47 mol_p->add_atom (lookup_l ()->plet (dy, w, dir_));
53 Plet_spanner::do_add_processing ()
55 if (column_arr_.size ())
58 set_bounds (LEFT, column_arr_[0]);
59 set_bounds (RIGHT, column_arr_.top ());
64 Plet_spanner::do_post_processing ()
66 if (column_arr_.size())
67 translate_axis (column_arr_[0]->extent (Y_AXIS)[dir_], Y_AXIS);
71 Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n)
73 if (Note_column *onc = dynamic_cast <Note_column *> (o))
74 column_arr_.substitute (onc, dynamic_cast<Note_column*> (n));
78 Plet_spanner::set_default_dir ()
81 for (int i=0; i < column_arr_.size (); i ++)
83 if (column_arr_[i]->dir_ < 0)
93 Plet_spanner::add_column (Note_column*n)