2 text-def.cc -- implement Text_def
4 source file of the GNU LilyPond music typesetter
6 (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
11 #include "paper-def.hh"
12 #include "molecule.hh"
13 #include "text-def.hh"
17 Text_def::staff_dir () const
19 if (style_str_
== "finger")
25 Text_def::width (Paper_def
* p
) const
27 Atom a
= get_atom (p
,CENTER
);
29 Real guess_width_f
= text_str_
.length_i() * a
.dim_
.x ().length (); // ugh
30 Interval
i (0, guess_width_f
);
31 i
+= - (align_i_
+ 1)* i
.center();
36 Text_def::do_print() const
39 DOUT
<< "align " <<align_i_
<< " `" << text_str_
<< "'";
50 Text_def::do_equal_b (General_script_def
const *gdef
) const
52 Text_def
const *def
= (Text_def
*)gdef
;
53 return align_i_
== def
->align_i_
&& text_str_
== def
->text_str_
54 && style_str_
== def
->style_str_
;
58 Text_def::get_atom (Paper_def
*p
, Direction
) const
60 return p
->lookup_l()->text (style_str_
, text_str_
, -align_i_
);
64 Text_def::print() const
66 DOUT
<< "Text `" << text_str_
<< "\', style " <<
67 style_str_
<< "align " << align_i_
<< '\n';
71 IMPLEMENT_IS_TYPE_B1(Text_def
,General_script_def
);