]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/global-context.hh
Issue 4997/7: Use Preinit for Global_context, protect output definition
[lilypond.git] / lily / include / global-context.hh
index 561cd6e49cc7012ea8d3dc66bbc988c59395a202..fd6f1f92c010c578c03286da4f30e8e3b7951234 100644 (file)
@@ -1,7 +1,7 @@
 /*
   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
+class Global_context : public Preinit<Global_context>, public Context
 {
   PQueue<Moment> extra_mom_pq_;
   Output_def *output_def_;
+  virtual void derived_mark () const;
 
-  DECLARE_CLASSNAME(Global_context);
+  DECLARE_CLASSNAME (Global_context);
 
   friend class Output_def;
 public:
+  void pre_init ();
   Global_context (Output_def *);
   int get_moments_left () const;
   Moment sneaky_insert_extra_moment (Moment);
@@ -42,11 +44,11 @@ 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 (string context_id = "");
+  virtual Context *get_default_interpreter (const string &context_id = "");
 
   Moment previous_moment () const;
 protected:
@@ -55,6 +57,5 @@ protected:
 };
 
 SCM ly_format_output (SCM);
-Global_context *unsmob_global_context (SCM x);
 
 #endif // GLOBAL_CONTEXT_HH