summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-10-12 14:39:39 +0300
committerAndrei Karas <akaras@inbox.ru>2014-10-12 14:39:39 +0300
commita9c39ea2e28e47118f58a040c4eb949b84bf9e20 (patch)
treeb14a45632d14d8293422fc4707e8a3fd451b6f18 /src/net/ea
parentc9d8a97059e24d24011870fae89199e1cb44e5ef (diff)
downloadmv-a9c39ea2e28e47118f58a040c4eb949b84bf9e20.tar.gz
mv-a9c39ea2e28e47118f58a040c4eb949b84bf9e20.tar.bz2
mv-a9c39ea2e28e47118f58a040c4eb949b84bf9e20.tar.xz
mv-a9c39ea2e28e47118f58a040c4eb949b84bf9e20.zip
Move PartyTab from net namespace into gui.
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/gui/partytab.cpp251
-rw-r--r--src/net/ea/gui/partytab.h69
-rw-r--r--src/net/ea/partyhandler.cpp13
-rw-r--r--src/net/ea/partyhandler.h6
4 files changed, 10 insertions, 329 deletions
diff --git a/src/net/ea/gui/partytab.cpp b/src/net/ea/gui/partytab.cpp
deleted file mode 100644
index 183863f25..000000000
--- a/src/net/ea/gui/partytab.cpp
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * 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 "net/ea/gui/partytab.h"
-
-#include "chatlogger.h"
-#include "configuration.h"
-#include "party.h"
-#include "soundconsts.h"
-#include "soundmanager.h"
-
-#include "being/localplayer.h"
-
-#include "net/partyhandler.h"
-#include "net/serverfeatures.h"
-
-#include "gui/windows/chatwindow.h"
-
-#include "utils/booleanoptions.h"
-
-#include "debug.h"
-
-namespace Ea
-{
-
-PartyTab::PartyTab(const Widget2 *const widget) :
- // TRANSLATORS: party chat tab name
- ChatTab(widget, _("Party"), "")
-{
- setTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB),
- &getThemeColor(Theme::PARTY_CHAT_TAB_OUTLINE));
- setHighlightedTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB_HIGHLIGHTED),
- &getThemeColor(Theme::PARTY_CHAT_TAB_HIGHLIGHTED_OUTLINE));
- setSelectedTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB_SELECTED),
- &getThemeColor(Theme::PARTY_CHAT_TAB_SELECTED_OUTLINE));
-
- mShowOnline = config.getBoolValue("showPartyOnline");
- config.addListener("showPartyOnline", this);
-}
-
-PartyTab::~PartyTab()
-{
- config.removeListeners(this);
- CHECKLISTENERS
-}
-
-void PartyTab::handleInput(const std::string &msg)
-{
- partyHandler->chat(ChatWindow::doReplace(msg));
-}
-
-bool PartyTab::handleCommand(const std::string &restrict type,
- const std::string &restrict args)
-{
- if (type == "create" || type == "new")
- {
- if (args.empty())
- {
- // TRANSLATORS: chat error message
- chatLog(_("Party name is missing."), ChatMsgType::BY_SERVER);
- }
- else
- {
- partyHandler->create(args);
- }
- }
- else if (type == "invite")
- {
- partyHandler->invite(args);
- }
- else if (type == "leave")
- {
- partyHandler->leave();
- }
- else if (type == "kick")
- {
- partyHandler->kick(args);
- }
- else if (type == "item")
- {
- if (args.empty())
- {
- switch (partyHandler->getShareItems())
- {
- case Net::PartyShare::YES:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing enabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NO:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing disabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NOT_POSSIBLE:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing not possible."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::UNKNOWN:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing unknown."),
- ChatMsgType::BY_SERVER);
- return true;
- default:
- break;
- }
- }
-
- const signed char opt = parseBoolean(args);
-
- switch (opt)
- {
- case 1:
- partyHandler->setShareItems(
- Net::PartyShare::YES);
- break;
- case 0:
- partyHandler->setShareItems(
- Net::PartyShare::NO);
- break;
- case -1:
- chatLog(strprintf(BOOLEAN_OPTIONS, "item"));
- break;
- default:
- break;
- }
- }
- else if (type == "exp")
- {
- if (args.empty())
- {
- switch (partyHandler->getShareExperience())
- {
- case Net::PartyShare::YES:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing enabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NO:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing disabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NOT_POSSIBLE:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing not possible."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::UNKNOWN:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing unknown."),
- ChatMsgType::BY_SERVER);
- return true;
- default:
- break;
- }
- }
-
- const signed char opt = parseBoolean(args);
-
- switch (opt)
- {
- case 1:
- partyHandler->setShareExperience(
- Net::PartyShare::YES);
- break;
- case 0:
- partyHandler->setShareExperience(
- Net::PartyShare::NO);
- break;
- case -1:
- chatLog(strprintf(BOOLEAN_OPTIONS, "exp"));
- break;
- default:
- break;
- }
- }
- else if (type == "setleader"
- && serverFeatures->haveChangePartyLeader())
- {
- partyHandler->changeLeader(args);
- }
- else
- {
- return false;
- }
-
- return true;
-}
-
-void PartyTab::getAutoCompleteList(StringVect &names) const
-{
- if (!localPlayer)
- return;
-
- const Party *const p = localPlayer->getParty();
-
- if (p)
- p->getNames(names);
-}
-
-void PartyTab::getAutoCompleteCommands(StringVect &names) const
-{
- names.push_back("/help");
- names.push_back("/invite ");
- names.push_back("/leave");
- names.push_back("/kick ");
- names.push_back("/item");
- names.push_back("/exp");
- if (serverFeatures->haveChangePartyLeader())
- names.push_back("/setleader ");
-}
-
-void PartyTab::saveToLogFile(const std::string &msg) const
-{
- if (chatLogger)
- chatLogger->log("#Party", msg);
-}
-
-void PartyTab::playNewMessageSound() const
-{
- soundManager.playGuiSound(SOUND_GUILD);
-}
-
-void PartyTab::optionChanged(const std::string &value)
-{
- if (value == "showPartyOnline")
- mShowOnline = config.getBoolValue("showPartyOnline");
-}
-
-} // namespace Ea
diff --git a/src/net/ea/gui/partytab.h b/src/net/ea/gui/partytab.h
deleted file mode 100644
index e627ab842..000000000
--- a/src/net/ea/gui/partytab.h
+++ /dev/null
@@ -1,69 +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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NET_EA_GUI_PARTYTAB_H
-#define NET_EA_GUI_PARTYTAB_H
-
-#include "gui/widgets/tabs/chat/chattab.h"
-#include "gui/widgets/tabs/chat/chattabtype.h"
-
-namespace Ea
-{
-
-/**
- * A tab for a party chat channel.
- */
-class PartyTab notfinal : public ChatTab,
- public ConfigListener
-{
- public:
- explicit PartyTab(const Widget2 *const widget);
-
- A_DELETE_COPY(PartyTab)
-
- virtual ~PartyTab();
-
- bool handleCommand(const std::string &restrict type,
- const std::string &restrict args) override final;
-
- int getType() const override final A_WARN_UNUSED
- { return ChatTabType::PARTY; }
-
- void saveToLogFile(const std::string &msg) const override final;
-
- void playNewMessageSound() const override final;
-
- void optionChanged(const std::string &value);
-
- protected:
- void handleInput(const std::string &msg) override final;
-
- void getAutoCompleteList(StringVect&) const override final;
-
- void getAutoCompleteCommands(StringVect &names) const override final;
-};
-
-extern PartyTab *partyTab;
-
-} // namespace Ea
-
-#endif // NET_EA_GUI_PARTYTAB_H
diff --git a/src/net/ea/partyhandler.cpp b/src/net/ea/partyhandler.cpp
index 0258bd2c6..bc72a0043 100644
--- a/src/net/ea/partyhandler.cpp
+++ b/src/net/ea/partyhandler.cpp
@@ -33,7 +33,7 @@
#include "net/messagein.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "utils/delete2.h"
@@ -41,10 +41,11 @@
#include "debug.h"
+PartyTab *partyTab = nullptr;
+
namespace Ea
{
-PartyTab *partyTab = nullptr;
Party *taParty = nullptr;
PartyHandler::PartyHandler() :
@@ -168,7 +169,7 @@ void PartyHandler::processPartyMove(Net::MessageIn &msg) const
m->setY(msg.readInt16()); // y
const bool online = msg.readUInt8() != 0;
if (m->getOnline() != online)
- Ea::partyTab->showOnline(m->getName(), online);
+ partyTab->showOnline(m->getName(), online);
m->setOnline(online); // online (if 0)
msg.readString(24); // party
msg.readString(24); // nick
@@ -225,7 +226,7 @@ void PartyHandler::processPartyLeave(Net::MessageIn &msg) const
Ea::taParty->clearMembers();
}
- delete2(Ea::partyTab)
+ delete2(partyTab)
if (socialWindow && Ea::taParty)
socialWindow->removeTab(Ea::taParty);
@@ -318,9 +319,9 @@ ChatTab *PartyHandler::getTab() const
void PartyHandler::createTab() const
{
- Ea::partyTab = new Ea::PartyTab(chatWindow);
+ partyTab = new PartyTab(chatWindow);
if (config.getBoolValue("showChatHistory"))
- Ea::partyTab->loadFromLogFile("#Party");
+ partyTab->loadFromLogFile("#Party");
}
} // namespace Ea
diff --git a/src/net/ea/partyhandler.h b/src/net/ea/partyhandler.h
index 82db2179b..b595891c4 100644
--- a/src/net/ea/partyhandler.h
+++ b/src/net/ea/partyhandler.h
@@ -25,6 +25,7 @@
#include "net/partyhandler.h"
class Party;
+class PartyTab;
namespace Net
{
@@ -33,8 +34,6 @@ namespace Net
namespace Ea
{
-class PartyTab;
-
class PartyHandler notfinal : public Net::PartyHandler
{
public:
@@ -82,9 +81,10 @@ class PartyHandler notfinal : public Net::PartyHandler
Net::PartyShare::Type mShareItems;
};
-extern PartyTab *partyTab;
extern Party *taParty;
} // namespace Ea
+extern PartyTab *partyTab;
+
#endif // NET_EA_PARTYHANDLER_H