From bd7a4a6eb33606a4519cc022c9ff524238a31111 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 12 Oct 2014 12:54:22 +0300 Subject: Move WhisperTab into chat subdir. --- src/CMakeLists.txt | 4 +- src/Makefile.am | 4 +- src/actions/commands.cpp | 2 +- src/being/localplayer.cpp | 2 +- src/gui/popups/popupmenu.cpp | 2 +- src/gui/widgets/tabs/chat/whispertab.cpp | 143 +++++++++++++++++++++++++++++++ src/gui/widgets/tabs/chat/whispertab.h | 74 ++++++++++++++++ src/gui/widgets/tabs/whispertab.cpp | 143 ------------------------------- src/gui/widgets/tabs/whispertab.h | 74 ---------------- src/gui/windows/chatwindow.cpp | 2 +- src/utils/chatutils.cpp | 2 +- 11 files changed, 226 insertions(+), 226 deletions(-) create mode 100644 src/gui/widgets/tabs/chat/whispertab.cpp create mode 100644 src/gui/widgets/tabs/chat/whispertab.h delete mode 100644 src/gui/widgets/tabs/whispertab.cpp delete mode 100644 src/gui/widgets/tabs/whispertab.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 820d742ed..f88213bb5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -312,8 +312,8 @@ SET(SRCS gui/widgets/tabs/chat/tradetab.h gui/widgets/vertcontainer.cpp gui/widgets/vertcontainer.h - gui/widgets/tabs/whispertab.cpp - gui/widgets/tabs/whispertab.h + gui/widgets/tabs/chat/whispertab.cpp + gui/widgets/tabs/chat/whispertab.h gui/widgets/widget2.h gui/widgets/widgetgroup.cpp gui/widgets/widgetgroup.h diff --git a/src/Makefile.am b/src/Makefile.am index 72c570377..3693d270e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -434,8 +434,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/tabs/chat/tradetab.h \ gui/widgets/vertcontainer.cpp \ gui/widgets/vertcontainer.h \ - gui/widgets/tabs/whispertab.cpp \ - gui/widgets/tabs/whispertab.h \ + gui/widgets/tabs/chat/whispertab.cpp \ + gui/widgets/tabs/chat/whispertab.h \ gui/widgets/widget2.h \ gui/widgets/widgetgroup.cpp \ gui/widgets/widgetgroup.h \ diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 1f7f77157..d187f8f6c 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -34,7 +34,7 @@ #include "gui/windows/socialwindow.h" #include "gui/windows/outfitwindow.h" -#include "gui/widgets/tabs/whispertab.h" +#include "gui/widgets/tabs/chat/whispertab.h" #include "net/adminhandler.h" #include "net/chathandler.h" diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 48be4c5bc..74bef82b5 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -58,7 +58,7 @@ #include "gui/windows/updaterwindow.h" #include "gui/widgets/tabs/chat/gmtab.h" -#include "gui/widgets/tabs/whispertab.h" +#include "gui/widgets/tabs/chat/whispertab.h" #include "net/beinghandler.h" #include "net/chathandler.h" diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index fd7b2df50..57dd21fca 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -62,9 +62,9 @@ #include "gui/widgets/progressbar.h" #include "gui/widgets/scrollarea.h" #include "gui/widgets/textfield.h" -#include "gui/widgets/tabs/whispertab.h" #include "gui/widgets/tabs/chat/chattab.h" +#include "gui/widgets/tabs/chat/whispertab.h" #include "net/adminhandler.h" #include "net/beinghandler.h" diff --git a/src/gui/widgets/tabs/chat/whispertab.cpp b/src/gui/widgets/tabs/chat/whispertab.cpp new file mode 100644 index 000000000..f7b49dee8 --- /dev/null +++ b/src/gui/widgets/tabs/chat/whispertab.cpp @@ -0,0 +1,143 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gui/widgets/tabs/chat/whispertab.h" + +#include "chatlogger.h" + +#include "being/localplayer.h" + +#include "net/chathandler.h" + +#include "gui/windows/chatwindow.h" + +#include "gui/widgets/windowcontainer.h" + +#include "utils/stringutils.h" + +#include "debug.h" + +WhisperTab::WhisperTab(const Widget2 *const widget, + const std::string &nick) : + ChatTab(widget, nick, ""), + mNick(nick) +{ + setWhisperTabColors(); +} + +WhisperTab::~WhisperTab() +{ + if (chatWindow) + chatWindow->removeWhisper(mNick); +} + +void WhisperTab::handleInput(const std::string &msg) +{ + std::string newMsg; + newMsg = ChatWindow::doReplace(msg); + chatHandler->privateMessage(mNick, newMsg); + + if (localPlayer) + chatLog(localPlayer->getName(), newMsg); + else + chatLog("?", newMsg); +} + +void WhisperTab::handleCommand(const std::string &msg) +{ + if (msg == "close") + { + delete this; + return; + } + + const size_t pos = msg.find(' '); + const std::string type(msg, 0, pos); + const std::string args(msg, pos == std::string::npos + ? msg.size() : pos + 1); + + if (type == "me") + { + std::string str = strprintf("*%s*", args.c_str()); + chatHandler->privateMessage(mNick, str); + if (localPlayer) + chatLog(localPlayer->getName(), str); + else + chatLog("?", str); + } + else + { + ChatTab::handleCommand(msg); + } +} + +bool WhisperTab::handleCommand(const std::string &restrict type, + const std::string &restrict args A_UNUSED) +{ + if (type == "close") + { + if (windowContainer) + windowContainer->scheduleDelete(this); + else + delete this; + if (chatWindow) + chatWindow->defaultTab(); + } + else + { + return false; + } + + return true; +} + +void WhisperTab::saveToLogFile(const std::string &msg) const +{ + if (chatLogger) + chatLogger->log(getNick(), msg); +} + +void WhisperTab::getAutoCompleteList(StringVect &names) const +{ + names.push_back(mNick); +} + +void WhisperTab::setWhisperTabColors() +{ + setTabColor(&getThemeColor(Theme::WHISPER_TAB), + &getThemeColor(Theme::WHISPER_TAB_OUTLINE)); + setHighlightedTabColor(&getThemeColor(Theme::WHISPER_TAB_HIGHLIGHTED), + &getThemeColor(Theme::WHISPER_TAB_HIGHLIGHTED_OUTLINE)); + setSelectedTabColor(&getThemeColor(Theme::WHISPER_TAB_SELECTED), + &getThemeColor(Theme::WHISPER_TAB_SELECTED_OUTLINE)); +} + +void WhisperTab::setWhisperTabOfflineColors() +{ + setTabColor(&getThemeColor(Theme::WHISPER_TAB_OFFLINE), + &getThemeColor(Theme::WHISPER_TAB_OFFLINE_OUTLINE)); + setHighlightedTabColor(&getThemeColor( + Theme::WHISPER_TAB_OFFLINE_HIGHLIGHTED), &getThemeColor( + Theme::WHISPER_TAB_OFFLINE_HIGHLIGHTED_OUTLINE)); + setSelectedTabColor(&getThemeColor(Theme::WHISPER_TAB_OFFLINE_SELECTED), + &getThemeColor(Theme::WHISPER_TAB_OFFLINE_SELECTED_OUTLINE)); +} diff --git a/src/gui/widgets/tabs/chat/whispertab.h b/src/gui/widgets/tabs/chat/whispertab.h new file mode 100644 index 000000000..5817ff8d6 --- /dev/null +++ b/src/gui/widgets/tabs/chat/whispertab.h @@ -0,0 +1,74 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef GUI_WIDGETS_TABS_CHAT_WHISPERTAB_H +#define GUI_WIDGETS_TABS_CHAT_WHISPERTAB_H + +#include "gui/widgets/tabs/chat/chattab.h" +#include "gui/widgets/tabs/chat/chattabtype.h" + +/** + * A tab for whispers from a single player. + */ +class WhisperTab final : public ChatTab +{ + public: + A_DELETE_COPY(WhisperTab) + + const std::string &getNick() const A_WARN_UNUSED + { return mNick; } + + bool handleCommand(const std::string &restrict type, + const std::string &restrict args) override final; + + int getType() const override final A_WARN_UNUSED + { return ChatTabType::WHISPER; } + + void saveToLogFile(const std::string &msg) const override final; + + void setWhisperTabColors(); + + void setWhisperTabOfflineColors(); + + protected: + friend class ChatWindow; + + void getAutoCompleteList(StringVect &names) const override final; + /** + * Constructor. + * + * @param nick the name of the player this tab is whispering to + */ + WhisperTab(const Widget2 *const widget, + const std::string &nick); + + ~WhisperTab(); + + void handleInput(const std::string &msg) override final; + + void handleCommand(const std::string &msg) override final; + + private: + std::string mNick; +}; + +#endif // GUI_WIDGETS_TABS_CHAT_WHISPERTAB_H diff --git a/src/gui/widgets/tabs/whispertab.cpp b/src/gui/widgets/tabs/whispertab.cpp deleted file mode 100644 index 03b90ca18..000000000 --- a/src/gui/widgets/tabs/whispertab.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011-2014 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "gui/widgets/tabs/whispertab.h" - -#include "chatlogger.h" - -#include "being/localplayer.h" - -#include "net/chathandler.h" - -#include "gui/windows/chatwindow.h" - -#include "gui/widgets/windowcontainer.h" - -#include "utils/stringutils.h" - -#include "debug.h" - -WhisperTab::WhisperTab(const Widget2 *const widget, - const std::string &nick) : - ChatTab(widget, nick, ""), - mNick(nick) -{ - setWhisperTabColors(); -} - -WhisperTab::~WhisperTab() -{ - if (chatWindow) - chatWindow->removeWhisper(mNick); -} - -void WhisperTab::handleInput(const std::string &msg) -{ - std::string newMsg; - newMsg = ChatWindow::doReplace(msg); - chatHandler->privateMessage(mNick, newMsg); - - if (localPlayer) - chatLog(localPlayer->getName(), newMsg); - else - chatLog("?", newMsg); -} - -void WhisperTab::handleCommand(const std::string &msg) -{ - if (msg == "close") - { - delete this; - return; - } - - const size_t pos = msg.find(' '); - const std::string type(msg, 0, pos); - const std::string args(msg, pos == std::string::npos - ? msg.size() : pos + 1); - - if (type == "me") - { - std::string str = strprintf("*%s*", args.c_str()); - chatHandler->privateMessage(mNick, str); - if (localPlayer) - chatLog(localPlayer->getName(), str); - else - chatLog("?", str); - } - else - { - ChatTab::handleCommand(msg); - } -} - -bool WhisperTab::handleCommand(const std::string &restrict type, - const std::string &restrict args A_UNUSED) -{ - if (type == "close") - { - if (windowContainer) - windowContainer->scheduleDelete(this); - else - delete this; - if (chatWindow) - chatWindow->defaultTab(); - } - else - { - return false; - } - - return true; -} - -void WhisperTab::saveToLogFile(const std::string &msg) const -{ - if (chatLogger) - chatLogger->log(getNick(), msg); -} - -void WhisperTab::getAutoCompleteList(StringVect &names) const -{ - names.push_back(mNick); -} - -void WhisperTab::setWhisperTabColors() -{ - setTabColor(&getThemeColor(Theme::WHISPER_TAB), - &getThemeColor(Theme::WHISPER_TAB_OUTLINE)); - setHighlightedTabColor(&getThemeColor(Theme::WHISPER_TAB_HIGHLIGHTED), - &getThemeColor(Theme::WHISPER_TAB_HIGHLIGHTED_OUTLINE)); - setSelectedTabColor(&getThemeColor(Theme::WHISPER_TAB_SELECTED), - &getThemeColor(Theme::WHISPER_TAB_SELECTED_OUTLINE)); -} - -void WhisperTab::setWhisperTabOfflineColors() -{ - setTabColor(&getThemeColor(Theme::WHISPER_TAB_OFFLINE), - &getThemeColor(Theme::WHISPER_TAB_OFFLINE_OUTLINE)); - setHighlightedTabColor(&getThemeColor( - Theme::WHISPER_TAB_OFFLINE_HIGHLIGHTED), &getThemeColor( - Theme::WHISPER_TAB_OFFLINE_HIGHLIGHTED_OUTLINE)); - setSelectedTabColor(&getThemeColor(Theme::WHISPER_TAB_OFFLINE_SELECTED), - &getThemeColor(Theme::WHISPER_TAB_OFFLINE_SELECTED_OUTLINE)); -} diff --git a/src/gui/widgets/tabs/whispertab.h b/src/gui/widgets/tabs/whispertab.h deleted file mode 100644 index 57c215dd9..000000000 --- a/src/gui/widgets/tabs/whispertab.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011-2014 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef GUI_WIDGETS_TABS_WHISPERTAB_H -#define GUI_WIDGETS_TABS_WHISPERTAB_H - -#include "gui/widgets/tabs/chat/chattab.h" -#include "gui/widgets/tabs/chat/chattabtype.h" - -/** - * A tab for whispers from a single player. - */ -class WhisperTab final : public ChatTab -{ - public: - A_DELETE_COPY(WhisperTab) - - const std::string &getNick() const A_WARN_UNUSED - { return mNick; } - - bool handleCommand(const std::string &restrict type, - const std::string &restrict args) override final; - - int getType() const override final A_WARN_UNUSED - { return ChatTabType::WHISPER; } - - void saveToLogFile(const std::string &msg) const override final; - - void setWhisperTabColors(); - - void setWhisperTabOfflineColors(); - - protected: - friend class ChatWindow; - - void getAutoCompleteList(StringVect &names) const override final; - /** - * Constructor. - * - * @param nick the name of the player this tab is whispering to - */ - WhisperTab(const Widget2 *const widget, - const std::string &nick); - - ~WhisperTab(); - - void handleInput(const std::string &msg) override final; - - void handleCommand(const std::string &msg) override final; - - private: - std::string mNick; -}; - -#endif // GUI_WIDGETS_TABS_WHISPERTAB_H diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index a990d67df..a6a96be5b 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -62,7 +62,7 @@ #include "gui/widgets/tabs/chat/langtab.h" #include "gui/widgets/tabs/chat/tradetab.h" -#include "gui/widgets/tabs/whispertab.h" +#include "gui/widgets/tabs/chat/whispertab.h" #include "render/opengldebug.h" diff --git a/src/utils/chatutils.cpp b/src/utils/chatutils.cpp index d03cdd764..60a5329b1 100644 --- a/src/utils/chatutils.cpp +++ b/src/utils/chatutils.cpp @@ -29,7 +29,7 @@ #include "gui/chatconsts.h" -#include "gui/widgets/tabs/whispertab.h" +#include "gui/widgets/tabs/chat/whispertab.h" #include "net/chathandler.h" #include "net/guildhandler.h" -- cgit v1.2.3-60-g2f50