]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/extender-spanner.hh
release: 1.1.31
[lilypond.git] / lily / include / extender-spanner.hh
1 /*
2   extender-spanner.hh -- part of GNU LilyPond
3
4   (c) 1998, 1999 Jan Nieuwenhuizen <janneke@gnu.org>
5 */
6
7 #ifndef EXTENDER_SPANNER_HH
8 #define EXTENDER_SPANNER_HH
9
10 #include "directional-spanner.hh"
11
12 /** 
13   simple extender line 
14
15   The extender is a simple line at the baseline of the lyric
16   that helps show the length of a melissima (tied/slurred note).
17
18   Extenders must be entered manually for now.
19
20   Although it would be possible for Lily to determine where to
21   put extender lines, it's quite a tricky thing to do.  Also,
22   this would demand quite strict lyrics entries.
23
24   Note: the extender is only used for one-syllable words, or
25   for on a word's last syllable.  The extender should be aligned
26   with the left side of the last note of the melissima, and not
27   extend beond, lasting the whole duration of the melissima
28   (as in MUP, urg).
29   */
30 class Extender_spanner : public Directional_spanner
31 {
32 public:
33   Extender_spanner ();
34   virtual ~Extender_spanner ();
35
36   Offset center () const;  
37   void set_textitem (Direction, Item*);
38
39   Drul_array<Item *> item_l_drul_;      // should use teh spanpoints field of item.
40 protected:
41   virtual Molecule* do_brew_molecule_p () const;
42   void do_add_processing ();
43   Interval do_height () const;
44   void do_substitute_dependency (Score_element* o, Score_element* n);
45   void do_post_processing ();
46  
47   VIRTUAL_COPY_CONS (Score_element);
48
49   Extender_spanner (Extender_spanner const&);
50
51   Drul_array<Real> dy_f_drul_;
52   Drul_array<Real> dx_f_drul_;
53 };
54
55 #endif // EXTENDER_SPANNER_HH
56