/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--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 "context.hh"
#include "pqueue.hh"
-class Global_context : public virtual Context
+struct Preinit_Global_context
{
- PQueue<Moment> extra_mom_pq_;
Output_def *output_def_;
+ Preinit_Global_context ();
+};
+
+class Global_context : Preinit_Global_context, public Context
+{
+ PQueue<Moment> extra_mom_pq_;
+ virtual void derived_mark () const;
- DECLARE_CLASSNAME(Global_context);
+ DECLARE_CLASSNAME (Global_context);
friend class Output_def;
public:
void apply_finalizations ();
void add_finalization (SCM);
- DECLARE_LISTENER (prepare);
+ void prepare (SCM);
virtual SCM get_output ();
virtual Output_def *get_output_def () const;
virtual Moment now_mom () const;
- virtual Context *get_default_interpreter ();
+ virtual Context *get_default_interpreter (const string &context_id = "");
Moment previous_moment () const;
protected:
};
SCM ly_format_output (SCM);
-Global_context *unsmob_global_context (SCM x);
#endif // GLOBAL_CONTEXT_HH