X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FTinyCon%2FConsole.h;fp=lib%2FTinyCon%2FConsole.h;h=b090dae273abd5c1eee91e796e67f08df1a3591f;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=0000000000000000000000000000000000000000;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/TinyCon/Console.h b/lib/TinyCon/Console.h new file mode 100644 index 0000000..b090dae --- /dev/null +++ b/lib/TinyCon/Console.h @@ -0,0 +1,71 @@ +// ========================================================================= +// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) +// ========================================================================= +#ifndef __TinyCon__Console__h__ +#define __TinyCon__Console__h__ + +#include + +#include +#include + +namespace TinyCon +{ + /** + */ + class CPPLUGINS_TINYCON_EXPORT Console + { + public: + typedef Console Self; + + public: + Console( ); + Console( const std::string& prompt ); + virtual ~Console( ); + + void run( ); + void setPrompt( const std::string& prompt ); + virtual int trigger( const std::string& cmd ); + virtual int hotkeys( char c ); + void pause( ); + void quit( ); + std::string getLine( ); + std::string getLine( int mode, const std::string& delimiter = "" ); + void setMaxHistory( int count ); + void setBuffer( const std::string& buffer ); + + public: + static const unsigned long MAX_HISTORY; + static const char KEY_CTRL1; + static const char BACKSPACE; + static const char UP_ARROW; + static const char DOWN_ARROW; + static const char RIGHT_ARROW; + static const char LEFT_ARROW; + static const char TAB; + static const char ESC; + static const char DEL; + static const char NEWLINE; + static const short M_LINE; + static const short M_PASSWORD; + + protected: + bool m_Quit; + int m_MaxHistory; + std::string m_Prompt; + + int m_Pos; + int m_LinePos; + bool m_SkipOut; + char m_Char; + std::string m_String; + std::string m_Unused; + std::deque< char > m_Buffer; + std::deque< std::string > m_History; + }; + +} // end namespace + +#endif // __TinyCon__Console__h__ + +// eof - $RCSfile$