From 430929e75a4e6c81d7dd2746570f925bb45e674e Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Sat, 27 Feb 2016 16:04:44 -0500 Subject: Add text selection and copying to console --- src/chat.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/chat.h') 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; -- cgit v1.2.3