lyx_mirror/src/intl.C
Lars Gullik Bjønnes 83acbbd523 update copyright year
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2072 a592a061-630c-0410-9148-cb99ea01b6c8
2001-05-30 13:53:44 +00:00

101 lines
1.5 KiB
C

/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
/*
* International support for LyX
*/
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "intl.h"
#include "debug.h"
#include "lyxrc.h"
#include "support/lstrings.h"
#include "language.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 (prim_lang.empty() && sec_lang.empty())
keymapon = false;
else
keymapon = on;
KeyMapOn(keymapon);
if (keymapon)
KeyMapPrim();
trans.SetPrimary(prim_lang);
trans.SetSecondary(sec_lang);
trans.setCharset(lyxrc.font_norm);
}