00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00029 #include "Types.h"
00030 #include "SavableTypes.h"
00031
00037 class Editor
00038 {
00039 public:
00041 Editor(UBSocket* sock);
00042
00044 virtual ~Editor(void);
00045
00046
00048 virtual void OnEmptyLine() {}
00049
00059 virtual void OnLine(const std::string& line);
00060
00062 virtual void OnFocus() { }
00063
00064
00066 virtual std::string name() = 0;
00067
00069 virtual std::string prompt();
00070
00072 virtual std::string lookup(const std::string& action);
00073
00075 virtual void dispatch(const std::string& action, const std::string& argument) { return; };
00076
00078 virtual bool canReceiveChannel(mud::ChannelPtr channel) const;
00079
00081 virtual bool supportPrefixes() const;
00082
00083
00085 void Send(const std::string& msg);
00086
00088 void Sendf(const char* format, ...);
00089
00091 void Disconnect();
00092
00093 protected:
00094 UBSocket* m_sock;
00096 private:
00098 Editor(const Editor& rhs);
00099 };