diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-16 15:07:27 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-16 15:07:27 +0300 |
commit | 65b3a9a1067a6f4d5d5950ccb41a426e782b69be (patch) | |
tree | d9ed7ea962c62ec907dd8bc9b27b937780a59ef0 /src/gui/windows/chatwindow.cpp | |
parent | 70e36aca580fd6ebce8f28a301de3cc2660023d1 (diff) | |
download | manaplus-65b3a9a1067a6f4d5d5950ccb41a426e782b69be.tar.gz manaplus-65b3a9a1067a6f4d5d5950ccb41a426e782b69be.tar.bz2 manaplus-65b3a9a1067a6f4d5d5950ccb41a426e782b69be.tar.xz manaplus-65b3a9a1067a6f4d5d5950ccb41a426e782b69be.zip |
Move chatinput into separate file.
Diffstat (limited to 'src/gui/windows/chatwindow.cpp')
-rw-r--r-- | src/gui/windows/chatwindow.cpp | 70 |
1 files changed, 1 insertions, 69 deletions
diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index f8337fff6..bd40d8084 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -56,6 +56,7 @@ #include "gui/widgets/tabs/battletab.h" #include "gui/widgets/button.h" +#include "gui/widgets/chatinput.h" #include "gui/widgets/dropdown.h" #include "gui/widgets/itemlinkhandler.h" #include "gui/widgets/scrollarea.h" @@ -83,75 +84,6 @@ #include "debug.h" -/** - * The chat input hides when it loses focus. It is also invisible by default. - */ -class ChatInput final : public TextField -{ - public: - explicit ChatInput(ChatWindow *const window): - TextField(window, "", false), - mWindow(window), - mFocusGaining(false) - { - setVisible(false); - addFocusListener(this); - } - - A_DELETE_COPY(ChatInput) - - /** - * Called if the chat input loses focus. It will set itself to - * invisible as result. - */ - void focusLost(const Event &event) - { - TextField::focusLost(event); - if (mFocusGaining || !config.getBoolValue("protectChatFocus")) - { - processVisible(false); - if (chatWindow) - chatWindow->updateVisibility(); - mFocusGaining = false; - return; - } - mFocusGaining = true; - requestFocus(); - mFocusGaining = false; - } - - void processVisible(const bool n) - { - if (!mWindow || isVisible() == n) - return; - - if (!n) - mFocusGaining = true; - setVisible(n); - if (config.getBoolValue("hideChatInput") - || config.getBoolValue("showEmotesButton")) - { - mWindow->adjustTabSize(); - } - if (emoteWindow) - { - emoteWindow->hide(); - } - } - - void unprotectFocus() - { mFocusGaining = true; } - - void setVisible(bool visible) - { - TextField::setVisible(visible); - } - - private: - ChatWindow *mWindow; - bool mFocusGaining; -}; - static const char *const ACTION_COLOR_PICKER = "color picker"; ChatWindow::ChatWindow(): |