summaryrefslogtreecommitdiff
path: root/src/gui/windows/socialwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/socialwindow.cpp')
-rw-r--r--src/gui/windows/socialwindow.cpp141
1 files changed, 1 insertions, 140 deletions
diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp
index eb16cddf8..487bbcc2e 100644
--- a/src/gui/windows/socialwindow.cpp
+++ b/src/gui/windows/socialwindow.cpp
@@ -55,7 +55,7 @@
#include "gui/widgets/tabbedarea.h"
#include "gui/widgets/tabs/chattab.h"
-#include "gui/widgets/tabs/socialtab.h"
+#include "gui/widgets/tabs/socialguildtab.h"
#include "net/net.h"
#include "net/guildhandler.h"
@@ -95,145 +95,6 @@ namespace
} friendSorter;
} // namespace
-class SocialGuildTab final : public SocialTab, public ActionListener
-{
-public:
- SocialGuildTab(const Widget2 *const widget,
- Guild *const guild,
- const bool showBackground) :
- SocialTab(widget),
- ActionListener(),
- mGuild(guild)
- {
- // TRANSLATORS: tab in social window
- setCaption(_("Guild"));
-
- setTabColor(&getThemeColor(Theme::GUILD_SOCIAL_TAB),
- &getThemeColor(Theme::GUILD_SOCIAL_TAB_OUTLINE));
- setHighlightedTabColor(&getThemeColor(
- Theme::GUILD_SOCIAL_TAB_HIGHLIGHTED), &getThemeColor(
- Theme::GUILD_SOCIAL_TAB_HIGHLIGHTED_OUTLINE));
- setSelectedTabColor(&getThemeColor(Theme::GUILD_SOCIAL_TAB_SELECTED),
- &getThemeColor(Theme::GUILD_SOCIAL_TAB_SELECTED_OUTLINE));
-
- mList = new AvatarListBox(this, guild);
- mList->postInit();
- mScroll = new ScrollArea(this, mList, showBackground,
- "social_background.xml");
-
- mScroll->setHorizontalScrollPolicy(ScrollArea::SHOW_AUTO);
- mScroll->setVerticalScrollPolicy(ScrollArea::SHOW_ALWAYS);
- }
-
- A_DELETE_COPY(SocialGuildTab)
-
- ~SocialGuildTab()
- {
- delete2(mList)
- delete2(mScroll)
- }
-
- void action(const ActionEvent &event) override final
- {
- const std::string &eventId = event.getId();
- if (eventId == "do invite")
- {
- const std::string name = mInviteDialog->getText();
- Net::getGuildHandler()->invite(mGuild->getId(), name);
-
- if (localChatTab)
- {
- localChatTab->chatLog(strprintf(
- // TRANSLATORS: chat message
- _("Invited user %s to guild %s."),
- name.c_str(), mGuild->getName().c_str()), ChatMsgType::BY_SERVER);
- }
- mInviteDialog = nullptr;
- }
- else if (eventId == "~do invite")
- {
- mInviteDialog = nullptr;
- }
- else if (eventId == "yes")
- {
- Net::getGuildHandler()->leave(mGuild->getId());
- if (localChatTab)
- {
- // TRANSLATORS: chat message
- localChatTab->chatLog(strprintf(_("Guild %s quit requested."),
- mGuild->getName().c_str()), ChatMsgType::BY_SERVER);
- }
- mConfirmDialog = nullptr;
- }
- else if (eventId == "~yes")
- {
- mConfirmDialog = nullptr;
- }
- }
-
- void invite() override final
- {
- // TRANSLATORS: guild invite message
- mInviteDialog = new TextDialog(_("Member Invite to Guild"),
- // TRANSLATORS: guild invite message
- strprintf(_("Who would you like to invite to guild %s?"),
- mGuild->getName().c_str()), socialWindow);
- mInviteDialog->postInit();
- mInviteDialog->setActionEventId("do invite");
- mInviteDialog->addActionListener(this);
- }
-
- void leave() override final
- {
- // TRANSLATORS: guild leave message
- mConfirmDialog = new ConfirmDialog(_("Leave Guild?"),
- // TRANSLATORS: guild leave message
- strprintf(_("Are you sure you want to leave guild %s?"),
- mGuild->getName().c_str()), SOUND_REQUEST, socialWindow);
- mConfirmDialog->postInit();
- mConfirmDialog->addActionListener(this);
- }
-
- void buildCounter(const int online0, const int total0)
- {
- if (online0 || total0)
- {
- // TRANSLATORS: social window label
- mCounterString = strprintf(_("Members: %u/%u"),
- static_cast<uint32_t>(online0),
- static_cast<uint32_t>(total0));
- }
- else
- {
- if (!player_node)
- return;
-
- const Guild *const guild = player_node->getGuild();
- if (!guild)
- return;
-
- const Guild::MemberList *const members = guild->getMembers();
- int online = 0;
- int total = 0;
- FOR_EACHP (Guild::MemberList::const_iterator, it, members)
- {
- if ((*it)->getOnline())
- online ++;
- total ++;
- }
-
- // TRANSLATORS: social window label
- mCounterString = strprintf(_("Players: %u/%u"),
- static_cast<uint32_t>(online),
- static_cast<uint32_t>(total));
- }
- updateCounter();
- }
-
-private:
- Guild *mGuild;
-};
-
class SocialGuildTab2 final : public SocialTab, public ActionListener
{
public: