X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fhara-kiri-group-spanner.hh;h=294415577be00388689ec9d828fc6651b93c9aea;hb=15feba22d437b566333c8c948a5780ce40c5953f;hp=9f4287910728732a94a1a0b486f18130214bc536;hpb=51f16c19ef686979a6a36709226ec6022eb86c0a;p=lilypond.git diff --git a/lily/include/hara-kiri-group-spanner.hh b/lily/include/hara-kiri-group-spanner.hh index 9f42879107..294415577b 100644 --- a/lily/include/hara-kiri-group-spanner.hh +++ b/lily/include/hara-kiri-group-spanner.hh @@ -1,44 +1,42 @@ /* - hara-kiri-vertical-group-spanner.hh -- declare Har_kiri_vertical_group_spanner + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1998--2011 Jan Nieuwenhuizen - (c) 1998--2000 Jan Nieuwenhuizen -*/ + 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 HARA_KIRI_VERTICAL_GROUP_SPANNER_HH #define HARA_KIRI_VERTICAL_GROUP_SPANNER_HH -#include "lily-guile.hh" #include "lily-proto.hh" +#include "grob-interface.hh" -/** - As Vertical_group_spanner, but keep track of interesting items. If - we don't contain any interesting items after linebreaking, then - gracefully commit suicide. Objective: don't disgrace Lily by - typesetting empty lines in orchestral scores. - - properties: - - items-worth-living -- list of interesting items. If empty in a particular system, - clear this line - - - todo: naming -*/ -class Hara_kiri_group_spanner +class Hara_kiri_group_spanner { public: - static Real force_hara_kiri_callback (Score_element * , Axis); - static Interval y_extent (Score_element * , Axis); - static Real force_hara_kiri_in_parent_callback (Score_element * , Axis); - static void add_element (Score_element *me, Score_element *e); - static void set_interface (Score_element*me); - static bool has_interface (Score_element*); - static void consider_suicide (Score_element*me); - static void add_interesting_item (Score_element * me , Score_element* n); + DECLARE_SCHEME_CALLBACK (force_hara_kiri_callback, (SCM)); + DECLARE_SCHEME_CALLBACK (y_extent, (SCM smob)); + DECLARE_SCHEME_CALLBACK (calc_skylines, (SCM smob)); + DECLARE_SCHEME_CALLBACK (pure_height, (SCM smob, SCM start, SCM end)); + DECLARE_SCHEME_CALLBACK (force_hara_kiri_in_y_parent_callback, (SCM)); + DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM)); + DECLARE_GROB_INTERFACE(); + static bool request_suicide (Grob *me, int start, int end); + static bool request_suicide_alone (Grob *me, int start, int end); + static void consider_suicide (Grob *me); + static void add_interesting_item (Grob *me, Grob *n); }; - #endif // HARA_KIRI_VERTICAL_GROUP_SPANNER_HH