From: fred Date: Sun, 24 Mar 2002 19:59:36 +0000 (+0000) Subject: lilypond-0.1.47 X-Git-Tag: release/1.5.59~3776 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ff44f2ebed3ba2456dcf4461cfccc566e5cf1534;p=lilypond.git lilypond-0.1.47 --- diff --git a/lily/include/abbrev.hh b/lily/include/abbrev.hh new file mode 100644 index 0000000000..9428be7dc2 --- /dev/null +++ b/lily/include/abbrev.hh @@ -0,0 +1,27 @@ +/* + abbrev.hh -- declare Abbreviation + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + */ + +#ifndef ABBREV_HH +#define ABBREV_HH + +#include "item.hh" +class Abbreviation : public Item { + Stem * stem_l_; +protected: + virtual void do_print () const; + virtual Molecule *brew_molecule_p () const; + virtual void do_substitute_dependent (Score_elem*, Score_elem*); +public: + int abbrev_flags_i_; + Abbreviation (); + void set_stem (Stem *); +}; + +#endif /* ABBREV_HH */ + diff --git a/lily/stem-grav.cc b/lily/stem-grav.cc index 4cef2a9594..1a552bcf2c 100644 --- a/lily/stem-grav.cc +++ b/lily/stem-grav.cc @@ -12,11 +12,13 @@ #include "musical-request.hh" #include "duration-convert.hh" #include "misc.hh" +#include "abbrev.hh" Stem_engraver::Stem_engraver() { abbrev_req_l_ = 0; stem_p_ = 0; + abbrev_p_ = 0; default_abbrev_i_ = 16; dir_ = CENTER; } @@ -52,7 +54,10 @@ Stem_engraver::acknowledge_element(Score_elem_info i) t = default_abbrev_i_; else default_abbrev_i_ = t; - stem_p_->abbrev_flag_i_ =intlog2 (t) - (durlog_i>? 2); + + abbrev_p_ = new Abbreviation; + announce_element (Score_elem_info (abbrev_p_, abbrev_req_l_)); + abbrev_p_->abbrev_flags_i_ =intlog2 (t) - (durlog_i>? 2); } announce_element (Score_elem_info (stem_p_, r)); } @@ -63,6 +68,12 @@ Stem_engraver::acknowledge_element(Score_elem_info i) void Stem_engraver::do_pre_move_processing() { + if (abbrev_p_) + { + abbrev_p_->set_stem (stem_p_); + typeset_element (abbrev_p_); + abbrev_p_ = 0; + } if (stem_p_) { Scalar prop = get_property ("ydirection");