]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.0.1
authorfred <fred>
Wed, 29 Jul 1998 13:54:54 +0000 (13:54 +0000)
committerfred <fred>
Wed, 29 Jul 1998 13:54:54 +0000 (13:54 +0000)
lily/include/staff-bracket.hh [new file with mode: 0644]
lily/span-score-bar-engraver.cc [new file with mode: 0644]

diff --git a/lily/include/staff-bracket.hh b/lily/include/staff-bracket.hh
new file mode 100644 (file)
index 0000000..526df13
--- /dev/null
@@ -0,0 +1,28 @@
+
+/*   
+  staff-bracket.hh -- declare  Staff_bracket
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef STAFF_BRACKET_HH
+#define STAFF_BRACKET_HH
+#include "span-score-bar.hh"
+class Staff_bracket : public Span_score_bar
+{
+public:
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  SCORE_ELEMENT_CLONE(Staff_bracket);
+
+protected:
+  virtual Interval do_width() const;
+  virtual void do_post_processing();
+  virtual Atom get_bar_sym (Real) const;
+};
+
+
+#endif /* STAFF_BRACKET_HH */
+
diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc
new file mode 100644 (file)
index 0000000..524d5b2
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+  span-score-bar-grav.cc -- implement Span_score_bar_engraver,
+  Piano_bar_engraver and Staff_group_bar_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+#include "span-score-bar.hh"
+#include "piano-brace.hh"
+#include "staff-bracket.hh"
+#include "span-score-bar-engraver.hh"
+#include "paper-def.hh"
+
+
+Span_bar*
+Span_score_bar_engraver::get_span_bar_p () const
+{
+  Span_bar*s =  new Span_score_bar;
+  s->break_priority_i_ = -4;
+    
+  return s;
+}
+
+
+IMPLEMENT_IS_TYPE_B1 (Span_score_bar_engraver, Span_bar_engraver);
+IMPLEMENT_IS_TYPE_B1 (Piano_bar_engraver, Span_score_bar_engraver);
+IMPLEMENT_IS_TYPE_B1 (Staff_group_bar_engraver, Span_score_bar_engraver);
+
+Span_bar*
+Piano_bar_engraver::get_span_bar_p () const
+{
+  Span_bar *s= new Piano_brace;
+  s->break_priority_i_ = -4;
+  return s;
+}
+
+Span_bar*
+Staff_group_bar_engraver::get_span_bar_p () const
+{
+  Span_bar *s= new Staff_bracket;
+  s->break_priority_i_ = -4;
+  return s;
+}
+
+void
+Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
+{
+  Span_bar_engraver::acknowledge_element (i);
+  if (i.elem_l_->is_type_b (Piano_brace::static_name ()))
+    {
+      Span_bar* b =  i.elem_l_->access_Span_bar ();
+      Piano_brace * piano_l = (Piano_brace*) b;
+      piano_l->extra_move_left_f_  = paper ()->interline_f (); // ugh
+    }
+}
+
+ADD_THIS_TRANSLATOR (Piano_bar_engraver);
+ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
+ADD_THIS_TRANSLATOR (Span_score_bar_engraver);
+