X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finstrument-name-engraver.cc;h=4bb036166b0c8c1b79dea32aa5a9cbd67215c2bb;hb=4cb2a5267e16d233b13089ab37a467c3d19da235;hp=c98bbdd7e9f23338f07a279729980b37d4ff194e;hpb=d8138e9ca4e95622dfebfa470dce64d23eaf2931;p=lilypond.git diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc index c98bbdd7e9..4bb036166b 100644 --- a/lily/instrument-name-engraver.cc +++ b/lily/instrument-name-engraver.cc @@ -1,15 +1,15 @@ /* - new-staff-margin-engraver.cc -- implement Instrument_name_engraver + instrument-name-engraver.cc -- implement Instrument_name_engraver source file of the GNU LilyPond music typesetter - (c) 2000--2001 Han-Wen Nienhuys + (c) 2000--2002 Han-Wen Nienhuys */ #include "engraver.hh" #include "item.hh" -#include "bar.hh" +#include "bar-line.hh" #include "system-start-delimiter.hh" #include "side-position-interface.hh" #include "align-interface.hh" @@ -23,14 +23,14 @@ class Instrument_name_engraver : public Engraver void create_text (SCM s); public: - VIRTUAL_COPY_CONS (Translator); - Instrument_name_engraver (); + TRANSLATOR_DECLARATIONS(Instrument_name_engraver); + virtual void initialize (); virtual void acknowledge_grob (Grob_info); virtual void stop_translation_timestep (); }; -ADD_THIS_TRANSLATOR (Instrument_name_engraver); + Instrument_name_engraver::Instrument_name_engraver () { @@ -70,14 +70,14 @@ Instrument_name_engraver::create_text (SCM txt) if (delim_) text_->set_parent (delim_, Y_AXIS); - announce_grob (text_,0); + announce_grob (text_, SCM_EOL); } } void Instrument_name_engraver::acknowledge_grob (Grob_info i) { - if (Bar::has_interface (i.elem_l_)) + if (Bar_line::has_interface (i.grob_l_)) { SCM s = get_property ("instrument"); @@ -91,8 +91,8 @@ Instrument_name_engraver::acknowledge_grob (Grob_info i) create_text (s); } - if (dynamic_cast (i.elem_l_) - && i.elem_l_->has_interface (ly_symbol2scm ("dynamic-interface"))) + if (dynamic_cast (i.grob_l_) + && i.grob_l_->internal_has_interface (ly_symbol2scm ("dynamic-interface"))) return; /* @@ -101,13 +101,17 @@ Instrument_name_engraver::acknowledge_grob (Grob_info i) but is only a vehicle for the placement routine it contains, and therefore the location of its refpoint won't be very useful. + + We could also just use staffsFound, but lets keep this working + without staffs as well. + */ - if (dynamic_cast (i.elem_l_) - && ((Axis_group_interface::has_interface (i.elem_l_) - && Axis_group_interface::axis_b (i.elem_l_, Y_AXIS))) - && !Align_interface::has_interface (i.elem_l_)) + if (dynamic_cast (i.grob_l_) + && ((Axis_group_interface::has_interface (i.grob_l_) + && Axis_group_interface::axis_b (i.grob_l_, Y_AXIS))) + && !Align_interface::has_interface (i.grob_l_)) { - SCM nl = gh_cons (i.elem_l_->self_scm (), + SCM nl = gh_cons (i.grob_l_->self_scm (), get_property ("instrumentSupport")); daddy_trans_l_->set_property ("instrumentSupport", nl); @@ -117,3 +121,12 @@ Instrument_name_engraver::acknowledge_grob (Grob_info i) +ENTER_DESCRIPTION(Instrument_name_engraver, +/* descr */ " Prints the name of the instrument (specified by +@code{Staff.instrument} and @code{Staff.instr}) +at the left of the +staff.", +/* creats*/ "InstrumentName", +/* acks */ "bar-line-interface axis-group-interface", +/* reads */ "instrument instr", +/* write */ "");