m_nick_completion_end = 0;
}
+void ChatPrompt::input(const std::wstring &str)
+{
+ m_line.insert(m_cursor, str);
+ m_cursor += str.size();
+ clampView();
+ m_nick_completion_start = 0;
+ m_nick_completion_end = 0;
+}
+
std::wstring ChatPrompt::submit()
{
std::wstring line = m_line;
ChatPrompt(std::wstring prompt, u32 history_limit);
~ChatPrompt();
- // Input character
+ // Input character or string
void input(wchar_t ch);
+ void input(const std::wstring &str);
// Submit, clear and return current line
std::wstring submit();
scope);
return true;
}
+ else if(event.KeyInput.Key == KEY_KEY_V && event.KeyInput.Control)
+ {
+ // Ctrl-V pressed
+ // paste text from clipboard
+ IOSOperator *os_operator = Environment->getOSOperator();
+ const c8 *text = os_operator->getTextFromClipboard();
+ if (text)
+ {
+ std::wstring wtext = narrow_to_wide(text);
+ m_chat_backend->getPrompt().input(wtext);
+ }
+ return true;
+ }
else if(event.KeyInput.Key == KEY_KEY_U && event.KeyInput.Control)
{
// Ctrl-U pressed