]> git.lyx.org Git - lyx.git/blob - src/intl.C
couple more fixes
[lyx.git] / src / intl.C
1 /**
2  * \file intl.C
3  * Copyright 1995-2002 the LyX Team
4  * Read the file COPYING
5  *
6  * \author unknown
7  * \author John Levon <moz@compsoc.man.ac.uk>
8  */
9
10 #include <config.h>
11
12 #ifdef __GNUG__
13 #pragma implementation
14 #endif
15
16 #include "intl.h"
17 #include "debug.h"
18 #include "lyxrc.h"
19
20 #include "support/lstrings.h"
21 #include "language.h"
22
23 using std::endl;
24
25
26 Intl::Intl()
27         : keymap(Intl::PRIMARY), keymapon(lyxrc.use_kbmap),
28         prim_lang(lyxrc.primary_kbmap), sec_lang(lyxrc.secondary_kbmap)
29 {
30 }
31
32
33 void Intl::KeyMapOn(bool on)
34 {
35         keymapon = on;
36
37         if (on) {
38                 if (keymap == PRIMARY)
39                         KeyMapPrim();
40                 else
41                         KeyMapSec();
42         } else
43                 trans.DisableKeymap();
44 }
45
46
47 void Intl::ToggleKeyMap()
48 {
49         if (keymapon && (keymap == PRIMARY)) {
50                 KeyMapSec();
51         } else if (keymapon) {
52                 KeyMapOn(false);
53         } else
54                 KeyMapPrim();
55 }
56
57
58 void Intl::KeyMapPrim()
59 {
60         if (!trans.SetPrimary(prim_lang))
61                 trans.EnablePrimary();
62
63         keymapon = true;
64         keymap = PRIMARY;
65 }
66
67
68 void Intl::KeyMapSec()
69 {
70         if (!trans.SetSecondary(sec_lang))
71                 trans.EnableSecondary();
72
73         keymapon = true;
74         keymap = SECONDARY;
75 }
76
77
78 void Intl::InitKeyMapper(bool on)
79 {
80         lyxerr[Debug::INIT] << "Initializing key mappings..." << endl;
81
82         if (prim_lang.empty() && sec_lang.empty())
83                 keymapon = false;
84         else
85                 keymapon = on;
86
87         KeyMapOn(keymapon);
88
89         if (keymapon)
90                 KeyMapPrim();
91
92         trans.SetPrimary(prim_lang);
93         trans.SetSecondary(sec_lang);
94         trans.setCharset(lyxrc.font_norm);
95 }