]> git.donarmstrong.com Git - lilypond.git/blob - lily/tab-staff-symbol-engraver.cc
release commit
[lilypond.git] / lily / tab-staff-symbol-engraver.cc
1 /*
2   tab-staff-symbol-engraver.cc -- implement Tab_staff_symbol_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #include "staff-symbol-engraver.hh"
11 #include "spanner.hh"
12
13 class Tab_staff_symbol_engraver : public Staff_symbol_engraver
14 {
15 public:
16   TRANSLATOR_DECLARATIONS (Tab_staff_symbol_engraver);
17 protected:
18   virtual void start_spanner ();
19 };
20
21 void
22 Tab_staff_symbol_engraver::start_spanner ()
23 {
24   bool init = !span_;
25   Staff_symbol_engraver::start_spanner ();
26   if (init)
27     {
28       int k = scm_ilength (get_property ("stringTunings"));
29       if (k >= 0)
30         span_->set_property ("line-count", scm_int2num (k));
31     }
32 }
33
34 Tab_staff_symbol_engraver::Tab_staff_symbol_engraver ()
35 {
36 }
37
38 ADD_TRANSLATOR (Tab_staff_symbol_engraver,
39                 /* descr */ "Create a staff-symbol, but look at stringTunings for the number of lines."
40                 "staff lines.",
41                 /* creats*/ "StaffSymbol",
42                 /* accepts */ "staff-span-event",
43                 /* acks  */ "grob-interface",
44                 /* reads */ "stringTunings",
45                 /* write */ "");