about summary refs log tree commit diff
path: root/src/game/client/lineinput.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client/lineinput.h')
-rw-r--r--src/game/client/lineinput.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/game/client/lineinput.h b/src/game/client/lineinput.h
new file mode 100644
index 00000000..f5c65282
--- /dev/null
+++ b/src/game/client/lineinput.h
@@ -0,0 +1,31 @@
+#ifndef GAME_CLIENT_LINEINPUT_H
+#define GAME_CLIENT_LINEINPUT_H
+
+#include <engine/input.h>
+
+// line input helter
+class CLineInput
+{
+	char m_Str[256];
+	int m_Len;
+	int m_CursorPos;
+public:
+	static bool Manipulate(IInput::CEvent e, char *pStr, int StrMaxSize, int *pStrLenPtr, int *pCursorPosPtr);
+
+	class CCallback
+	{
+	public:
+		virtual ~CCallback() {}
+		virtual bool Event(IInput::CEvent e) = 0;
+	};
+
+	CLineInput();
+	void Clear();
+	void ProcessInput(IInput::CEvent e);
+	void Set(const char *pString);
+	const char *GetString() const { return m_Str; }
+	int GetLength() const { return m_Len; }
+	unsigned GetCursorOffset() const { return m_CursorPos; }
+};
+
+#endif