X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbreak-align-interface.hh;h=55c1e34f970f3a5b776fdf90afbd76795f2376dd;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=a8b037d3bdc477151bad4565f08aac57a29b6de3;hpb=2745cbd907f8216a4cc1fc5f488ae19efdfdbd10;p=lilypond.git diff --git a/lily/include/break-align-interface.hh b/lily/include/break-align-interface.hh index a8b037d3bd..55c1e34f97 100644 --- a/lily/include/break-align-interface.hh +++ b/lily/include/break-align-interface.hh @@ -1,33 +1,51 @@ /* - break-align-interface.hh -- declare Break_align_interface + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997--2003 Han-Wen Nienhuys -*/ + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef BREAK_ALIGN_INTERFACE_HH #define BREAK_ALIGN_INTERFACE_HH -#include "item.hh" +#include "grob-interface.hh" +#include "lily-proto.hh" -class Break_align_interface +class Break_alignment_interface { public: - static void do_alignment (Grob*); - static void new_do_alignment (Grob*); - - static bool has_interface (Grob*); - static void add_element (Grob*me, Grob*add); - DECLARE_SCHEME_CALLBACK (alignment_callback, (SCM element, SCM axis)); - DECLARE_SCHEME_CALLBACK (self_align_callback, (SCM element, SCM axis)); - + static vector ordered_elements (Grob *me); + DECLARE_GROB_INTERFACE (); + static void add_element (Grob *me, Grob *add); + static SCM break_align_order (Item *me); + DECLARE_SCHEME_CALLBACK (calc_positioning_done, (SCM element)); + DECLARE_SCHEME_CALLBACK (self_align_callback, (SCM element)); }; + struct Break_aligned_interface { - static bool has_interface (Grob*); + DECLARE_SCHEME_CALLBACK (calc_average_anchor, (SCM)); + DECLARE_SCHEME_CALLBACK (calc_extent_aligned_anchor, (SCM)); + DECLARE_SCHEME_CALLBACK (calc_break_visibility, (SCM)); + DECLARE_GROB_INTERFACE (); }; +struct Break_alignable_interface +{ + DECLARE_SCHEME_CALLBACK (self_align_callback, (SCM element)); + DECLARE_GROB_INTERFACE (); +}; #endif // BREAK_ALIGN_INTERFACE_HH