X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fphrasing-slur-engraver.cc;h=aeee14a1ee5d3ede63d92ee69fd5cb3d91df0fdd;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=6d9aac7af68d64fb5b7220acc2ebccb0f37435d0;hpb=5e21cfdf00549e18e557d8cafd129a6ce0ff00a4;p=lilypond.git diff --git a/lily/phrasing-slur-engraver.cc b/lily/phrasing-slur-engraver.cc index 6d9aac7af6..aeee14a1ee 100644 --- a/lily/phrasing-slur-engraver.cc +++ b/lily/phrasing-slur-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,57 +17,72 @@ along with LilyPond. If not, see . */ -#include "engraver.hh" - -#include "context.hh" -#include "directional-element-interface.hh" -#include "international.hh" -#include "note-column.hh" -#include "slur.hh" -#include "slur-proto-engraver.hh" -#include "spanner.hh" -#include "stream-event.hh" -#include "warn.hh" +#include "slur-engraver.hh" #include "translator.icc" -class Phrasing_slur_engraver : public Slur_proto_engraver +class Phrasing_slur_engraver : public Slur_engraver { -protected: - DECLARE_TRANSLATOR_LISTENER (phrasing_slur); - DECLARE_ACKNOWLEDGER (slur); + virtual SCM event_symbol () const; + virtual bool double_property () const; + virtual SCM grob_symbol () const; + virtual const char* object_name () const; + virtual void set_melisma (bool); public: TRANSLATOR_DECLARATIONS (Phrasing_slur_engraver); + TRANSLATOR_INHERIT (Slur_engraver); }; -Phrasing_slur_engraver::Phrasing_slur_engraver () : - Slur_proto_engraver (0, "PhrasingSlur", "phrasing slur", "phrasing-slur-event") +SCM +Phrasing_slur_engraver::event_symbol () const { + return ly_symbol2scm ("phrasing-slur-event"); } -IMPLEMENT_TRANSLATOR_LISTENER (Phrasing_slur_engraver, phrasing_slur); -void -Phrasing_slur_engraver::listen_phrasing_slur (Stream_event *ev) +bool +Phrasing_slur_engraver::double_property () const +{ + return false; +} + +SCM +Phrasing_slur_engraver::grob_symbol () const +{ + return ly_symbol2scm ("PhrasingSlur"); +} + +const char * +Phrasing_slur_engraver::object_name () const +{ + return "phrasing slur"; +} + +Phrasing_slur_engraver::Phrasing_slur_engraver (Context *c) + : Slur_engraver (c) { - internal_listen_slur (ev); } void -Phrasing_slur_engraver::acknowledge_slur (Grob_info info) +Phrasing_slur_engraver::set_melisma (bool) { - acknowledge_extra_object (info); } -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, inline_accidental); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, fingering) -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, slur); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, dots); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, text_script); -ADD_END_ACKNOWLEDGER (Phrasing_slur_engraver, tie); -ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tuplet_number); +void +Phrasing_slur_engraver::boot () +{ + ADD_LISTENER_FOR (Phrasing_slur_engraver, slur, phrasing_slur); + ADD_LISTENER (Phrasing_slur_engraver, note); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, inline_accidental); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, fingering); + ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, slur); + ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, dots); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, text_script); + ADD_END_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, tie); + ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, tuplet_number); +} ADD_TRANSLATOR (Phrasing_slur_engraver, /* doc */