diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-04-04 04:03:47 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-04-04 04:03:47 +0300 |
commit | fc1de272d5e3d9f5666ecd792d770b63dce7d8e4 (patch) | |
tree | 182ad496d842037b4fda7a8be70f4863a2eaa2ca /src/gui/chat.h | |
parent | d18b9616bbe54db5d33363a197c8b9efa6161fa8 (diff) | |
download | mv-fc1de272d5e3d9f5666ecd792d770b63dce7d8e4.tar.gz mv-fc1de272d5e3d9f5666ecd792d770b63dce7d8e4.tar.bz2 mv-fc1de272d5e3d9f5666ecd792d770b63dce7d8e4.tar.xz mv-fc1de272d5e3d9f5666ecd792d770b63dce7d8e4.zip |
Rename some gui class files to real class names.
Diffstat (limited to 'src/gui/chat.h')
-rw-r--r-- | src/gui/chat.h | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/src/gui/chat.h b/src/gui/chat.h deleted file mode 100644 index 58405405d..000000000 --- a/src/gui/chat.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011 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 CHAT_H -#define CHAT_H - -#include "listener.h" - -#include "gui/widgets/window.h" - -#include <guichan/actionlistener.hpp> -#include <guichan/keylistener.hpp> -#include <guichan/widget.hpp> -#include <guichan/widgetlistener.hpp> - -#include <list> -#include <string> -#include <map> -#include <vector> -#include <set> - -#ifdef __GNUC__ -#define _UNUSED_ __attribute__ ((unused)) -#else -#define _UNUSED_ -#endif - -class BrowserBox; -class ChatTab; -class Channel; -class ChatInput; -class ColorListModel; -class ScrollArea; -class TabbedArea; -class ItemLinkHandler; -class Tab; -class WhisperTab; - -#define DEFAULT_CHAT_WINDOW_SCROLL 7 // 1 means `1/8th of the window size'. - -enum Own -{ - BY_GM = 0, - BY_PLAYER, - BY_OTHER, - BY_SERVER, - BY_CHANNEL, - ACT_WHISPER, // getting whispered at - ACT_IS, // equivalent to "/me" on IRC - BY_LOGGER, - BY_UNKNOWN = -1 -}; - -/** One item in the chat log */ -struct CHATLOG -{ - std::string nick; - std::string text; - Own own; -}; - -/** - * The chat window. - * - * \ingroup Interface - */ -class ChatWindow : public Window, - public gcn::ActionListener, - public gcn::KeyListener, - public Mana::Listener -{ - public: - /** - * Constructor. - */ - ChatWindow(); - - /** - * Destructor: used to write back values to the config file - */ - ~ChatWindow(); - - /** - * Reset the chat window to default positions. - */ - void resetToDefaultSize(); - - /** - * Gets the focused tab. - */ - ChatTab *getFocused() const; - - /** - * Clear the given tab. - */ - void clearTab(ChatTab *tab); - - /** - * Clear the current tab. - */ - void clearTab(); - - /** - * Switch to the previous tab in order - */ - void prevTab(); - - /** - * Switch to the next tab in order - */ - void nextTab(); - - /** - * Switch to the default tab - */ - void defaultTab(); - - /** - * Performs action. - */ - void action(const gcn::ActionEvent &event); - - /** - * Request focus for typing chat message. - * - * \returns true if the input was shown - * false otherwise - */ - bool requestChatFocus(); - - /** - * Checks whether ChatWindow is Focused or not. - */ - bool isInputFocused() const; - - /** - * Passes the text to the current tab as input - * - * @param msg The message text which is to be sent. - */ - void chatInput(const std::string &msg); - - /** - * Passes the text to the local chat tab as input - * - * @param msg The message text which is to be sent. - */ - void localChatInput(const std::string &msg); - - /** Called when key is pressed */ - void keyPressed(gcn::KeyEvent &event); - - /** Set the chat input as the given text. */ - void setInputText(const std::string &text); - - /** Add the given text to the chat input. */ - void addInputText(const std::string &text, bool space = true); - - /** Called to add item to chat */ - void addItemText(const std::string &item); - - /** Override to reset mTmpVisible */ - void setVisible(bool visible); - - /** - * Handles mouse when dragged. - */ - void mouseDragged(gcn::MouseEvent &event); - - /** - * Handles mouse when pressed. - */ - void mousePressed(gcn::MouseEvent &event); - - void event(Channels channel, const Mana::Event &event); - - /** - * Scrolls the chat window - * - * @param amount direction and amount to scroll. Negative numbers scroll - * up, positive numbers scroll down. The absolute amount indicates the - * amount of 1/8ths of chat window real estate that should be scrolled. - */ - void scroll(int amount); - - /** - * Sets the file being recorded to - * - * @param msg The file to write out to. If null, then stop recording. - */ - void setRecordingFile(const std::string &msg); - - bool getReturnTogglesChat() const - { return mReturnToggles; } - - void setReturnTogglesChat(bool toggles) - { mReturnToggles = toggles; } - - void doPresent(); - - void whisper(const std::string &nick, const std::string &mes, - Own own = BY_OTHER); - - ChatTab *addWhisperTab(const std::string &nick, bool switchTo = false); - - ChatTab *getWhisperTab(const std::string &nick) const; - - void removeAllWhispers(); - - void ignoreAllWhispers(); - - void resortChatLog(std::string line, Own own = BY_UNKNOWN, - bool ignoreRecord = false, - bool tryRemoveColors = true); - - void battleChatLog(std::string line, Own own = BY_UNKNOWN, - bool ignoreRecord = false, - bool tryRemoveColors = true); - - void updateOnline(std::set<std::string> &onlinePlayers); - - void loadState(); - - void saveState(); - - std::string doReplace(const std::string &msg); - - protected: - friend class ChatTab; - friend class WhisperTab; - friend class PopupMenu; - - /** Remove the given tab from the window */ - void removeTab(ChatTab *tab); - - /** Add the tab to the window */ - void addTab(ChatTab *tab); - - void removeWhisper(const std::string &nick); - - void adjustTabSize(); - - void autoComplete(); - - std::string addColors(std::string &msg); - - std::string autoCompleteHistory(std::string partName); - - std::string autoCompleteCommands(std::string partName); - - std::string autoComplete(std::vector<std::string> &names, - std::string partName) const; - - /** Used for showing item popup on clicking links **/ - ItemLinkHandler *mItemLinkHandler; - - /** Input box for typing chat messages. */ - ChatInput *mChatInput; - - void widgetResized(const gcn::Event &event); - - void initTradeFilter(); - - int mRainbowColor; - - private: - void fillCommands(); - - bool mTmpVisible; - - /** Tabbed area for holding each channel. */ - TabbedArea *mChatTabs; - - typedef std::map<const std::string, ChatTab*> TabMap; - /** Manage whisper tabs */ - TabMap mWhispers; - - typedef std::list<std::string> History; - typedef History::iterator HistoryIterator; - History mHistory; /**< Command history. */ - HistoryIterator mCurHist; /**< History iterator. */ - - typedef std::list<std::string> Commands; - typedef Commands::iterator CommandsIterator; - History mCommands; /**< Command list. */ - - bool mReturnToggles; /**< Marks whether <Return> toggles the chat log - or not */ - - std::list<std::string> mTradeFilter; - - gcn::DropDown *mColorPicker; - ColorListModel *mColorListModel; - int mChatColor; - unsigned int mChatHistoryIndex; -}; - -extern ChatWindow *chatWindow; - -#endif |