]> git.donarmstrong.com Git - lilypond.git/commitdiff
(acknowledge_grob): split
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 19 May 2005 22:24:08 +0000 (22:24 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 19 May 2005 22:24:08 +0000 (22:24 +0000)
Hara_kiri_engraver in separate file.

ChangeLog
lily/axis-group-engraver.cc
lily/hara-kiri-engraver.cc [new file with mode: 0644]
lily/include/axis-group-engraver.hh [new file with mode: 0644]

index 3b114cb8dd4e31b6249c488f2fde641a700486a5..b50334e23a3859514f02bc2fc61527a412d198ea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-05-20  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * lily/hara-kiri-engraver.cc (acknowledge_grob): split
+       Hara_kiri_engraver in separate file.
+
        * lily/slur-configuration.cc (score_encompass): oops, <? to min()
        translation went wrong. Fixes vertically translated slurs.
 
index eac9299877da21bcbf60e6f0bf9b6bddf1d86ffc..21e3abc7f774ad44bd48bf8f0ccc9c83855b1784 100644 (file)
@@ -6,6 +6,8 @@
   (c) 1999--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
+#include "axis-group-engraver.hh"
+
 #include "spanner.hh"
 #include "paper-column.hh"
 #include "axis-group-interface.hh"
 #include "warn.hh"
 #include "context.hh"
 
-/**
-   Put stuff in a Spanner with an Axis_group_interface.
-   Use as last element of a context.
-*/
-class Axis_group_engraver : public Engraver
-{
-protected:
-  Spanner *staffline_;
-  Link_array<Grob> elts_;
-  virtual void process_music ();
-  virtual void finalize ();
-  virtual void acknowledge_grob (Grob_info);
-  virtual void process_acknowledged_grobs ();
-  virtual Spanner *get_spanner ();
-  virtual void add_element (Grob *);
-public:
-  TRANSLATOR_DECLARATIONS (Axis_group_engraver);
-};
-
 Axis_group_engraver::Axis_group_engraver ()
 {
   must_be_last_ = true;
@@ -138,79 +121,6 @@ Axis_group_engraver::add_element (Grob *e)
   Axis_group_interface::add_element (staffline_, e);
 }
 
-/****************************************************************/
-
-/*
-  maybenot such a good idea after all., to put class declarations in
-  .cc
-*/
-
-#include "hara-kiri-group-spanner.hh"
-#include "rhythmic-head.hh"
-
-class Hara_kiri_engraver : public Axis_group_engraver
-{
-protected:
-  virtual Spanner *get_spanner ();
-  virtual void acknowledge_grob (Grob_info);
-  virtual void add_element (Grob *e);
-  virtual void start_translation_timestep ();
-
-  SCM interesting_;
-public:
-  TRANSLATOR_DECLARATIONS (Hara_kiri_engraver);
-};
-
-void
-Hara_kiri_engraver::start_translation_timestep ()
-{
-  Axis_group_engraver::start_translation_timestep ();
-  interesting_ = get_property ("keepAliveInterfaces");
-}
-
-
-void
-Hara_kiri_engraver::add_element (Grob *e)
-{
-  Hara_kiri_group_spanner::add_element (staffline_, e);
-}
-
-Spanner *
-Hara_kiri_engraver::get_spanner ()
-{
-  Spanner *sp = make_spanner ("RemoveEmptyVerticalGroup", SCM_EOL);
-
-  return sp;
-}
-
-void
-Hara_kiri_engraver::acknowledge_grob (Grob_info i)
-{
-  Axis_group_engraver::acknowledge_grob (i);
-  if (staffline_)
-    {
-      for (SCM s = interesting_; scm_is_pair (s); s = scm_cdr (s))
-       {
-         if (i.grob ()->internal_has_interface (scm_car (s)))
-           Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ());
-       }
-    }
-}
-
-Hara_kiri_engraver::Hara_kiri_engraver ()
-{
-  interesting_ = SCM_EOL;
-}
-
-ADD_TRANSLATOR (Hara_kiri_engraver,
-               /* descr */ "Like Axis_group_engraver, but make a hara-kiri spanner, and add "
-               "interesting items (ie. note heads, lyric syllables and normal rests) ",
-               /* creats*/ "RemoveEmptyVerticalGroup",
-               /* accepts */ "",
-               /* acks  */ "grob-interface",
-               /* reads */ "keepAliveInterfaces",
-               /* write */ "");
-
 ADD_TRANSLATOR (Axis_group_engraver,
                /* descr */ "Group all objects created in this context in a VerticalAxisGroup spanner.",
                /* creats*/ "VerticalAxisGroup",
diff --git a/lily/hara-kiri-engraver.cc b/lily/hara-kiri-engraver.cc
new file mode 100644 (file)
index 0000000..5380c92
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+  hara-kiri-engraver.cc --  implement Hara_kiri_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
+#include "axis-group-engraver.hh"
+#include "hara-kiri-group-spanner.hh"
+#include "rhythmic-head.hh"
+
+class Hara_kiri_engraver : public Axis_group_engraver
+{
+protected:
+  virtual Spanner *get_spanner ();
+  virtual void acknowledge_grob (Grob_info);
+  virtual void add_element (Grob *e);
+  virtual void start_translation_timestep ();
+
+  SCM interesting_;
+public:
+  TRANSLATOR_DECLARATIONS (Hara_kiri_engraver);
+};
+
+void
+Hara_kiri_engraver::start_translation_timestep ()
+{
+  Axis_group_engraver::start_translation_timestep ();
+  interesting_ = get_property ("keepAliveInterfaces");
+}
+
+
+void
+Hara_kiri_engraver::add_element (Grob *e)
+{
+  Hara_kiri_group_spanner::add_element (staffline_, e);
+}
+
+Spanner *
+Hara_kiri_engraver::get_spanner ()
+{
+  Spanner *sp = make_spanner ("RemoveEmptyVerticalGroup", SCM_EOL);
+
+  return sp;
+}
+
+void
+Hara_kiri_engraver::acknowledge_grob (Grob_info i)
+{
+  Axis_group_engraver::acknowledge_grob (i);
+  if (staffline_)
+    {
+      for (SCM s = interesting_; scm_is_pair (s); s = scm_cdr (s))
+       {
+         if (i.grob ()->internal_has_interface (scm_car (s)))
+           Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ());
+       }
+    }
+}
+
+Hara_kiri_engraver::Hara_kiri_engraver ()
+{
+  interesting_ = SCM_EOL;
+}
+
+ADD_TRANSLATOR (Hara_kiri_engraver,
+               /* descr */ "Like Axis_group_engraver, but make a hara-kiri spanner, and add "
+               "interesting items (ie. note heads, lyric syllables and normal rests) ",
+               /* creats*/ "RemoveEmptyVerticalGroup",
+               /* accepts */ "",
+               /* acks  */ "grob-interface",
+               /* reads */ "keepAliveInterfaces",
+               /* write */ "");
+
diff --git a/lily/include/axis-group-engraver.hh b/lily/include/axis-group-engraver.hh
new file mode 100644 (file)
index 0000000..b7dbd62
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+  axis-group-engraver.hh -- declare Axis_group_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
+#ifndef AXIS_GROUP_ENGRAVER_HH
+#define AXIS_GROUP_ENGRAVER_HH
+
+#include "engraver.hh"
+
+/**
+   Put stuff in a Spanner with an Axis_group_interface.
+   Use as last element of a context.
+*/
+class Axis_group_engraver : public Engraver
+{
+protected:
+  Spanner *staffline_;
+  Link_array<Grob> elts_;
+  virtual void process_music ();
+  virtual void finalize ();
+  virtual void acknowledge_grob (Grob_info);
+  virtual void process_acknowledged_grobs ();
+  virtual Spanner *get_spanner ();
+  virtual void add_element (Grob *);
+public:
+  TRANSLATOR_DECLARATIONS (Axis_group_engraver);
+};
+#endif /* AXIS_GROUP_ENGRAVER_HH */