X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Frest-collision.hh;h=ce3765e65525af9bb1049249b8383a48d3a8479d;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=2df8ae606c05aac78013e6be03cb5c8041e1a1bd;hpb=e0833e924a7b626154c66170d98335c6c4985dfe;p=lilypond.git diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh index 2df8ae606c..ce3765e655 100644 --- a/lily/include/rest-collision.hh +++ b/lily/include/rest-collision.hh @@ -3,53 +3,24 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ - #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_GROB_INTERFACE(); + DECLARE_SCHEME_CALLBACK (force_shift_callback, (SCM element)); + 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