2 staffsym.cc -- implement Staff_symbol
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 #include "staff-sym.hh"
10 #include "dimensions.hh"
11 #include "paper-def.hh"
12 #include "molecule.hh"
17 Staff_symbol::Staff_symbol ()
27 Staff_symbol::do_print() const
31 DOUT
<< "lines: " << no_lines_i_
;
36 Staff_symbol::do_height() const
38 int n
= no_lines_i_
-1;
39 // return 2* inter_note_f () * Interval (-n, n);
40 return inter_note_f () * Interval (-n
, n
);
44 Staff_symbol::brew_molecule_p() const
46 Real w
= width ().length ();
47 Real left_dx
= -spanned_drul_
[LEFT
]->extent (X_AXIS
)[LEFT
];
48 Real right_dx
= spanned_drul_
[RIGHT
]->extent (X_AXIS
)[RIGHT
];
49 // w += right_dx+ left_dx;
52 Paper_def
* p
= paper();
53 Atom rule
= lookup_l ()->rule_symbol (p
->get_var ("rulethickness"),
55 Real height
= (no_lines_i_
-1) * inter_note_f();
56 Molecule
* m
= new Molecule
;
57 for (int i
=0; i
< no_lines_i_
; i
++)
60 a
.translate_axis (height
- i
* inter_note_f()*2, Y_AXIS
);
64 // m->translate_axis (-left_dx, X_AXIS);
69 Staff_symbol::inter_note_f() const
72 return interline_f_
/2;
74 return paper()->internote_f ();
78 Staff_symbol::steps_i() const