]> git.lyx.org Git - lyx.git/blob - src/language.h
dont delere recursively, return a value from event_cb
[lyx.git] / src / language.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ====================================================== 
4  * 
5  *           LyX, The Document Processor
6  *        
7  *           Copyright 1995 Matthias Ettrich
8  *           Copyright 1995-2001 The LyX Team.
9  *
10  * ====================================================== */
11
12 #ifndef LANGUAGE_H
13 #define LANGUAGE_H
14
15 #ifdef __GNUG__
16 #pragma interface
17 #endif
18
19 #include <map>
20 #include "LString.h"
21
22 class Encoding;
23
24 ///
25 class Language {
26 public:
27         ///
28         Language() : RightToLeft_(false) {}
29         ///
30         Language(string const & l, string const & b, string const & d,
31                  bool rtl, Encoding const * e, string const & c,
32                  string const & o)
33                 : lang_(l), babel_(b), display_(d), RightToLeft_(rtl),
34                   encoding_(e), code_(c), latex_options_(o)
35                 {}
36         ///
37         string const & lang() const {
38                 return lang_;
39         }
40         ///
41         string const & babel() const {
42                 return babel_;
43         }
44         ///
45         string const & display() const {
46                 return display_;
47         }
48         ///
49         bool RightToLeft() const {
50                 return RightToLeft_;
51         }
52         ///
53         Encoding const * encoding() const {
54                 return encoding_;
55         }
56         ///
57         string const & code() const {
58                 return code_;
59         }
60         ///
61         string const & latex_options() const {
62                 return latex_options_;
63         }
64 private:
65         ///
66         string lang_;
67         ///
68         string babel_;
69         ///
70         string display_;
71         ///
72         bool RightToLeft_;
73         ///
74         Encoding const * encoding_;
75         ///
76         string code_;
77         ///
78         string latex_options_;
79 };
80
81 class Languages
82 {
83 public:
84         ///
85         typedef std::map<string, Language> LanguageList;
86         ///
87         typedef LanguageList::const_iterator const_iterator;
88         ///
89         typedef LanguageList::size_type size_type;
90         ///
91         void read(string const & filename);
92         ///
93         void setDefaults();
94         ///
95         Language const * getLanguage(string const & language) const;
96         ///
97         size_type size() const {
98                 return languagelist.size();
99         }
100         ///
101         const_iterator begin() const {
102                 return languagelist.begin();
103         }
104         ///
105         const_iterator end() const {
106                 return languagelist.end();
107         }
108         ///
109         
110 private:
111         ///
112         LanguageList languagelist;
113 };
114
115 extern Languages languages;
116 extern Language const * default_language;
117 extern Language const * english_language;
118 extern Language const * ignore_language;
119 extern Language const * latex_language;
120 #ifdef INHERIT_LANGUAGE
121 extern Language const * inherit_language;
122 #endif
123
124 #endif