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) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl> | 4 Copyright (C) 1997--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 |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 /* we simulate positioning-done if we are the child of a VerticalAlignment, | 367 /* we simulate positioning-done if we are the child of a VerticalAlignment, |
368 but only if we don't have a cached offset. If we do have a cached offset, | 368 but only if we don't have a cached offset. If we do have a cached offset, |
369 it probably means that the Alignment was fixed and it has already been | 369 it probably means that the Alignment was fixed and it has already been |
370 calculated. | 370 calculated. |
371 */ | 371 */ |
372 if (Grob *p = get_parent (Y_AXIS)) | 372 if (Grob *p = get_parent (Y_AXIS)) |
373 { | 373 { |
374 Real trans = 0; | 374 Real trans = 0; |
375 if (Align_interface::has_interface (p) && !dim_cache_[Y_AXIS].offset_) | 375 if (Align_interface::has_interface (p) && !dim_cache_[Y_AXIS].offset_) |
376 trans = Align_interface::get_pure_child_y_translation (p, this, start, e
nd); | 376 trans = Align_interface::get_pure_child_y_translation (p, this, start, e
nd); |
377 | 377 //printf ("%s O T %4.4f %4.4f\n", name().c_str(), off, trans); |
378 return off + trans + p->pure_relative_y_coordinate (refp, start, end); | 378 return off + trans + p->pure_relative_y_coordinate (refp, start, end); |
379 } | 379 } |
380 return off; | 380 return off; |
381 } | 381 } |
382 | 382 |
383 /* Invoke callbacks to get offset relative to parent. */ | 383 /* Invoke callbacks to get offset relative to parent. */ |
384 Real | 384 Real |
385 Grob::get_offset (Axis a) const | 385 Grob::get_offset (Axis a) const |
386 { | 386 { |
387 if (dim_cache_[a].offset_) | 387 if (dim_cache_[a].offset_) |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
960 if (Align_interface::has_interface (commony)) | 960 if (Align_interface::has_interface (commony)) |
961 return true; | 961 return true; |
962 | 962 |
963 for (Grob *g = this; g && g != commony; g = g->get_parent (Y_AXIS)) | 963 for (Grob *g = this; g && g != commony; g = g->get_parent (Y_AXIS)) |
964 if (Align_interface::has_interface (g)) | 964 if (Align_interface::has_interface (g)) |
965 return true; | 965 return true; |
966 | 966 |
967 return false; | 967 return false; |
968 } | 968 } |
969 | 969 |
LEFT | RIGHT |