lyx_mirror/src/intl.C
Jean-Marc Lasgouttes 7bc451a1ee * src/intl.C (InitKeyMapper): reset kbmap file names if the files
could not be read (bug 2604).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13971 a592a061-630c-0410-9148-cb99ea01b6c8
2006-05-31 10:34:30 +00:00

96 lines
1.5 KiB
C

/**
* \file intl.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author unknown
* \author Lars Gullik Bjønnes
* \author Angus Leeming
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "intl.h"
#include "debug.h"
#include "lyxrc.h"
using std::endl;
Intl::Intl()
: keymap(Intl::PRIMARY), keymapon(lyxrc.use_kbmap),
prim_lang(lyxrc.primary_kbmap), sec_lang(lyxrc.secondary_kbmap)
{
}
void Intl::keyMapOn(bool on)
{
keymapon = on;
if (on) {
if (keymap == PRIMARY)
keyMapPrim();
else
keyMapSec();
} else
trans.disableKeymap();
}
void Intl::toggleKeyMap()
{
if (keymapon && (keymap == PRIMARY)) {
keyMapSec();
} else if (keymapon) {
keyMapOn(false);
} else
keyMapPrim();
}
void Intl::keyMapPrim()
{
if (!trans.setPrimary(prim_lang))
trans.enablePrimary();
keymapon = true;
keymap = PRIMARY;
}
void Intl::keyMapSec()
{
if (!trans.setSecondary(sec_lang))
trans.enableSecondary();
keymapon = true;
keymap = SECONDARY;
}
void Intl::initKeyMapper(bool on)
{
lyxerr[Debug::INIT] << "Initializing key mappings..." << endl;
if (trans.setPrimary(prim_lang) == -1)
prim_lang.erase();
if (trans.setSecondary(sec_lang) == -1)
sec_lang.erase();
trans.setCharset(lyxrc.font_norm);
if (prim_lang.empty() && sec_lang.empty())
keymapon = false;
else
keymapon = on;
keyMapOn(keymapon);
if (keymapon)
keyMapPrim();
}