X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspan-bar.hh;h=f59f075a607f877b351bdd6a6ddfccaaf3134954;hb=2a45361f9b49c4559c5a72c63cce1d1eed0649ed;hp=663fe5745cb23f3853c9c5ea1285dec1209ae162;hpb=8aad615ea7bb31f49a0c2afc21eea5ff5de20437;p=lilypond.git diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh index 663fe5745c..f59f075a60 100644 --- a/lily/include/span-bar.hh +++ b/lily/include/span-bar.hh @@ -3,36 +3,35 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1999 Han-Wen Nienhuys + (c) 1997--2001 Han-Wen Nienhuys */ #ifndef SPAN_BAR_HH #define SPAN_BAR_HH -#include "bar.hh" +#include "lily-guile.hh" +#include "lily-proto.hh" -class Span_bar : public virtual Bar +/** + This is a barline that is spanned across other bar lines. This is + the implementation of the long barlines that occur in orchestral + score and other multi-staff music. +*/ +class Span_bar { - Link_array spanning_l_arr_; - Interval get_spanned_interval () const; public: - Real extra_x_off_; - bool no_width_b_; - Span_bar(); - - VIRTUAL_COPY_CONS(Score_element); - void add_bar (Bar*); - void set_align (Align_element *); - -protected: - void evaluate_empty (); - virtual Interval do_width() const; - virtual void do_pre_processing(); - virtual void do_post_processing(); - virtual Interval do_height () const; - virtual void do_substitute_dependency (Score_element*,Score_element*); - virtual Molecule * do_brew_molecule_p() const; + static void set_interface (Grob*); + static bool has_interface (Grob*); + static Interval get_spanned_interval (Grob*); + static void add_bar (Grob*,Grob*); + static void evaluate_glyph (Grob*); + static void evaluate_empty (Grob*); + DECLARE_SCHEME_CALLBACK (width_callback, (SCM smob, SCM axis)); + DECLARE_SCHEME_CALLBACK (get_bar_size, (SCM )); + DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); + DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM )); + DECLARE_SCHEME_CALLBACK (center_on_spanned_callback, (SCM element, SCM axis)); }; #endif // SPAN_BAR_HH