]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/global-context.hh
Issue 5024: Rework the Preinit framework into something simpler
[lilypond.git] / lily / include / global-context.hh
index 8c1b8b66ab73294cb5bd8aaef439cab1eee279bd..e0aca0a7d6cc35aeea203bb3c524e985eedd80ba 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2014 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 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);
 
@@ -42,7 +48,7 @@ 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;
@@ -55,6 +61,5 @@ protected:
 };
 
 SCM ly_format_output (SCM);
-Global_context *unsmob_global_context (SCM x);
 
 #endif // GLOBAL_CONTEXT_HH