lyx_mirror/src/trans.h
Angus Leeming 0f9678630c Remove all unnecessary #includes from header files.
Add them as appropriate to .C files.
Rename Voss as Vo�, Juergen as J�rgen and Spitzmueller as Spitzm�ller.
Happy compiling.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7701 a592a061-630c-0410-9148-cb99ea01b6c8
2003-09-07 01:45:40 +00:00

86 lines
1.4 KiB
C++

// -*- C++ -*-
/**
* \file trans.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Lars Gullik Bjønnes
* \author Matthias Ettrich
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
#ifndef TRANS_H
#define TRANS_H
#include "trans_decl.h"
#include "support/std_string.h"
#include <map>
class LyXLex;
class TransManager;
/**
Trans: holds a .kmap file
*/
class Trans {
public:
///
Trans();
///
~Trans();
///
int Load(string const & language);
///
bool IsDefined() const;
///
string const & GetName() const;
///
string const process(char, TransManager &);
///
bool isAccentDefined(tex_accent, KmodInfo &) const;
private:
///
void AddDeadkey(tex_accent, string const &);
///
void FreeKeymap();
///
int Load(LyXLex &);
///
string const & Match(unsigned char c);
///
void InsertException(KmodException & exclist, char c,
string const & data, bool = false,
tex_accent = TEX_NOACCENT);
///
void FreeException(KmodException & exclist);
///
string name_;
///
std::map<int, string> keymap_;
///
std::map<int, KmodInfo> kmod_list_;
};
///
inline
string const & Trans::Match(unsigned char c)
{
std::map<int, string>::iterator it = keymap_.find(c);
if (it != keymap_.end()) {
return it->second;
}
static string dummy;
return dummy;
}
#endif // TRANS_H