summaryrefslogtreecommitdiff
path: root/src/chat.h
diff options
context:
space:
mode:
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;