summaryrefslogtreecommitdiffstats
path: root/libkdegames/kchatbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'libkdegames/kchatbase.h')
-rw-r--r--libkdegames/kchatbase.h511
1 files changed, 0 insertions, 511 deletions
diff --git a/libkdegames/kchatbase.h b/libkdegames/kchatbase.h
deleted file mode 100644
index 892e5859..00000000
--- a/libkdegames/kchatbase.h
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- This file is part of the KDE games library
- Copyright (C) 2001 Andreas Beckermann ([email protected])
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-#ifndef __KCHATBASE_H__
-#define __KCHATBASE_H__
-
-#include <tqframe.h>
-#include <tqstring.h>
-#include <tqlistbox.h>
-
-#include <kglobalsettings.h>
-#include <kdemacros.h>
-class TQListBoxItem;
-
-class KConfig;
-
-
-class KChatBaseTextPrivate;
-
-/**
- * A TQListBoxText implementation for KChatBase.
- *
- * It supports different colors, text fonts, ...
- *
- * A KChatBaseText consists of two text items: first the player part then the
- * text part. This honors KChatBase::addMessage which also uses both.
- * You can leave the player part out if you don't need it - there won't be any
- * difference.
- *
- * You can set different colors and fonts for both parts. In the future there
- * will probably some kind of KChatBaseDialog which offers the user the ability
- * to configure things like color and font on the fly.
- **/
-class KChatBaseText : public TQListBoxText
-{
-public:
-
- /**
- * Constructs a KChatBaseText object with the player and text part
- **/
- KChatBaseText(const TQString& player, const TQString& text);
-
- /**
- * Constructs a KChatBaseText object without player part
- **/
- KChatBaseText(const TQString& text);
-
- /**
- * Destruct a KChatBaseText object.
- **/
- virtual ~KChatBaseText();
-
- /**
- * Set the name part of a message. A message is usually shown like
- * "name: text" and you can change both parts independently.
- *
- * @see setMessage
- * @param name The name of the sender (e.g. the player)
- **/
- void setName(const TQString& name);
-
- /**
- * Set the text part of a message. A message is usually shown like
- * "name: message" and you can change both parts independently.
- *
- * See also setName
- * @param message The message that has been sent
- **/
- void setMessage(const TQString& message);
-
- /**
- * @return The name part of a message.
- * @see setName
- **/
- const TQString& name() const;
-
- /**
- * @return The message text.
- * @see setMessage
- **/
- const TQString& message() const;
-
- /**
- * You can set the font of the sender name independently of the message
- * itself. This font is used as the "name: " part of the message.
- * @return The font that is used for the name
- **/
- TQFont nameFont() const;
-
- /**
- * You can set the font of the message independently of the sender name.
- * This font is used as the text part of the message.
- * @return The font thaz is used for message text
- **/
- TQFont messageFont() const;
-
- /**
- * Set the font for the name.
- * @see nameFont
- * @param font A pointer to the name font. Only the pointer is stored so
- * don't delete the object. This way there is only one object for a lot
- * of messages in memory.
- **/
- void setNameFont(const TQFont* font);
-
- /**
- * Set the font for the message text.
- * @see messageFont
- * @param font A pointer to the message font. Only the pointer is stored so
- * don't delete the object! This way there is only one object for a lot
- * of messages in memory.
- **/
- void setMessageFont(const TQFont* font);
-
- /**
- **/
- virtual int width(TQListBox* ) const;
-
- /**
- **/
- virtual int height(TQListBox* ) const;
-
-protected:
- /**
- **/
- virtual void paint(TQPainter*);
-
-private:
- void init();
-
-private:
- KChatBaseTextPrivate* d;
-};
-
-
-class KChatBasePrivate;
-
-/**
- * @short The base class for chat widgets
- *
- * This is the base class for both KChat and KGameChat. KGameChat is the class
- * you want to use if you write a KGame based game as it will do most things for
- * you. KChat is more or less the same but not KGame dependant
- *
- * KChatBase provides a complete chat widget, featuring different sending means
- * (e.g. "send to all", "send to player1", "send to group2" and so on - see
- * addSendingEntry). It also provides full auto-completion capabilities (see
- * KCompletion and KLineEdit) which defaults to disabled. The user can
- * change this by right-clicking on the KLineEdit widget and selecting the
- * desired behaviour. You can also change this manually by calling
- * setCompletionMode.
- *
- * To make KChatBase useful you have to overwrite at least returnPressed.
- * Here you should send the message to all of your clients (or just some of
- * them, depending on sendingEntry).
- *
- * To add a message just call addMessage with the nickname of the player
- * who sent the message and the message itself. If you don't want to use
- * layoutMessage by any reason you can also call addItem directly. But you
- * should better replace layoutMessage instead.
- *
- * You probably don't want to use the abstract class KChatBase directly but use
- * one of the derived classess KChat or KGameChat. The latter is the
- * widget of choice if you develop a KGame application as you don't have to
- * do anything but providing a KGame object.
- *
- * @author Andreas Beckermann <[email protected]>
- **/
-class KDE_EXPORT KChatBase : public TQFrame
-{
- Q_OBJECT
- TQ_OBJECT
-public:
- /**
- * @param parent The parent widget for this widget.
- * @param noComboBox If true then the combo box where the player can
- * choose where to send messages to (either globally or just to some
- * players) will not be added.
- **/
- KChatBase(TQWidget* parent, bool noComboBox = false);
-
- /**
- * Destruct the KChatBase object
- *
- * Also calls saveConfig
- **/
- virtual ~KChatBase();
-
- enum SendingIds {
- SendToAll = 0
- };
-
- /**
- * @return The name that will be shown for messages from this widget. Either the
- * string that was set by setFromName or the name of the player
- * that was set by setFromPlayer
- **/
- virtual const TQString& fromName() const = 0;
-
- /**
- * Adds a new entry in the combo box. The default is "send to all
- * players" only. This function is provided for convenience. You can
- * also call inserSendingEntry with index = -1.
- * See also nextId!
- * @param text The text of the new entry
- * @param id An ID for this entry. This must be unique for this
- * entry. It has nothing to do with the position of the entry in the
- * combo box. See nextId
- * @return True if successful, otherwise false (e.g. if the id is already used)
- **/
- bool addSendingEntry(const TQString& text, int id);
-
- /**
- * Inserts a new entry in the combo box.
- * @param text The entry
- * @param id An ID for this entry. This must be unique for this
- * entry. It has nothing to do with the position of the entry in the
- * combo box!
- * @see nextId
- * @param index The position of the entry. If -1 the entry will be added
- * at the bottom
- * @return True if successful, otherwise false (e.g. if the id is already used)
- **/
- bool insertSendingEntry(const TQString& text, int id, int index = -1);
-
- /**
- * This changes a combo box entry.
- * @param text The new text of the entry
- * @param id The ID of the item to be changed
- **/
- void changeSendingEntry(const TQString& text, int id);
-
- /**
- * This selects a combo box entry.
- * @param id The ID of the item to be selected
- **/
- void setSendingEntry(int id);
-
- /**
- * Removes the entry with the ID id from the combo box. Note that id is
- * _not_ the index of the entry!
- * @see addSendingEntry
- * @param id The unique id of the entry
- **/
- void removeSendingEntry(int id);
-
- /**
- * @return The _unique ID_ of the sending entry that has been selected.
- * @see addSendingEntry
- *
- * Note that the entry "send to all" _always_ uses
- * KChatBase::SendToAll, i.e. 0 as id!
- **/
- int sendingEntry() const;
-
- /**
- * @return The index of the combo box entry with the given id
- **/
- int findIndex(int id) const;
-
- /**
- * @return An ID that has not yet been used in the combo box.
- * @see addSendingEntry
- **/
- int nextId() const;
-
- /**
- * @return True if this widget is able to send messages (see
- * returnPressed) and false if not. The default implementation returns
- * the value which has been set by setAcceptMessage (true by
- * default)
- **/
- virtual bool acceptMessage() const;
-
- /**
- * See KLineEdit::setCompletionMode
- **/
- void setCompletionMode(KGlobalSettings::Completion mode);
-
- /**
- * Set the font that used used for the name part of a message. See also
- * nameFont and setBothFont
- **/
- void setNameFont(const TQFont& font);
-
- /**
- * Set the font that used used for the message part of a message.
- * @see messageFont, setBothFont
- **/
- void setMessageFont(const TQFont& font);
-
- /**
- * This sets both - nameFont and messageFont to font. You
- * probably want to use this if you don't wish to distinguish between
- * these parts of a message.
- * @param font A font used for both nameFont and messageFont
- **/
- void setBothFont(const TQFont& font);
-
- /**
- * Same as setNameFont but applies only to system messages.
- * @see layoutSystemMessage
- **/
- void setSystemNameFont(const TQFont& font);
-
- /**
- * Same as setMessageFont but applies only to system messages.
- * @see layoutSystemMessage
- **/
- void setSystemMessageFont(const TQFont& font);
-
- /**
- * Same as setBothFont but applies only to system messages.
- * @see layoutSystemMessage
- **/
- void setSystemBothFont(const TQFont& font);
-
- /**
- * This font should be used for the name (the "from: " part) of a
- * message. layoutMessage uses this to set the font using
- * KChatBaseText::setNameFont but if you want to overwrite
- * layoutMessage you should do this yourself.
- * @return The font that is used for the name part of the message.
- **/
- const TQFont& nameFont() const;
-
- /**
- * This font should be used for a message. layoutMessage sets the
- * font of a message using KChatBaseText::setMessageFont but if ypu
- * replace layoutMessage with your own function you should use
- * messageFont() yourself.
- * @return The font that is used for a message
- **/
- const TQFont& messageFont() const;
-
- /**
- * Same as systemNameFont but applies only to system messages.
- * @see layoutSystemMessage
- **/
- const TQFont& systemNameFont() const;
-
- /**
- * Same as systemMessageFont but applies only to system messages.
- * @see layoutSystemMessage
- **/
- const TQFont& systemMessageFont() const;
-
- /**
- * Save the configuration of the dialog to a KConfig object. If
- * the supplied KConfig pointer is NULL then kapp->config() is used
- * instead (and the group is changed to "KChatBase") butr the current
- * group is restored at the end.
- * @param conf A pointer to the KConfig object to save the config
- * to. If you use 0 then kapp->config() is used and the group is changed
- * to "KChatBase" (the current group is restored at the end).
- **/
- virtual void saveConfig(KConfig* conf = 0);
-
- /**
- * Read the configuration from a KConfig object. If the pointer is
- * NULL kapp->config() is used and the group is changed to "KChatBase".
- * The current KConfig::group is restored after this call.
- **/
- virtual void readConfig(KConfig* conf = 0);
-
- /**
- * Set the maximum number of items in the list. If the number of item
- * exceeds the maximum as many items are deleted (oldest first) as
- * necessary. The number of items will never exceed this value.
- * @param maxItems the maximum number of items. -1 (default) for
- * unlimited.
- **/
- void setMaxItems(int maxItems);
-
- /**
- * Clear all messages in the list.
- **/
- void clear();
-
- /**
- * @return The maximum number of messages in the list. -1 is unlimited. See also
- * setMaxItems
- **/
- int maxItems() const;
-
-
-public slots:
- /**
- * Add a text in the listbox. See also signalSendMessage()
- *
- * Maybe you want to replace this with a function that creates a nicer text
- * than "fromName: text"
- *
- * Update: the function layoutMessage is called by this now. This
- * means that you will get user defined outlook on the messages :-)
- * @param fromName The player who sent this message
- * @param text The text to be added
- **/
- virtual void addMessage(const TQString& fromName, const TQString& text);
-
- /**
- * This works just like addMessage but adds a system message.
- * layoutSystemMessage is used to generate the displayed item. System
- * messages will have a different look than player messages.
- *
- * You may wish to use this to display status information from your game.
- **/
- virtual void addSystemMessage(const TQString& fromName, const TQString& text);
-
- /**
- * This member function is mainly internally used to add a message. It
- * is called by addMessage which creates a single text from a
- * player name and a text. You will hardly ever use this - but if you
- * need it it will be here ;-)
- *
- * But you may want to replace this in a derived class to create a
- * non-default (maybe nicer ;-) ) behaviour
- * @param item The TQListBoxItem that is being added
- **/
- virtual void addItem(const TQListBoxItem* item);
-
-
- /**
- * This clears all messages in the view. Note that only the messages are
- * cleared, not the sender names in the combo box!
- **/
- void slotClear();
-
- /**
- * @param a If false this widget cannot send a message until
- * setAcceptMessage(true) is called
- **/
- void setAcceptMessage(bool a);
-
-signals:
- /**
- * Emitted when the user right-clicks on a list item.
- * @see TQListBox::rightButtonClicked
- **/
- void rightButtonClicked(TQListBoxItem*, const TQPoint&);
-
-protected:
- /**
- * This is called whenever the user pushed return ie wants to send a
- * message.
- *
- * Note that you MUST add the message to the widget when this function
- * is called as it has already been added to the KCompletion object
- * of the KLineEdit widget!
- *
- * Must be implemented in derived classes
- * @param text The message to be sent
- **/
- virtual void returnPressed(const TQString& text) = 0;
-
- /**
- * Replace to customise the combo box.
- *
- * Default: i18n("Send to %1).tqarg(name)
- * @param name The name of the player
- * @return The string as it will be shown in the combo box
- **/
- virtual TQString comboBoxItem(const TQString& name) const;
-
- /**
- * Create a TQListBoxItem for this message. This function is not yet
- * written usefully - currently just a TQListBoxTex object is
- * created which shows the message in this format: "fromName: text".
- * This should fit most peoples needs but needs further improvements.
- **/
- virtual TQListBoxItem* layoutMessage(const TQString& fromName, const TQString& text);
-
- /**
- * Create a TQListBoxItem for this message. This does the same as
- * layoutMessage but generates a system message. You might want to
- * use such a message to display e.g. status information from your game.
- *
- * The default implementation just prepends "--- ".
- **/
- virtual TQListBoxItem* layoutSystemMessage(const TQString& fromName, const TQString& text);
-
-private slots:
- /**
- * Check if a text was entered and if acceptMessage returns true.
- * Then add the message to the KCompletion object of the KLineEdit
- * widget and call returnPressed
- **/
- void slotReturnPressed(const TQString&);
-
-private:
- void init(bool noComboBox);
-
- KChatBasePrivate* d;
-};
-
-#endif