From: Jan Nieuwenhuizen Date: Fri, 15 May 1998 06:57:26 +0000 (+0200) Subject: partial: 0.1.65.jcn X-Git-Tag: release/0.1.65~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c9b442b3bbaee9618f179ad5aacb10aafd557514;p=lilypond.git partial: 0.1.65.jcn --- diff --git a/lily/hara-kiri-line-group-engraver.cc b/lily/hara-kiri-line-group-engraver.cc new file mode 100644 index 0000000000..fecde2402d --- /dev/null +++ b/lily/hara-kiri-line-group-engraver.cc @@ -0,0 +1,22 @@ +/* + hara-kiri-line-group-engraver.cc -- implement Hara_kiri_line_group_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "staff-sym.hh" +#include "command-request.hh" +#include "p-col.hh" +#include "hara-kiri-vertical-group-spanner.hh" +#include "hara-kiri-line-group-engraver.hh" + +IMPLEMENT_IS_TYPE_B1 (Hara_kiri_line_group_engraver,Engraver); +ADD_THIS_TRANSLATOR (Hara_kiri_line_group_engraver); + +void +Hara_kiri_line_group_engraver::create_line_spanner () +{ + staffline_p_ = new Hara_kiri_vertical_group_spanner; +} diff --git a/lily/hara-kiri-vertical-group-spanner.cc b/lily/hara-kiri-vertical-group-spanner.cc new file mode 100644 index 0000000000..92fc9e29ee --- /dev/null +++ b/lily/hara-kiri-vertical-group-spanner.cc @@ -0,0 +1,54 @@ +/* + hara-kiri-vertical-group-spanner.cc + -- implement Hara_kiri_vertical_group_spanner + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "hara-kiri-vertical-group-spanner.hh" +#include "item.hh" +#include "note-head.hh" +#include "p-col.hh" +#include "molecule.hh" + +IMPLEMENT_IS_TYPE_B1 (Hara_kiri_vertical_group_spanner, Vertical_group_spanner); + +void +Hara_kiri_vertical_group_spanner::add_element (Graphical_element* e) +{ + if (e->is_type_b (Note_head::static_name ())) + add_dependency ((Score_elem*)e); + Vertical_group_spanner::add_element (e); +} + +// we never get here, or indeed in axis-group-spanner::do_break_processing? +void +Hara_kiri_vertical_group_spanner::do_break_processing () +{ + Vertical_group_spanner::do_break_processing (); + if (dependency_size ()) + return; + transparent_b_ = true; +} + +// too late ? +void +Hara_kiri_vertical_group_spanner::do_post_processing () +{ + if (dependency_size ()) + return; + transparent_b_ = true; +} + +Molecule* +Hara_kiri_vertical_group_spanner::brew_molecule_p() const +{ + // aaarg: go away + if (1) // transparent_b_) + return new Molecule; + return Vertical_group_spanner::brew_molecule_p (); +} + + diff --git a/lily/include/hara-kiri-line-group-engraver.hh b/lily/include/hara-kiri-line-group-engraver.hh new file mode 100644 index 0000000000..21ca5197d6 --- /dev/null +++ b/lily/include/hara-kiri-line-group-engraver.hh @@ -0,0 +1,31 @@ +/* + hara-kiri-line-group-grav.hh -- declare Hara_kiri_line_group_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#ifndef HARA_KIRI_LINE_GROUP_GRAV_HH +#define HARA_KIRI_LINE_GROUP_GRAV_HH + +#include "line-group-grav.hh" + +/** + Just as Line_group_engraver, but won't disgrace Lily by typesetting + an empty line (for orchestral scores). + */ +class Hara_kiri_line_group_engraver : public Line_group_engraver +{ +public: + TRANSLATOR_CLONE (Hara_kiri_line_group_engraver); + DECLARE_MY_RUNTIME_TYPEINFO; + +protected: + virtual void create_line_spanner (); +}; + + +#endif // HARA_KIRI_LINE_GROUP_GRAV_HH + diff --git a/lily/include/hara-kiri-vertical-group-spanner.hh b/lily/include/hara-kiri-vertical-group-spanner.hh new file mode 100644 index 0000000000..d861e7c235 --- /dev/null +++ b/lily/include/hara-kiri-vertical-group-spanner.hh @@ -0,0 +1,34 @@ +/* + hara-kiri-vertical-group-spanner.hh -- declare Har_kiri_vertical_group_spanner + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#ifndef HARA_KIRI_VERTICAL_GROUP_SPANNER_HH +#define HARA_KIRI_VERTICAL_GROUP_SPANNER_HH + +#include "vertical-group-spanner.hh" + +/** + As Vertical_group_spanner, but keeps dependencies to notes. + */ +class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner +{ +public: + DECLARE_MY_RUNTIME_TYPEINFO; + + virtual void do_post_processing (); + virtual void add_element (Graphical_element* e); + +protected: + SCORE_ELEM_CLONE (Hara_kiri_vertical_group_spanner); + + virtual void do_break_processing (); + virtual Molecule* brew_molecule_p () const; +}; + + +#endif // HARA_KIRI_VERTICAL_GROUP_SPANNER_HH