/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2004--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2004--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "std-vector.hh"
#include "virtual-methods.hh"
-class Context
+class Context : public Smob<Context>
{
+public:
+ SCM mark_smob ();
+ int print_smob (SCM, scm_print_state *);
+ static const char type_p_name_[];
+ virtual ~Context ();
+private:
Scheme_hash_table *properties_dict () const;
- Context (Context const &src);
+ Context (Context const &src); // Do not define! Not copyable!
- DECLARE_SMOBS (Context);
DECLARE_CLASSNAME (Context);
void terminate ();
*/
void apply_property_operations (Context *tg, SCM pre_init_ops);
-void execute_revert_property (Context *context,
- SCM context_property,
- SCM grob_property_path);
void execute_pushpop_property (Context *trg, SCM prop, SCM eltprop, SCM val);
-void sloppy_general_pushpop_property (Context *context,
- SCM context_property, SCM grob_property_path, SCM val);
-SCM updated_grob_properties (Context *tg, SCM sym);
+
Context *find_context_below (Context *where,
SCM type_sym, const string &id);
bool melisma_busy (Context *);
Context *get_voice_to_lyrics (Context *lyrics);
-Grob *get_current_note_head (Context *voice, bool include_grace_notes);
+Grob *get_current_note_head (Context *voice);
Grob *get_current_rest (Context *voice);
Moment measure_position (Context const *context);
}
SCM nested_property_alist (SCM alist, SCM prop_path, SCM value);
-SCM nested_property_revert_alist (SCM alist, SCM prop_path);
+SCM nested_create_alist (SCM prop_path, SCM value);
+SCM partial_list_copy (SCM alist, SCM tail, SCM newtail);
SCM evict_from_alist (SCM, SCM, SCM);
+SCM nalist_to_alist (SCM nalist, int nested);
#endif /* CONTEXT_HH */