]> git.lyx.org Git - lyx.git/blob - src/mathed/math_macrotable.h
work around static initialization problem
[lyx.git] / src / mathed / math_macrotable.h
1 // -*- C++ -*-
2 #ifndef MATH_MACROTABLE_H
3 #define MATH_MACROTABLE_H
4
5 #include <map>
6 #include "LString.h"
7
8 #ifdef __GNUG__
9 #pragma interface
10 #endif
11
12
13 class MathMacro;
14 class MathMacroTemplate;
15
16 ///
17 struct MathMacroTable {
18 public:
19         ///
20         static void updateTemplate(MathMacroTemplate *);
21         ///
22         static void insertTemplate(MathMacroTemplate *);
23         ///
24         static MathMacroTemplate & provideTemplate(string const &);
25         ///
26         static bool hasTemplate(string const &);
27         ///
28         static MathMacro * cloneTemplate(string const &);
29         ///
30         static void createTemplate(string const &, int, string const &);
31         ///
32         static void builtinMacros();
33 private:
34         ///
35         typedef std::map<string, MathMacroTemplate *> table_type;
36         //
37         static table_type macro_table;
38 public:
39         ///
40         static void dump();
41 };
42 #endif