OLD | NEW |
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) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl> | 4 Copyright (C) 1997--2015 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 #ifndef STAFFELEMINFO_HH | 20 #ifndef GROB_INFO_HH |
21 #define STAFFELEMINFO_HH | 21 #define GROB_INFO_HH |
22 | 22 |
23 #include "lily-guile.hh" | 23 #include "lily-guile.hh" |
24 #include "lily-proto.hh" | 24 #include "lily-proto.hh" |
25 #include "std-vector.hh" | 25 #include "std-vector.hh" |
26 | 26 |
27 /* | 27 /* |
28 Data container for broadcasts. | 28 Data container for broadcasts. |
29 */ | 29 */ |
30 class Grob_info | 30 class Grob_info |
31 { | 31 { |
32 Translator *origin_trans_; | 32 Translator *origin_trans_; |
33 Grob *grob_; | 33 Grob *grob_; |
34 Direction start_end_; | |
35 | 34 |
36 friend class Engraver; | |
37 public: | 35 public: |
38 Direction start_end () const { return start_end_; } | |
39 Grob *grob () const { return grob_; } | 36 Grob *grob () const { return grob_; } |
40 Translator *origin_translator () const { return origin_trans_; } | 37 Translator *origin_translator () const { return origin_trans_; } |
41 | 38 |
42 Context *context () const; | 39 Context *context () const; |
43 Stream_event *event_cause () const; | 40 Stream_event *event_cause () const; |
44 Stream_event *ultimate_event_cause () const; | 41 Stream_event *ultimate_event_cause () const; |
45 vector<Context *> origin_contexts (Translator *) const; | 42 vector<Context *> origin_contexts (Translator *) const; |
46 Grob_info (Translator *, Grob *); | 43 Grob_info (Translator *, Grob *); |
47 Grob_info (); | 44 Grob_info (); |
48 | 45 |
49 Item *item () const; | 46 Item *item () const; |
50 Spanner *spanner () const; | 47 Spanner *spanner () const; |
51 static bool less (Grob_info i, Grob_info j); | 48 static bool less (Grob_info i, Grob_info j); |
52 | |
53 /* | |
54 For contexts that change staves, it may be desirable to emit a | |
55 grob into a staff other than the current one. If this is non-null, | |
56 this grob should be announced in this context instead of the | |
57 daddy_context_. | |
58 */ | |
59 Context *rerouting_daddy_context_; | |
60 }; | 49 }; |
61 | 50 |
62 #endif // STAFFELEMINFO_HH | 51 #endif // GROB_INFO_HH |
OLD | NEW |