X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fengraver-group.hh;h=2a75741f765faf2582d6d9ebf5789d147415e4b9;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=bf3c761a2a492b989a4d6d2202c5c376ae9e18d1;hpb=57d6628b46ba1d7ed7c9c0ca7f579567d1912b0d;p=lilypond.git diff --git a/lily/include/engraver-group.hh b/lily/include/engraver-group.hh index bf3c761a2a..2a75741f76 100644 --- a/lily/include/engraver-group.hh +++ b/lily/include/engraver-group.hh @@ -1,90 +1,42 @@ /* - engravergroup.hh -- declare Engraver_group_engraver + engraver-group.hh -- declare Engraver_group source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ +#ifndef ENGRAVER_GROUP_HH +#define ENGRAVER_GROUP_HH -#ifndef ENGRAVERGROUP_HH -#define ENGRAVERGROUP_HH - -#include "lily-proto.hh" -#include "parray.hh" -#include "plist.hh" -#include "score-elem-info.hh" #include "engraver.hh" -#include "translator.hh" - +#include "translator-group.hh" -/** - Group a number of engravers. Usually delegates everything to its contents. - Postfix: group - */ -class Engraver_group_engraver : public Engraver, public virtual Translator { +class Engraver_group : public virtual Translator_group +{ protected: - - Pointer_list grav_list_; - Link_array group_l_arr_; - Link_array nongroup_l_arr_; - - Array announce_info_arr_; - - virtual void do_print()const; - - virtual bool removable_b()const; - + vector announce_infos_; + Drul_array acknowledge_hash_table_drul_; + DECLARE_LISTENER (override); + DECLARE_LISTENER (revert); public: - Input_engraver * igrav_l_; - void check_removal(); - Engraver_group_engraver(); - ~Engraver_group_engraver(); - - bool is_bottom_engraver_b() const; - - - /** - Junk #grav_l#. - Pre: - #grav_l# is in #grav_list_# - */ - virtual void terminate_engraver(Engraver * grav_l); - - NAME_MEMBERS(); - - /** - Remove #grav_l# from the list, and return it. - */ - virtual Engraver * remove_engraver_p(Engraver*grav_l); - virtual void set_feature(Feature i); - virtual void sync_features(); - - virtual void do_pre_move_processing(); - virtual void do_post_move_processing(); - virtual void do_removal_processing(); - virtual bool do_try_request(Request*); - virtual bool try_request(Request*); - virtual void do_process_requests(); - - virtual Staff_info get_staff_info()const; - - virtual Engraver_group_engraver * find_engraver_l(String name,String id); - virtual void do_announces(); - virtual void announce_element(Score_elem_info); - virtual void add(Engraver* grav_p); - virtual bool contains_b(Engraver*)const; + VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Engraver_group); + + Engraver_group (); + virtual void derived_mark () const; + void do_announces (); + virtual void connect_to_context (Context *c); + virtual void disconnect_from_context (); + virtual void announce_grob (Grob_info); + int pending_grob_count () const; +private: + virtual void acknowledge_grobs (); +}; - virtual Translator* find_get_translator_l(String name, String id); - virtual Translator * get_default_interpreter(); - /** - Go up in the tree. default: choose next parent - */ - Translator * ancestor_l(int l=1); - int depth_i() const; +typedef void (Engraver:: *Engraver_method) (void); -}; +void engraver_each (SCM list, Engraver_method method); -#endif // ENGRAVERGROUP_HH +#endif /* ENGRAVERGROUP_HH */