• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

libkdegames/libkdegamesprivate

Public Types | Public Slots | Public Member Functions | Protected Member Functions | List of all members
KChatBase Class Referenceabstract

#include <KChatBase>

Inheritance diagram for KChatBase:
Inheritance graph
[legend]

Public Types

enum  SendingIds { SendToAll = 0 }
 

Public Slots

virtual void addMessage (const QString &fromName, const QString &text)
 
virtual void addSystemMessage (const QString &fromName, const QString &text)
 
void setAcceptMessage (bool a)
 
void slotClear ()
 

Public Member Functions

 KChatBase (QWidget *parent, KChatBaseModel *model=0, KChatBaseItemDelegate *delegate=0, bool noComboBox=false)
 
virtual ~KChatBase ()
 
virtual bool acceptMessage () const
 
bool addSendingEntry (const QString &text, int id)
 
void changeSendingEntry (const QString &text, int id)
 
void clear ()
 
int findIndex (int id) const
 
virtual QString fromName () const =0
 
bool insertSendingEntry (const QString &text, int id, int index=-1)
 
int maxItems () const
 
QFont messageFont () const
 
KChatBaseModel * model ()
 
QFont nameFont () const
 
int nextId () const
 
virtual void readConfig (KConfig *conf=0)
 
void removeSendingEntry (int id)
 
virtual void saveConfig (KConfig *conf=0)
 
int sendingEntry () const
 
void setBothFont (const QFont &font)
 
void setCompletionMode (KGlobalSettings::Completion mode)
 
void setMaxItems (int maxItems)
 
void setMessageFont (const QFont &font)
 
void setModel (KChatBaseModel *m)
 
void setNameFont (const QFont &font)
 
void setSendingEntry (int id)
 
void setSystemBothFont (const QFont &font)
 
void setSystemMessageFont (const QFont &font)
 
void setSystemNameFont (const QFont &font)
 
QFont systemMessageFont () const
 
QFont systemNameFont () const
 

Protected Member Functions

virtual QString comboBoxItem (const QString &name) const
 
const QModelIndex indexAt (const QPoint &pos) const
 
virtual void returnPressed (const QString &text)=0
 

Detailed Description

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 KhatBase 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.

You probably don't want to use the abstract class KChatBase directly but use one of the derived classes 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. If you want to change the kind of elements displayed (using pixmaps for example), then you will also have to derive the KChatBaseModel and KChatBaseItemDelegate classes.

Author
Andreas Beckermann b_man.nosp@m.n@gm.nosp@m.x.de
Gael de Chalendar (aka Kleag) kleag.nosp@m.@fre.nosp@m.e.fr for the port to Model/View

Definition at line 71 of file kchatbase.h.

Member Enumeration Documentation

enum KChatBase::SendingIds
Enumerator
SendToAll 

Definition at line 94 of file kchatbase.h.

Constructor & Destructor Documentation

KChatBase::KChatBase ( QWidget *  parent,
KChatBaseModel *  model = 0,
KChatBaseItemDelegate *  delegate = 0,
bool  noComboBox = false 
)
explicit
Parameters
parentThe parent widget for this widget.
model
delegate
noComboBoxIf 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.

Definition at line 76 of file kchatbase.cpp.

KChatBase::~KChatBase ( )
virtual

Destruct the KChatBase object.

Also calls saveConfig

Definition at line 141 of file kchatbase.cpp.

Member Function Documentation

bool KChatBase::acceptMessage ( ) const
virtual
Returns
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)

Definition at line 148 of file kchatbase.cpp.

void KChatBase::addMessage ( const QString &  fromName,
const QString &  text 
)
virtualslot

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 :-)

Parameters
fromNameThe player who sent this message
textThe text to be added

Definition at line 361 of file kchatbase.cpp.

bool KChatBase::addSendingEntry ( const QString &  text,
int  id 
)

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!

Parameters
textThe text of the new entry
idAn 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
Returns
True if successful, otherwise false (e.g. if the id is already used)

Definition at line 154 of file kchatbase.cpp.

void KChatBase::addSystemMessage ( const QString &  fromName,
const QString &  text 
)
virtualslot

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.

Definition at line 366 of file kchatbase.cpp.

void KChatBase::changeSendingEntry ( const QString &  text,
int  id 
)

This changes a combo box entry.

Parameters
textThe new text of the entry
idThe ID of the item to be changed

Definition at line 212 of file kchatbase.cpp.

void KChatBase::clear ( )

Clear all messages in the list.

Definition at line 288 of file kchatbase.cpp.

QString KChatBase::comboBoxItem ( const QString &  name) const
protectedvirtual

Replace to customize the combo box.

Default: i18n("Send to %1).arg(name)

Parameters
nameThe name of the player
Returns
The string as it will be shown in the combo box

Definition at line 258 of file kchatbase.cpp.

int KChatBase::findIndex ( int  id) const
Returns
The index of the combo box entry with the given id

Definition at line 231 of file kchatbase.cpp.

virtual QString KChatBase::fromName ( ) const
pure virtual
Returns
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
const QModelIndex KChatBase::indexAt ( const QPoint &  pos) const
protected

Returns the model index of the message at the viewport coordinates point.

Parameters
posposition to check index for
Returns
model index of message with coordinates pos

Definition at line 131 of file kchatbase.cpp.

bool KChatBase::insertSendingEntry ( const QString &  text,
int  id,
int  index = -1 
)

Inserts a new entry in the combo box.

Parameters
textThe entry
idAn 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 also
nextId
Parameters
indexThe position of the entry. If -1 the entry will be added at the bottom
Returns
True if successful, otherwise false (e.g. if the id is already used)

Definition at line 163 of file kchatbase.cpp.

int KChatBase::maxItems ( ) const
Returns
The maximum number of messages in the list. -1 is unlimited. See also setMaxItems

Definition at line 306 of file kchatbase.cpp.

QFont KChatBase::messageFont ( ) const

This font should be used for a message.

layoutMessage sets the font of a message using KChatBaseItemDelegate::setMessageFont but if ypu replace layoutMessage with your own function you should use messageFont() yourself.

Returns
The font that is used for a message

Definition at line 316 of file kchatbase.cpp.

KChatBaseModel * KChatBase::model ( )

Definition at line 71 of file kchatbase.cpp.

QFont KChatBase::nameFont ( ) const

This font should be used for the name (the "from: " part) of a message.

layoutMessage uses this to set the font using KChatBaseItemDelegate::setNameFont but if you want to overwrite layoutMessage you should do this yourself.

Returns
The font that is used for the name part of the message.

Definition at line 311 of file kchatbase.cpp.

int KChatBase::nextId ( ) const
Returns
An ID that has not yet been used in the combo box.
See also
addSendingEntry

Definition at line 236 of file kchatbase.cpp.

void KChatBase::readConfig ( KConfig *  conf = 0)
virtual

Read the configuration from a KConfig object.

If the pointer is NULL KGlobal::config() is used and the group is changed to "KChatBase". The current KConfig::group is restored after this call.

Definition at line 280 of file kchatbase.cpp.

void KChatBase::removeSendingEntry ( int  id)

Removes the entry with the ID id from the combo box.

Note that id is not the index of the entry!

See also
addSendingEntry
Parameters
idThe unique id of the entry

Definition at line 200 of file kchatbase.cpp.

virtual void KChatBase::returnPressed ( const QString &  text)
protectedpure virtual

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

Parameters
textThe message to be sent
void KChatBase::saveConfig ( KConfig *  conf = 0)
virtual

Save the configuration of the dialog to a KConfig object.

If the supplied KConfig pointer is NULL then KGlobal::config() is used instead (and the group is changed to "KChatBase") butr the current group is restored at the end.

Parameters
confA pointer to the KConfig object to save the config to. If you use 0 then KGlobal::config() is used and the group is changed to "KChatBase" (the current group is restored at the end).

Definition at line 272 of file kchatbase.cpp.

int KChatBase::sendingEntry ( ) const
Returns
The unique ID of the sending entry that has been selected.
See also
addSendingEntry

Note that the entry "send to all" always uses KChatBase::SendToAll, i.e. 0 as id!

Definition at line 186 of file kchatbase.cpp.

void KChatBase::setAcceptMessage ( bool  a)
slot
Parameters
aIf false this widget cannot send a message until setAcceptMessage(true) is called

Definition at line 151 of file kchatbase.cpp.

void KChatBase::setBothFont ( const QFont &  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.

Parameters
fontA font used for both nameFont and messageFont

Definition at line 341 of file kchatbase.cpp.

void KChatBase::setCompletionMode ( KGlobalSettings::Completion  mode)

See KLineEdit::setCompletionMode.

Definition at line 269 of file kchatbase.cpp.

void KChatBase::setMaxItems ( int  maxItems)

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.

Parameters
maxItemsthe maximum number of items. -1 (default) for unlimited.

Definition at line 293 of file kchatbase.cpp.

void KChatBase::setMessageFont ( const QFont &  font)

Set the font that used used for the message part of a message.

See also
messageFont, setBothFont

Definition at line 336 of file kchatbase.cpp.

void KChatBase::setModel ( KChatBaseModel *  m)

Definition at line 65 of file kchatbase.cpp.

void KChatBase::setNameFont ( const QFont &  font)

Set the font that used used for the name part of a message.

See also nameFont and setBothFont

Definition at line 331 of file kchatbase.cpp.

void KChatBase::setSendingEntry ( int  id)

This selects a combo box entry.

Parameters
idThe ID of the item to be selected

Definition at line 222 of file kchatbase.cpp.

void KChatBase::setSystemBothFont ( const QFont &  font)

Same as setBothFont but applies only to system messages.

See also
layoutSystemMessage

Definition at line 356 of file kchatbase.cpp.

void KChatBase::setSystemMessageFont ( const QFont &  font)

Same as setMessageFont but applies only to system messages.

See also
layoutSystemMessage

Definition at line 351 of file kchatbase.cpp.

void KChatBase::setSystemNameFont ( const QFont &  font)

Same as setNameFont but applies only to system messages.

See also
layoutSystemMessage

Definition at line 346 of file kchatbase.cpp.

void KChatBase::slotClear ( )
slot

This clears all messages in the view.

Note that only the messages are cleared, not the sender names in the combo box!

Definition at line 263 of file kchatbase.cpp.

QFont KChatBase::systemMessageFont ( ) const

Same as systemMessageFont but applies only to system messages.

See also
layoutSystemMessage

Definition at line 326 of file kchatbase.cpp.

QFont KChatBase::systemNameFont ( ) const

Same as systemNameFont but applies only to system messages.

See also
layoutSystemMessage

Definition at line 321 of file kchatbase.cpp.


The documentation for this class was generated from the following files:
  • kchatbase.h
  • kchatbase.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:44:45 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdegames/libkdegamesprivate

Skip menu "libkdegames/libkdegamesprivate"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal