X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fhara-kiri-group-spanner.hh;h=67aa1878384323105fedc8e522fb99b30ef4cc61;hb=4a401ca1c60f428daa242dbdd102fdb3f327ebfb;hp=476a18a915db3fa0d2a33289eba48b4d68082e11;hpb=4ef78bcae9cb502769f3ff7051b92381b9093e9f;p=lilypond.git diff --git a/lily/include/hara-kiri-group-spanner.hh b/lily/include/hara-kiri-group-spanner.hh index 476a18a915..67aa187838 100644 --- a/lily/include/hara-kiri-group-spanner.hh +++ b/lily/include/hara-kiri-group-spanner.hh @@ -1,41 +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 "spanner.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. +#include "lily-proto.hh" +#include "grob-interface.hh" - properties: - - items-worth-living -- list of interesting items. If empty in a particular system, - clear this line - -*/ -class Hara_kiri_group_spanner : public Spanner +class Hara_kiri_group_spanner { public: - static Real force_hara_kiri_callback (Score_element const* , Axis); - Hara_kiri_group_spanner (SCM); - SCM member_after_line_breaking (); - static SCM after_line_breaking (SCM); - - void add_interesting_item (Item* n); - - VIRTUAL_COPY_CONS(Score_element); + 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