LEFT | RIGHT |
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) 1996--2012 Han-Wen Nienhuys | 4 Copyright (C) 1996--2012 Han-Wen Nienhuys |
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 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 friend SCM ly_grob_basic_properties (SCM); | 65 friend SCM ly_grob_basic_properties (SCM); |
66 | 66 |
67 /* standard callbacks */ | 67 /* standard callbacks */ |
68 DECLARE_SCHEME_CALLBACK (x_parent_positioning, (SCM)); | 68 DECLARE_SCHEME_CALLBACK (x_parent_positioning, (SCM)); |
69 DECLARE_SCHEME_CALLBACK (y_parent_positioning, (SCM)); | 69 DECLARE_SCHEME_CALLBACK (y_parent_positioning, (SCM)); |
70 DECLARE_SCHEME_CALLBACK (stencil_height, (SCM smob)); | 70 DECLARE_SCHEME_CALLBACK (stencil_height, (SCM smob)); |
71 DECLARE_SCHEME_CALLBACK (stencil_width, (SCM smob)); | 71 DECLARE_SCHEME_CALLBACK (stencil_width, (SCM smob)); |
72 DECLARE_SCHEME_CALLBACK (simple_vertical_skylines_from_stencil, (SCM smob)); | 72 DECLARE_SCHEME_CALLBACK (simple_vertical_skylines_from_stencil, (SCM smob)); |
73 DECLARE_SCHEME_CALLBACK (vertical_skylines_from_stencil, (SCM smob)); | 73 DECLARE_SCHEME_CALLBACK (vertical_skylines_from_stencil, (SCM smob)); |
74 DECLARE_SCHEME_CALLBACK (vertical_skylines_from_element_stencils, (SCM smob)); | 74 DECLARE_SCHEME_CALLBACK (vertical_skylines_from_element_stencils, (SCM smob)); |
| 75 DECLARE_SCHEME_CALLBACK (simple_horizontal_skylines_from_stencil, (SCM smob)); |
| 76 DECLARE_SCHEME_CALLBACK (horizontal_skylines_from_stencil, (SCM smob)); |
| 77 DECLARE_SCHEME_CALLBACK (horizontal_skylines_from_element_stencils, (SCM smob)
); |
75 | 78 |
76 /* R/O access */ | 79 /* R/O access */ |
77 Output_def *layout () const { return layout_; } | 80 Output_def *layout () const { return layout_; } |
78 Grob *original () const { return original_; } | 81 Grob *original () const { return original_; } |
79 SCM interfaces () const { return interfaces_; } | 82 SCM interfaces () const { return interfaces_; } |
80 | 83 |
81 /* life & death */ | 84 /* life & death */ |
82 Grob (SCM basic_props); | 85 Grob (SCM basic_props); |
83 Grob (Grob const &); | 86 Grob (Grob const &); |
84 virtual Grob *clone () const; | 87 virtual Grob *clone () const; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 void fixup_refpoint (); | 147 void fixup_refpoint (); |
145 | 148 |
146 /* vertical ordering */ | 149 /* vertical ordering */ |
147 static bool internal_vertical_less (Grob *g1, Grob *g2, bool pure); | 150 static bool internal_vertical_less (Grob *g1, Grob *g2, bool pure); |
148 static Grob *get_root_vertical_alignment (Grob *g); | 151 static Grob *get_root_vertical_alignment (Grob *g); |
149 static Grob *get_vertical_axis_group (Grob *g); | 152 static Grob *get_vertical_axis_group (Grob *g); |
150 static bool vertical_less (Grob *g1, Grob *g2); | 153 static bool vertical_less (Grob *g1, Grob *g2); |
151 static bool pure_vertical_less (Grob *g1, Grob *g2); | 154 static bool pure_vertical_less (Grob *g1, Grob *g2); |
152 static int get_vertical_axis_group_index (Grob *g); | 155 static int get_vertical_axis_group_index (Grob *g); |
153 | 156 |
154 /* vertical skylines */ | 157 /* skylines */ |
155 virtual Interval_t<int> spanned_rank_interval () const; | 158 virtual Interval_t<int> spanned_rank_interval () const; |
156 virtual bool pure_is_visible (int start, int end) const; | 159 virtual bool pure_is_visible (int start, int end) const; |
157 bool check_cross_staff (Grob *common); | 160 bool check_cross_staff (Grob *common); |
158 static bool less (Grob *g1, Grob *g2); | 161 static bool less (Grob *g1, Grob *g2); |
| 162 static SCM internal_simple_skylines_from_stencil (SCM, Axis); |
| 163 static SCM internal_skylines_from_element_stencils (SCM, Axis); |
159 }; | 164 }; |
160 | 165 |
161 /* smob utilities */ | 166 /* smob utilities */ |
162 DECLARE_UNSMOB (Grob, grob); | 167 DECLARE_UNSMOB (Grob, grob); |
163 Spanner *unsmob_spanner (SCM); | 168 Spanner *unsmob_spanner (SCM); |
164 Item *unsmob_item (SCM); | 169 Item *unsmob_item (SCM); |
165 | 170 |
166 /* refpoints */ | 171 /* refpoints */ |
167 Grob *common_refpoint_of_list (SCM elt_list, Grob *, Axis a); | 172 Grob *common_refpoint_of_list (SCM elt_list, Grob *, Axis a); |
168 Grob *common_refpoint_of_array (vector<Grob *> const &, Grob *, Axis a); | 173 Grob *common_refpoint_of_array (vector<Grob *> const &, Grob *, Axis a); |
169 System *get_root_system (Grob *me); | 174 System *get_root_system (Grob *me); |
170 | 175 |
171 /* extents */ | 176 /* extents */ |
172 Interval robust_relative_extent (Grob *, Grob *, Axis); | 177 Interval robust_relative_extent (Grob *, Grob *, Axis); |
173 | 178 |
174 /* offset/extent callbacks. */ | 179 /* offset/extent callbacks. */ |
175 void add_offset_callback (Grob *g, SCM proc, Axis a); | 180 void add_offset_callback (Grob *g, SCM proc, Axis a); |
176 void chain_offset_callback (Grob *g, SCM proc, Axis a); | 181 void chain_offset_callback (Grob *g, SCM proc, Axis a); |
177 void chain_callback (Grob *g, SCM proc, SCM sym); | 182 void chain_callback (Grob *g, SCM proc, SCM sym); |
178 SCM axis_offset_symbol (Axis a); | 183 SCM axis_offset_symbol (Axis a); |
179 SCM axis_parent_positioning (Axis a); | 184 SCM axis_parent_positioning (Axis a); |
180 | 185 |
181 SCM call_pure_function (SCM unpure, SCM args, int start, int end); | 186 SCM call_pure_function (SCM unpure, SCM args, int start, int end); |
182 | 187 |
183 void set_nested_property (Grob *, SCM property_path, SCM value); | 188 void set_nested_property (Grob *, SCM property_path, SCM value); |
184 | 189 |
185 #endif /* GROB_HH */ | 190 #endif /* GROB_HH */ |
LEFT | RIGHT |