diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-03-26 21:35:58 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-03-26 21:35:58 -0600 |
commit | 2d5d31406ab057abd9417d13ab808f6823b2860b (patch) | |
tree | 363b70f23aa89e3f765e81b9b430924385626f9e /src/gui/widgets | |
parent | bf6f383e82add4634c8c091216093596b4587f0d (diff) | |
download | mana-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.h | 2 | ||||
-rw-r--r-- | src/gui/widgets/whispertab.cpp | 77 | ||||
-rw-r--r-- | src/gui/widgets/whispertab.h | 54 |
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 |