]> git.donarmstrong.com Git - lilypond.git/commitdiff
partial: 0.1.65.jcn
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 15 May 1998 06:57:26 +0000 (08:57 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 15 May 1998 06:57:26 +0000 (08:57 +0200)
lily/hara-kiri-line-group-engraver.cc [new file with mode: 0644]
lily/hara-kiri-vertical-group-spanner.cc [new file with mode: 0644]
lily/include/hara-kiri-line-group-engraver.hh [new file with mode: 0644]
lily/include/hara-kiri-vertical-group-spanner.hh [new file with mode: 0644]

diff --git a/lily/hara-kiri-line-group-engraver.cc b/lily/hara-kiri-line-group-engraver.cc
new file mode 100644 (file)
index 0000000..fecde24
--- /dev/null
@@ -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 <jan@digicash.com>
+*/
+
+#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 (file)
index 0000000..92fc9e2
--- /dev/null
@@ -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 <jan@digicash.com>
+*/
+
+#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 (file)
index 0000000..21ca519
--- /dev/null
@@ -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 <jan@digicash.com>
+*/
+
+
+#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 (file)
index 0000000..d861e7c
--- /dev/null
@@ -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 <jan@digicash.com>
+*/
+
+
+#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