]> git.lyx.org Git - lyx.git/blob - src/intl.C
oops again! hopefully this works now. Time to go to bed
[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 #include "intl.h"
13 #include "debug.h"
14 #include "lyxrc.h"
15
16 #include "support/lstrings.h"
17 #include "language.h"
18
19 using std::endl;
20
21
22 Intl::Intl()
23         : keymap(Intl::PRIMARY), keymapon(lyxrc.use_kbmap),
24         prim_lang(lyxrc.primary_kbmap), sec_lang(lyxrc.secondary_kbmap)
25 {
26 }
27
28
29 void Intl::KeyMapOn(bool on)
30 {
31         keymapon = on;
32
33         if (on) {
34                 if (keymap == PRIMARY)
35                         KeyMapPrim();
36                 else
37                         KeyMapSec();
38         } else
39                 trans.DisableKeymap();
40 }
41
42
43 void Intl::ToggleKeyMap()
44 {
45         if (keymapon && (keymap == PRIMARY)) {
46                 KeyMapSec();
47         } else if (keymapon) {
48                 KeyMapOn(false);
49         } else
50                 KeyMapPrim();
51 }
52
53
54 void Intl::KeyMapPrim()
55 {
56         if (!trans.SetPrimary(prim_lang))
57                 trans.EnablePrimary();
58
59         keymapon = true;
60         keymap = PRIMARY;
61 }
62
63
64 void Intl::KeyMapSec()
65 {
66         if (!trans.SetSecondary(sec_lang))
67                 trans.EnableSecondary();
68
69         keymapon = true;
70         keymap = SECONDARY;
71 }
72
73
74 void Intl::InitKeyMapper(bool on)
75 {
76         lyxerr[Debug::INIT] << "Initializing key mappings..." << endl;
77
78         if (prim_lang.empty() && sec_lang.empty())
79                 keymapon = false;
80         else
81                 keymapon = on;
82
83         KeyMapOn(keymapon);
84
85         if (keymapon)
86                 KeyMapPrim();
87
88         trans.SetPrimary(prim_lang);
89         trans.SetSecondary(sec_lang);
90         trans.setCharset(lyxrc.font_norm);
91 }