]> git.donarmstrong.com Git - lilypond.git/blob - lily/tuplet-number.cc
* The grand 2005-2006 replace.
[lilypond.git] / lily / tuplet-number.cc
1 /*
2   tuplet-number.cc -- implement Tuplet_number
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #include "tuplet-bracket.hh"
11 #include "text-interface.hh"
12 #include "spanner.hh"
13 #include "lookup.hh"
14
15 struct Tuplet_number
16 {
17   DECLARE_SCHEME_CALLBACK(print, (SCM));
18   static bool has_interface (Grob *);
19 };
20   
21
22 MAKE_SCHEME_CALLBACK(Tuplet_number, print, 1);
23 SCM 
24 Tuplet_number::print (SCM smob)
25 {
26   Stencil *stc = unsmob_stencil (Text_interface::print (smob));
27
28   stc->align_to (X_AXIS, CENTER);
29   stc->align_to (Y_AXIS, CENTER);
30
31   Spanner *me = unsmob_spanner (smob);
32   Spanner *tuplet = unsmob_spanner (me->get_object ("bracket")); 
33   SCM cpoints =  tuplet->get_property ("control-points");
34   Drul_array<Offset> points;
35   points[LEFT] = ly_scm2offset (scm_car (cpoints));
36   points[RIGHT] = ly_scm2offset (scm_cadr (cpoints));
37
38   stc->translate ((points[RIGHT] + points[LEFT]) / 2);
39   
40   return stc->smobbed_copy ();
41 }
42
43
44 ADD_INTERFACE (Tuplet_number,
45                "tuplet-number-interface",
46                "The number for a bracket. "
47                ,
48
49                /* properties */
50                "avoid-slur "    // UGH.
51                "bracket ");
52