summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-03-26 21:35:58 -0600
committerJared Adams <jaxad0127@gmail.com>2009-03-26 21:35:58 -0600
commit2d5d31406ab057abd9417d13ab808f6823b2860b (patch)
tree363b70f23aa89e3f765e81b9b430924385626f9e /src/gui/widgets
parentbf6f383e82add4634c8c091216093596b4587f0d (diff)
downloadmana-client-2d5d31406ab057abd9417d13ab808f6823b2860b.tar.gz
mana-client-2d5d31406ab057abd9417d13ab808f6823b2860b.tar.bz2
mana-client-2d5d31406ab057abd9417d13ab808f6823b2860b.tar.xz
mana-client-2d5d31406ab057abd9417d13ab808f6823b2860b.zip
Add WhisperTabs
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/chattab.h2
-rw-r--r--src/gui/widgets/whispertab.cpp77
-rw-r--r--src/gui/widgets/whispertab.h54
3 files changed, 132 insertions, 1 deletions
diff --git a/src/gui/widgets/chattab.h b/src/gui/widgets/chattab.h
index d102d7a0..9e2aff6b 100644
--- a/src/gui/widgets/chattab.h
+++ b/src/gui/widgets/chattab.h
@@ -90,7 +90,7 @@ class ChatTab : public Tab
protected:
friend class ChatWindow;
- void sendChat(std::string &msg);
+ virtual void sendChat(std::string &msg);
ScrollArea *mScrollArea;
BrowserBox *mTextOutput;
diff --git a/src/gui/widgets/whispertab.cpp b/src/gui/widgets/whispertab.cpp
new file mode 100644
index 00000000..b67b74f8
--- /dev/null
+++ b/src/gui/widgets/whispertab.cpp
@@ -0,0 +1,77 @@
+/*
+ * The Mana World
+ * Copyright (C) 2008 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <guichan/widgets/label.hpp>
+
+#include "whispertab.h"
+
+#include "../../beingmanager.h"
+#include "../../commandhandler.h"
+#include "../../channel.h"
+#include "../../configuration.h"
+#include "../../game.h"
+#include "../../localplayer.h"
+
+#ifdef TMWSERV_SUPPORT
+#include "../../net/tmwserv/chatserver/chatserver.h"
+#include "../../net/tmwserv/gameserver/player.h"
+#else
+#include "../../party.h"
+#include "../../net/messageout.h"
+#include "../../net/ea/protocol.h"
+#endif
+
+#include "../../resources/iteminfo.h"
+#include "../../resources/itemdb.h"
+
+#include "../../utils/dtor.h"
+#include "../../utils/gettext.h"
+#include "../../utils/strprintf.h"
+#include "../../utils/stringutils.h"
+
+WhisperTab::WhisperTab(std::string nick) : ChatTab(nick),
+ mNick(nick)
+{
+}
+
+WhisperTab::~WhisperTab()
+{
+}
+
+void WhisperTab::sendChat(std::string &msg) {
+ if (msg.length() == 0) {
+ chatLog(_("Cannot send empty chat!"), BY_SERVER, false);
+ return;
+ }
+
+#ifdef TMWSERV_SUPPORT
+ Net::ChatServer::privMsg(mNick, msg);
+#else
+ MessageOut outMsg(chatWindow->mNetwork);
+ outMsg.writeInt16(CMSG_CHAT_WHISPER);
+ outMsg.writeInt16(msg.length() + 28);
+ outMsg.writeString(mNick, 24);
+ outMsg.writeString(msg, msg.length());
+#endif
+
+ chatLog(strprintf(_("%s: %s"), player_node->getName().c_str(),
+ msg.c_str()), BY_PLAYER, false);
+}
diff --git a/src/gui/widgets/whispertab.h b/src/gui/widgets/whispertab.h
new file mode 100644
index 00000000..66ec2720
--- /dev/null
+++ b/src/gui/widgets/whispertab.h
@@ -0,0 +1,54 @@
+/*
+ * The Mana World
+ * Copyright (C) 2009 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef WHISPERTAB_H
+#define WHISPERTAB_H
+
+#include "chattab.h"
+
+class Channel;
+
+/**
+ * A tab for whispers from a single nick.
+ */
+class WhisperTab : public ChatTab
+{
+ public:
+ /**
+ * Constructor.
+ */
+ WhisperTab(std::string nick);
+
+ /**
+ * Destructor.
+ */
+ ~WhisperTab();
+
+ std::string getNick() { return mNick; }
+
+ protected:
+ void sendChat(std::string &msg);
+
+ private:
+ std::string mNick;
+};
+
+#endif // CHANNELTAB_H