diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/theme.cpp | 6 | ||||
-rw-r--r-- | src/gui/theme.h | 6 | ||||
-rw-r--r-- | src/gui/widgets/tabs/chat/channeltab.cpp | 50 | ||||
-rw-r--r-- | src/gui/widgets/tabs/chat/channeltab.h | 46 | ||||
-rw-r--r-- | src/gui/widgets/tabs/chat/chattabtype.h | 3 |
5 files changed, 110 insertions, 1 deletions
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index e52e80ed0..1428519af 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -681,6 +681,8 @@ static int readColorType(const std::string &type) "WINDOW_OUTLINE", "BATTLE_CHAT_TAB", "BATTLE_CHAT_TAB_OUTLINE", + "CHANNEL_CHAT_TAB", + "CHANNEL_CHAT_TAB_OUTLINE", "PARTY_CHAT_TAB", "PARTY_CHAT_TAB_OUTLINE", "PARTY_SOCIAL_TAB", @@ -693,6 +695,8 @@ static int readColorType(const std::string &type) "GM_CHAT_TAB_OUTLINE", "BATTLE_CHAT_TAB_HIGHLIGHTED", "BATTLE_CHAT_TAB_HIGHLIGHTED_OUTLINE", + "CHANNEL_CHAT_TAB_HIGHLIGHTED", + "CHANNEL_CHAT_TAB_HIGHLIGHTED_OUTLINE", "PARTY_CHAT_TAB_HIGHLIGHTED", "PARTY_CHAT_TAB_HIGHLIGHTED_OUTLINE", "PARTY_SOCIAL_TAB_HIGHLIGHTED", @@ -705,6 +709,8 @@ static int readColorType(const std::string &type) "GM_CHAT_TAB_HIGHLIGHTED_OUTLINE", "BATTLE_CHAT_TAB_SELECTED", "BATTLE_CHAT_TAB_SELECTED_OUTLINE", + "CHANNEL_CHAT_TAB_SELECTED", + "CHANNEL_CHAT_TAB_SELECTED_OUTLINE", "PARTY_CHAT_TAB_SELECTED", "PARTY_CHAT_TAB_SELECTED_OUTLINE", "PARTY_SOCIAL_TAB_SELECTED", diff --git a/src/gui/theme.h b/src/gui/theme.h index 6e63e05e6..5e65b3444 100644 --- a/src/gui/theme.h +++ b/src/gui/theme.h @@ -141,6 +141,8 @@ class Theme final : public Palette, WINDOW_OUTLINE, BATTLE_CHAT_TAB, BATTLE_CHAT_TAB_OUTLINE, + CHANNEL_CHAT_TAB, + CHANNEL_CHAT_TAB_OUTLINE, PARTY_CHAT_TAB, PARTY_CHAT_TAB_OUTLINE, PARTY_SOCIAL_TAB, @@ -153,6 +155,8 @@ class Theme final : public Palette, GM_CHAT_TAB_OUTLINE, BATTLE_CHAT_TAB_HIGHLIGHTED, BATTLE_CHAT_TAB_HIGHLIGHTED_OUTLINE, + CHANNEL_CHAT_TAB_HIGHLIGHTED, + CHANNEL_CHAT_TAB_HIGHLIGHTED_OUTLINE, PARTY_CHAT_TAB_HIGHLIGHTED, PARTY_CHAT_TAB_HIGHLIGHTED_OUTLINE, PARTY_SOCIAL_TAB_HIGHLIGHTED, @@ -165,6 +169,8 @@ class Theme final : public Palette, GM_CHAT_TAB_HIGHLIGHTED_OUTLINE, BATTLE_CHAT_TAB_SELECTED, BATTLE_CHAT_TAB_SELECTED_OUTLINE, + CHANNEL_CHAT_TAB_SELECTED, + CHANNEL_CHAT_TAB_SELECTED_OUTLINE, PARTY_CHAT_TAB_SELECTED, PARTY_CHAT_TAB_SELECTED_OUTLINE, PARTY_SOCIAL_TAB_SELECTED, diff --git a/src/gui/widgets/tabs/chat/channeltab.cpp b/src/gui/widgets/tabs/chat/channeltab.cpp new file mode 100644 index 000000000..f4b26f4bc --- /dev/null +++ b/src/gui/widgets/tabs/chat/channeltab.cpp @@ -0,0 +1,50 @@ +/* + * The ManaPlus Client + * Copyright (C) 2008-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 <http://www.gnu.org/licenses/>. + */ + +#include "gui/widgets/tabs/chat/channeltab.h" + +#include "chatlogger.h" +#include "configuration.h" + +#include "gui/windows/chatwindow.h" + +#include "net/chathandler.h" + +#include "debug.h" + +ChannelTab::ChannelTab(const Widget2 *const widget, + const std::string &channel) : + ChatTab(widget, channel, channel, channel, ChatTabType::CHANNEL) +{ + setTabColors(Theme::CHANNEL_CHAT_TAB); +} + +ChannelTab::~ChannelTab() +{ +} + +void ChannelTab::handleInput(const std::string &msg) +{ + std::string newMsg; + newMsg = ChatWindow::doReplace(msg); + chatHandler->privateMessage(mChannelName, newMsg); +} diff --git a/src/gui/widgets/tabs/chat/channeltab.h b/src/gui/widgets/tabs/chat/channeltab.h new file mode 100644 index 000000000..4ca3d9379 --- /dev/null +++ b/src/gui/widgets/tabs/chat/channeltab.h @@ -0,0 +1,46 @@ +/* + * 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 <http://www.gnu.org/licenses/>. + */ + +#ifndef GUI_WIDGETS_TABS_CHAT_CHANNELTAB_H +#define GUI_WIDGETS_TABS_CHAT_CHANNELTAB_H + +#include "gui/widgets/tabs/chat/chattab.h" +#include "gui/widgets/tabs/chat/chattabtype.h" + +/** + * A tab for a chat channel. + */ +class ChannelTab final : public ChatTab +{ + public: + ChannelTab(const Widget2 *const widget, + const std::string &channel); + + A_DELETE_COPY(ChannelTab) + + ~ChannelTab(); + + protected: + void handleInput(const std::string &msg) override final; +}; + +#endif // GUI_WIDGETS_TABS_CHAT_CHANNELTAB_H diff --git a/src/gui/widgets/tabs/chat/chattabtype.h b/src/gui/widgets/tabs/chat/chattabtype.h index 4b0af6423..75c2f29eb 100644 --- a/src/gui/widgets/tabs/chat/chattabtype.h +++ b/src/gui/widgets/tabs/chat/chattabtype.h @@ -34,7 +34,8 @@ namespace ChatTabType TRADE, BATTLE, LANG, - GM + GM, + CHANNEL }; } // namespace ChatTabType |