Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(34)

Delta Between Two Patch Sets: lily/directional-element-interface.cc

Issue 7185044: Caches the interior skylines of vertical axis groups and systems. Base URL: http://git.savannah.gnu.org/gitweb/?p=lilypond.git/trunk/
Left Patch Set: Created 12 years, 1 month ago
Right Patch Set: Gives Hairpin outside-staff-interface Created 11 years, 11 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Right: Side by side diff | Download
LEFTRIGHT
(no file at all)
1 /* 1 /*
2 This file is part of LilyPond, the GNU music typesetter. 2 This file is part of LilyPond, the GNU music typesetter.
3 3
4 Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl> 4 Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
5 5
6 LilyPond is free software: you can redistribute it and/or modify 6 LilyPond is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or 8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 LilyPond is distributed in the hope that it will be useful, 11 LilyPond is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with LilyPond. If not, see <http://www.gnu.org/licenses/>. 17 along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
18 */ 18 */
19 19
20 #include "directional-element-interface.hh" 20 #include "directional-element-interface.hh"
21 #include "warn.hh" 21 #include "warn.hh"
22 #include "grob.hh" 22 #include "grob.hh"
23 23
24 Direction 24 Direction
25 recursive_get_grob_direction (Grob *me)
26 {
27 Direction d = get_grob_direction (me);
28 if (d == CENTER)
29 {
30 Grob *yp = me->get_parent (Y_AXIS);
31 if (yp)
32 return recursive_get_grob_direction (yp);
33 }
34
35 return d;
36 }
37
38 Direction
25 get_grob_direction (Grob *me) 39 get_grob_direction (Grob *me)
26 { 40 {
27 SCM d = me->get_property ("direction"); 41 SCM d = me->get_property ("direction");
28 if (d == ly_symbol2scm ("calculation-in-progress")) 42 if (d == ly_symbol2scm ("calculation-in-progress"))
29 { 43 {
30 programming_error ("Grob direction requested while calculation in" 44 programming_error ("Grob direction requested while calculation in"
31 " progress."); 45 " progress.");
32 return UP; 46 return UP;
33 } 47 }
34 if (!is_direction (d)) 48 if (!is_direction (d))
35 return CENTER; 49 return CENTER;
36 50
37 return to_dir (d); 51 return to_dir (d);
38 } 52 }
39 53
40 void 54 void
41 set_grob_direction (Grob *me, Direction d) 55 set_grob_direction (Grob *me, Direction d)
42 { 56 {
43 SCM sd = scm_from_int (d); 57 SCM sd = scm_from_int (d);
44 me->set_property ("direction", sd); 58 me->set_property ("direction", sd);
45 } 59 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b