]> git.lyx.org Git - lyx.git/blob - src/mathed/math_macrotable.h
one small private fix in mathed, put noncopyable and tie into boost namespace
[lyx.git] / src / mathed / math_macrotable.h
1 // -*- C++ -*-
2 #ifndef MATHMACROTABLE
3 #define MATHMACROTABLE
4
5 #include <map>
6 #include "LString.h"
7
8 #include <boost/utility.hpp>
9 #include <boost/smart_ptr.hpp>
10
11 #ifdef __GNUG__
12 #pragma interface
13 #endif
14
15 class MathMacroTemplate;
16 class MathMacro;
17
18 ///
19 class MathMacroTable : boost::noncopyable {
20 public:
21         ///
22         void addTemplate(boost::shared_ptr<MathMacroTemplate> const &);
23         ///
24         MathMacro * createMacro(string const &) const;
25         ///
26         boost::shared_ptr<MathMacroTemplate> const
27         getTemplate(string const &) const;
28         ///
29         void builtinMacros();
30         ///
31         static MathMacroTable mathMTable;
32         ///
33         static bool built;
34 private:
35         ///
36         typedef std::map<string, boost::shared_ptr<MathMacroTemplate> > table_type;
37         ///
38         table_type macro_table;
39 };
40 #endif