/usr/include/libkdegamesprivate/kgame/kgamechat.h is in libkdegames-dev 4:14.12.3-0ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | /*
This file is part of the KDE games library
Copyright (C) 2001-2002 Andreas Beckermann (b_mann@gmx.de)
Copyright (C) 2001 Martin Heni (kde at heni-online.de)
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 __KGAMECHAT_H__
#define __KGAMECHAT_H__
#include <QtCore/QString>
#include "../kchatbase.h"
#include "../libkdegamesprivate_export.h"
class KPlayer;
class KGame;
class KGamePropertyBase;
class KGameChatPrivate;
/**
* \class KGameChat kgamechat.h <KGame/KGameChat>
*
* @short A Chat widget for KGame-based games
*
* Call @ref setFromPlayer() first - this will be used as the "from" part of
* every message you will send. Otherwise it won't work! You can also use the
* fromPlayer parameter in the constructor though...
*
* @author Andreas Beckermann <b_mann@gmx.de>
**/
class KDEGAMESPRIVATE_EXPORT KGameChat : public KChatBase
{
Q_OBJECT
public:
/**
* Construct a @ref KGame chat widget on @p game that used @p msgid for
* the chat message. The @p fromPlayer is the local player (see @ref
* setFromPlayer).
**/
KGameChat(KGame* game, int msgid, KPlayer* fromPlayer, QWidget * parent, KChatBaseModel* model=0, KChatBaseItemDelegate* delegate=0);
/**
* @overload
* To make use of this widget you need to call @ref setFromPlayer
* manually.
**/
KGameChat(KGame* game, int msgId, QWidget* parent, KChatBaseModel* model=0, KChatBaseItemDelegate* delegate=0);
/**
* @overload
* This constructs a widget that is not usable. You must call at least
* setGame, setFromPlayer and setMessageId manually.
**/
explicit KGameChat(QWidget* parent);
virtual ~KGameChat();
enum SendingIds {
SendToGroup = 1
};
/**
* This sets the fromPlayer to @p player. The fromPlayer is the
* player that will appear as "from" when you send messages through this
* widget.
* @param player The player of this widget
**/
void setFromPlayer(KPlayer* player);
KPlayer* fromPlayer() const;
/**
* Set the @ref KGame object for this chat widget. All messages will be
* sent through this object. You don't have to implement any send
* functions, just call this function, call @ref setFromPlayer and be
* done :-)
* @param g The @ref KGame object the messages will be sent through
**/
void setKGame(KGame* g);
KGame* game() const;
/**
* @return The id of the messages produced by KGameChat. The id will be
* used in @ref KGame as parameter msgid in the method @ref KGame::sendMessage
**/
int messageId() const;
/**
* Change the message id of the chat widget. It is recommended that you
* don't use this but prefer the constructor instead, but in certain
* situations (such as using this widget in Qt designer) it may be
* useful to change the message id.
*
* See also @ref messageId
**/
void setMessageId(int msgid);
/**
* reimplemented from @ref KChatBase
* @return @ref KPlayer::name() for the player set by @ref setFromPlayer
**/
virtual QString fromName() const;
public Q_SLOTS:
virtual void addMessage(const QString& fromName, const QString& text) { KChatBase::addMessage(fromName, text);}
virtual void addMessage(int fromId, const QString& text);
void slotReceiveMessage(int, const QByteArray&, quint32 receiver, quint32 sender);
protected:
/**
* @param id The ID of the sending entry, as returned by @ref
* KChatBase::sendingEntry
* @return True if the entry "send to all" was selected, otherwise false
**/
bool isSendToAllMessage(int id) const;
/**
* Used to indicate whether a message shall be sent to a group of
* players. Note that this was not yet implemented when this doc was
* written so this description might be wrong. (FIXME)
* @param id The ID of the sending entry, as returned by @ref
* KChatBase::sendingEntry
* @return True if the message is meant to be sent to a group (see @ref
* KPlayer::group), e.g. if "send to my group" was selected.
**/
bool isToGroupMessage(int id) const;
/**
* Used to indicate whether the message shall be sent to a single player
* only. Note that you can also call @ref isSendToAllMessage and @ref
* isToGroupMessage - if both return false it must be a player message.
* This behaviour might be changed later - so don't depend on it.
*
* See also toPlayerId
* @param id The ID of the sending entry, as returned by
* KChatBase::sendingEntry
* @return True if the message shall be sent to a special player,
* otherwise false.
**/
bool isToPlayerMessage(int id) const;
/**
* @param id The ID of the sending entry, as returned by
* KChatBase::sendingEntry
* @return The ID of the player (see KPlayer::id) the sending entry
* belongs to. Note that the parameter id is an id as returned by ref
* KChatBase::sendingEntry and the id this method returns is a
* KPlayer ID. If isToPlayerMessage returns false this method
* returns -1
**/
int playerId(int id) const;
/**
* @param playerId The ID of the KPlayer object
* @return The ID of the sending entry (see KChatBase) or -1 if
* the player id was not found.
**/
int sendingId(int playerId) const;
/**
* @return True if the player with this ID was added before (see
* slotAddPlayer)
**/
bool hasPlayer(int id) const;
/**
* @param name The name of the added player
* @return A string that will be added as sending entry in @ref
* KChatBase. By default this is "send to name" where name is the name
* that you specify. See also KChatBase::addSendingEntry
**/
virtual QString sendToPlayerEntry(const QString& name) const;
protected Q_SLOTS:
/**
* Unsets a KGame object that has been set using setKGame
* before. You don't have to call this - this is usually done
* automatically.
**/
void slotUnsetKGame();
void slotPropertyChanged(KGamePropertyBase*, KPlayer*);
void slotAddPlayer(KPlayer*);
void slotRemovePlayer(KPlayer*);
/**
* Called when KPlayer::signalNetworkData is emitted. The message
* gets forwarded to slotReceiveMessage if @p me equals
* fromPlayer.
**/
void slotReceivePrivateMessage(int msgid, const QByteArray& buffer, quint32 sender, KPlayer* me);
protected:
virtual void returnPressed(const QString& text);
private:
void init(KGame* g, int msgid);
private:
KGameChatPrivate* const d;
};
#endif
|