]> git.lyx.org Git - lyx.git/blobdiff - src/trans_mgr.h
hopefully fix tex2lyx linking.
[lyx.git] / src / trans_mgr.h
index d75a56e871dd5a4cde9cf6badc9410672c30b421..06e98991eb0d0d068df3c17d59f4f92d30da082f 100644 (file)
@@ -1,32 +1,44 @@
 // -*- C++ -*-
-#ifndef _Trans_Manager_h_
-#define _Trans_Manager_h_
+/**
+ * \file trans_mgr.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_MANAGER_H
+#define TRANS_MANAGER_H
+
+#include "chset.h"
+#include "trans_decl.h"
 
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include <boost/scoped_ptr.hpp>
 
-#include "tex-accent.h"
-#include "trans_decl.h"
 
+namespace lyx {
+
+class LCursor;
 class LyXText;
-class LString;
-class CharacterSet;
 class Trans;
 
-/// Translation State
+/// Translation state
 class TransState {
 public:
        ///
-       virtual ~TransState();
+       virtual ~TransState() {}
        ///
-       virtual string normalkey(char,char*)=0;
+       virtual std::string const normalkey(char) = 0;
        ///
-       virtual bool backspace()=0;
+       virtual bool backspace() = 0;
        ///
-       virtual string deadkey(char,KmodInfo)=0;
+       virtual std::string const deadkey(char, KmodInfo) = 0;
        ///
-       static const char TOKEN_SEP;
+       static char const TOKEN_SEP;
 };
 
 
@@ -34,8 +46,7 @@ public:
 class TransFSMData {
 protected:
        ///
-       virtual ~TransFSMData()
-       {}
+       virtual ~TransFSMData() {}
        ///
        char deadkey_;
        ///
@@ -45,157 +56,150 @@ protected:
        ///
        KmodInfo deadkey2_info_;
        ///
-       KmodException comb_info_;
+       Keyexc comb_info_;
        ///
-       TransState* init_state_;
+       TransState * init_state_;
        ///
-       TransState* deadkey_state_;
+       TransState * deadkey_state_;
        ///
-       TransState* combined_state_;
+       TransState * combined_state_;
        ///
 public:
        ///
        TransFSMData();
        ///
-       TransState* currentState;
+       TransState * currentState;
 };
 
 
 /// Init State
-class TransInitState: 
-       virtual public TransFSMData,
-       public TransState {
+class TransInitState :virtual public TransFSMData, public TransState {
 public:
-               ///
-               TransInitState();
-               ///
-               virtual string normalkey(char,char*);
-               ///
-               virtual bool backspace() { return true; }
-               ///
-               virtual string deadkey(char,KmodInfo);
+       ///
+       TransInitState();
+       ///
+       virtual std::string const normalkey(char);
+       ///
+       virtual bool backspace() { return true; }
+       ///
+       virtual std::string const deadkey(char, KmodInfo);
 };
 
 
 /// Deadkey State
-class TransDeadkeyState: 
-       virtual public TransFSMData,
-       public TransState {
+class TransDeadkeyState : virtual public TransFSMData, public TransState {
 public:
-               ///
-               TransDeadkeyState();
-               ///
-               virtual string normalkey(char,char*);
-               ///
-               virtual bool backspace()
-       {
-               currentState=init_state_;
+       ///
+       TransDeadkeyState();
+       ///
+       virtual std::string const normalkey(char);
+       ///
+       virtual bool backspace() {
+               currentState = init_state_;
                return false;
        }
-               ///
-               virtual string deadkey(char,KmodInfo);
+       ///
+       virtual std::string const deadkey(char, KmodInfo);
 };
 
 
 /// Combined State
-class TransCombinedState: 
-       virtual public TransFSMData,
-       public TransState {
+class TransCombinedState : virtual public TransFSMData, public TransState {
 public:
-               ///
-               TransCombinedState();
-               ///
-               virtual string normalkey(char,char*);
-               ///
-               virtual bool backspace()
-       {
+       ///
+       TransCombinedState();
+       ///
+       virtual std::string const normalkey(char);
+       ///
+       virtual bool backspace() {
                // cancel the second deadkey
-               deadkey2_=0;
-               deadkey2_info_.accent=TEX_NOACCENT;
-               currentState=deadkey_state_;
-               
+               deadkey2_ = 0;
+               deadkey2_info_.accent = TEX_NOACCENT;
+               currentState = deadkey_state_;
+
                return false;
        }
-               ///
-               virtual string deadkey(char,KmodInfo);
+       ///
+       virtual std::string const deadkey(char, KmodInfo);
 };
 
 
 ///
-class TransFSM:        
-       virtual public TransFSMData,
-       public TransInitState,
-       public TransDeadkeyState,
-       public TransCombinedState
-{
+class TransFSM : virtual public TransFSMData,
+                public TransInitState,
+                public TransDeadkeyState,
+                public TransCombinedState {
 public:
        ///
        TransFSM();
 };
 
+
 ///
-class TransManager
-{
+class TransManager {
 private:
        ///
        TransFSM trans_fsm_;
        ///
-       Trans* active_;
+       Trans * active_;
        ///
-       Trans* t1_;
+       boost::scoped_ptr<Trans> t1_;
        ///
-       Trans* t2_;
+       boost::scoped_ptr<Trans> t2_;
        ///
-       static Trans* default_;
+       static Trans default_;
        ///
-       CharacterSet* chset_;
+       CharacterSet chset_;
        ///
-       void insert(string,LyXText*);
+       void insert(std::string const &, LyXText *, LCursor & cur);
        ///
-       void insertVerbatim(const string&,LyXText*);
+       void insertVerbatim(std::string const &, LyXText *, LCursor & cur);
 public:
        ///
        TransManager();
        ///
-       virtual ~TransManager();
+       ~TransManager();
        ///
-       int SetPrimary(string const &);
+       int setPrimary(std::string const &);
        ///
-       int SetSecondary(string const &);
+       int setSecondary(std::string const &);
        ///
-       void EnablePrimary();
+       void enablePrimary();
        ///
-       void EnableSecondary();
+       void enableSecondary();
        ///
-       void DisableKeymap();
+       void disableKeymap();
        ///
-       bool setCharset(const char*);
+       bool setCharset(std::string const &);
        ///
-       bool backspace()
-       {
+       bool backspace() {
                return trans_fsm_.currentState->backspace();
        }
        ///
-       void TranslateAndInsert(char,LyXText*);
+       void translateAndInsert(char, LyXText *, LCursor &);
        ///
-       inline string deadkey(char,KmodInfo);
+       std::string const deadkey(char, KmodInfo);
        ///
-       inline string normalkey(char,char*);
+       std::string const normalkey(char);
        ///
-       void deadkey(char,tex_accent,LyXText*);
-    
+       void deadkey(char, tex_accent, LyXText *, LCursor &);
 };
 
 
-string TransManager::normalkey(char c,char *t)
+inline
+std::string const TransManager::normalkey(char c)
 {
-       return trans_fsm_.currentState->normalkey(c,t);
+       return trans_fsm_.currentState->normalkey(c);
 }
 
 
-string TransManager::deadkey(char c,KmodInfo t)
+inline
+std::string const TransManager::deadkey(char c, KmodInfo t)
 {
-       return trans_fsm_.currentState->deadkey(c,t);
+       return trans_fsm_.currentState->deadkey(c, t);
 }
 
-#endif
+
+} // namespace lyx
+
+#endif // TRANS_MANAGER_H