summaryrefslogtreecommitdiff
path: root/src/chat.h
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2016-02-27 16:04:44 -0500
committerShadowNinja <shadowninja@minetest.net>2016-03-02 23:23:31 -0500
commit430929e75a4e6c81d7dd2746570f925bb45e674e (patch)
tree5b1e8d0c0c749d15ce259b06e1c0464725f8addc /src/chat.h
parent3edb7575a1ccca631994c0f5515b770b7a3e20d2 (diff)
downloadminetest-430929e75a4e6c81d7dd2746570f925bb45e674e.tar.gz
minetest-430929e75a4e6c81d7dd2746570f925bb45e674e.tar.bz2
minetest-430929e75a4e6c81d7dd2746570f925bb45e674e.zip
Add text selection and copying to console
Diffstat (limited to 'src/chat.h')
-rw-r--r--src/chat.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/chat.h b/src/chat.h
index 367baaaf2..db4146d35 100644
--- a/src/chat.h
+++ b/src/chat.h
@@ -150,7 +150,11 @@ public:
void addToHistory(std::wstring line);
// Get current line
- std::wstring getLine();
+ std::wstring getLine() const { return m_line; }
+
+ // Get section of line that is currently selected
+ std::wstring getSelection() const
+ { return m_line.substr(m_cursor, m_cursor_len); }
// Clear the current line
void clear();
@@ -172,10 +176,13 @@ public:
std::wstring getVisiblePortion() const;
// Get cursor position (relative to visible portion). -1 if invalid
s32 getVisibleCursorPosition() const;
+ // Get length of cursor selection
+ s32 getCursorLength() const { return m_cursor_len; }
// Cursor operations
enum CursorOp {
CURSOROP_MOVE,
+ CURSOROP_SELECT,
CURSOROP_DELETE
};
@@ -189,7 +196,8 @@ public:
enum CursorOpScope {
CURSOROP_SCOPE_CHARACTER,
CURSOROP_SCOPE_WORD,
- CURSOROP_SCOPE_LINE
+ CURSOROP_SCOPE_LINE,
+ CURSOROP_SCOPE_SELECTION
};
// Cursor operation
@@ -227,6 +235,8 @@ private:
s32 m_view;
// Cursor (index into m_line)
s32 m_cursor;
+ // Cursor length (length of selected portion of line)
+ s32 m_cursor_len;
// Last nick completion start (index into m_line)
s32 m_nick_completion_start;