X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Frest-collision.hh;h=3946f9b93306b128429cae35892c11a7bc3412a9;hb=3ecaba96a8c4cd754db57af0df8ad98d77a670c5;hp=2df8ae606c05aac78013e6be03cb5c8041e1a1bd;hpb=e0833e924a7b626154c66170d98335c6c4985dfe;p=lilypond.git diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh index 2df8ae606c..3946f9b933 100644 --- a/lily/include/rest-collision.hh +++ b/lily/include/rest-collision.hh @@ -1,55 +1,35 @@ /* - rest-collision.hh -- declare Rest_collision + 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--2000 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 REST_COLLISION_HH #define REST_COLLISION_HH +#include "grob-interface.hh" #include "lily-proto.hh" -#include "lily-guile.hh" - - -extern SCM Rest_collision_force_shift_callback_proc; - -/* - Move rests in note-columns so that they do not collide. - - properties: - - read-only - - maximum-rest-count -- kill off rests so we don't more than this - number left. - minimum-distance -- minimum distance between notes and rests. - - read/write - - elements -- list of elts (both rests and notes) participating in the - collision. - - - sets in elements: - - rest-collision -- pointer to self. - - - - -*/ - -class Rest_collision // interface +class Rest_collision { public: - static void add_column (Score_element*me,Score_element*); - static void set_interface (Score_element*me); - static bool has_interface (Score_element*); - static SCM force_shift_callback (SCM element, SCM axis); - static SCM do_shift (Score_element*,SCM); + static void add_column (Grob *me, Grob *); + + DECLARE_SCHEME_CALLBACK (calc_positioning_done, (SCM element)); + DECLARE_SCHEME_CALLBACK (force_shift_callback_rest, (SCM element, SCM off)); + static SCM do_shift (Grob *); }; #endif // REST_COLLISION_HH