]> git.lyx.org Git - lyx.git/blobdiff - src/trans.h
fix compiler warnings about unused parameter
[lyx.git] / src / trans.h
index 97e8a51595c80e396e9b30107c6c7b56aa0c84a0..ce529a2b9f991c2d58bf850373d2e52e35dcdd86 100644 (file)
 // -*- C++ -*-
-#ifndef Trans_h
-#define Trans_h
+/**
+ * \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.
+ */
 
-#ifdef __GNUG__
-#pragma interface
-#endif
+#ifndef TRANS_H
+#define TRANS_H
 
-#include "tex-accent.h"
-#include "LString.h"
 #include "trans_decl.h"
 
-class LyXLex;
+#include <map>
 
-class TransManager;
 
-/**
-  TransInterface: the interface that every translation class
-  should obey too.
-  Visitor pattern applied here
-  */
-class TransInterface {
-public:
-       ///
-       virtual string process(char, TransManager &) = 0;
-       ///
-       virtual bool isAccentDefined(tex_accent, KmodInfo &) = 0;
-};
+namespace lyx {
 
-/**
-  DefaultTrans: the default translation class. Hols info
-  on tex-accents. Monostate
-  */
-class DefaultTrans : public TransInterface {
-private:
-       ///
-       static bool init_;
-public:
-       ///
-       DefaultTrans();
-       ///
-       virtual string process(char, TransManager &);
-};
 
+class LyXLex;
+
+class TransManager;
 
 /**
-  Trans: holds a .kmap file 
+  Trans: holds a .kmap file
   */
-class Trans : public TransInterface {
+class Trans {
 public:
        ///
        Trans();
        ///
-       virtual ~Trans();
+       ~Trans();
 
        ///
-       int Load(string const & language);
+       int load(std::string const & language);
        ///
-       bool IsDefined();
+       bool isDefined() const;
        ///
-       string const & GetName();
+       std::string const & getName() const;
        ///
-       string process(char, TransManager &);
+       std::string const process(char, TransManager &);
        ///
-       bool isAccentDefined(tex_accent, KmodInfo &);
-    
+       bool isAccentDefined(tex_accent, KmodInfo &) const;
+
 private:
        ///
-       typedef KmodInfo kmod_list_decl;
-       ///
-       typedef KmodException keyexc;
-    
-       ///
-       void AddDeadkey(tex_accent, string const &, string const &);
+       void addDeadkey(tex_accent, std::string const &);
        ///
-       void FreeKeymap();
+       void freeKeymap();
        ///
-       int Load(LyXLex &);
+       int load(LyXLex &);
        ///
-       inline char * Match(char c);
+       std::string const & match(unsigned char c);
        ///
-       void InsertException(keyexc & exclist, char c,
-                            string const & data, bool = false,
+       void insertException(KmodException & exclist, char c,
+                            std::string const & data, bool = false,
                             tex_accent = TEX_NOACCENT);
        ///
-       void FreeException(keyexc & exclist);
+       void freeException(KmodException & exclist);
 
        ///
-       string name_;
+       std::string name_;
        ///
-       char * keymap_[256];
+       std::map<int, std::string> keymap_;
        ///
-       kmod_list_decl * kmod_list_[TEX_MAX_ACCENT+1];
-
+       std::map<int, KmodInfo> kmod_list_;
 };
 
 
-char * Trans::Match(char c)
+///
+inline
+std::string const & Trans::match(unsigned char c)
 {
-       return keymap_[c];
+       std::map<int, std::string>::iterator it = keymap_.find(c);
+       if (it != keymap_.end()) {
+               return it->second;
+       }
+       static std::string dummy;
+       return dummy;
 }
 
-#endif 
+
+} // namespace lyx
+
+#endif // TRANS_H