]> git.donarmstrong.com Git - lilypond.git/blob - src/textitem.cc
partial: 0.0.39-1.jcn
[lilypond.git] / src / textitem.cc
1 /*
2   textitem.cc -- implement Text_item
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10   #include "musicalrequest.hh"
11 #include "paper-def.hh"
12 #include "textitem.hh"
13 #include "stem.hh"
14 #include "molecule.hh"
15 #include "lookup.hh"
16
17
18
19 Text_item::Text_item(Text_req* treq_l, int staffsize_i)
20 {
21     staffsize_i_ = staffsize_i;
22     dir_i_ = treq_l->dir_i_;
23     if (!dir_i_)
24         dir_i_ = -1;
25     tdef_l_ = treq_l->tdef_p_;
26 }
27
28 void
29 Text_item::set_default_index()
30 {
31     pos_i_  = (dir_i_ > 0) ? staffsize_i_ + 2: -4;
32 }
33
34 void
35 Text_item::do_pre_processing()
36 {
37     set_default_index();
38 }
39
40     
41 Molecule*
42 Text_item::brew_molecule_p() const
43 {
44     Molecule* mol_p = new Molecule(tdef_l_->create_atom(paper()));
45     mol_p->translate(Offset(0, pos_i_ * paper()->internote()));
46
47     if(dir_i_<0)
48         mol_p->translate(Offset(0, -mol_p->extent().y.length() ));
49     
50     return mol_p;
51 }