X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftrans_mgr.h;h=06e98991eb0d0d068df3c17d59f4f92d30da082f;hb=b817032684f9ac8c639c013ddcc266ee5d8eed45;hp=d75a56e871dd5a4cde9cf6badc9410672c30b421;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/trans_mgr.h b/src/trans_mgr.h index d75a56e871..06e98991eb 100644 --- a/src/trans_mgr.h +++ b/src/trans_mgr.h @@ -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 -#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 t1_; /// - Trans* t2_; + boost::scoped_ptr 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