#include <kchatbase.h>


Public Types | ||||
| enum | SendingIds { SendToAll = 0 } | |||
Public Slots | ||||
| virtual void | addMessage (const QString &fromName, const QString &text) | |||
| Add a text in the listbox. | ||||
| virtual void | addSystemMessage (const QString &fromName, const QString &text) | |||
| This works just like addMessage but adds a system message. | ||||
| void | slotClear () | |||
| This clears all messages in the view. | ||||
| void | setAcceptMessage (bool a) | |||
| ||||
Public Member Functions | ||||
| KChatBase (QWidget *parent, KChatBaseModel *model=0, KChatBaseItemDelegate *delegate=0, bool noComboBox=false) | ||||
| ||||
| virtual | ~KChatBase () | |||
| Destruct the KChatBase object. | ||||
| virtual QString | fromName () const =0 | |||
| ||||
| bool | addSendingEntry (const QString &text, int id) | |||
| Adds a new entry in the combo box. | ||||
| bool | insertSendingEntry (const QString &text, int id, int index=-1) | |||
| Inserts a new entry in the combo box. | ||||
| void | changeSendingEntry (const QString &text, int id) | |||
| This changes a combo box entry. | ||||
| void | setSendingEntry (int id) | |||
| This selects a combo box entry. | ||||
| void | removeSendingEntry (int id) | |||
| Removes the entry with the ID id from the combo box. | ||||
| int | sendingEntry () const | |||
| ||||
| int | findIndex (int id) const | |||
| ||||
| int | nextId () const | |||
| ||||
| virtual bool | acceptMessage () const | |||
| ||||
| void | setCompletionMode (KGlobalSettings::Completion mode) | |||
| See KLineEdit::setCompletionMode. | ||||
| void | setNameFont (const QFont &font) | |||
| Set the font that used used for the name part of a message. | ||||
| void | setMessageFont (const QFont &font) | |||
| Set the font that used used for the message part of a message. | ||||
| void | setBothFont (const QFont &font) | |||
| This sets both - nameFont and messageFont to font. | ||||
| void | setSystemNameFont (const QFont &font) | |||
| Same as setNameFont but applies only to system messages. | ||||
| void | setSystemMessageFont (const QFont &font) | |||
| Same as setMessageFont but applies only to system messages. | ||||
| void | setSystemBothFont (const QFont &font) | |||
| Same as setBothFont but applies only to system messages. | ||||
| QFont | nameFont () const | |||
| This font should be used for the name (the "from: " part) of a message. | ||||
| QFont | messageFont () const | |||
| This font should be used for a message. | ||||
| QFont | systemNameFont () const | |||
| Same as systemNameFont but applies only to system messages. | ||||
| QFont | systemMessageFont () const | |||
| Same as systemMessageFont but applies only to system messages. | ||||
| virtual void | saveConfig (KConfig *conf=0) | |||
| Save the configuration of the dialog to a KConfig object. | ||||
| virtual void | readConfig (KConfig *conf=0) | |||
| Read the configuration from a KConfig object. | ||||
| void | setMaxItems (int maxItems) | |||
| Set the maximum number of items in the list. | ||||
| void | clear () | |||
| Clear all messages in the list. | ||||
| int | maxItems () const | |||
| ||||
| KChatBaseModel * | model () | |||
| void | setModel (KChatBaseModel *m) | |||
Protected Member Functions | ||||
| virtual void | returnPressed (const QString &text)=0 | |||
| This is called whenever the user pushed return ie wants to send a message. | ||||
| virtual QString | comboBoxItem (const QString &name) const | |||
| Replace to customize the combo box. | ||||
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.
Definition at line 69 of file kchatbase.h.
| KChatBase::KChatBase | ( | QWidget * | parent, | |
| KChatBaseModel * | model = 0, |
|||
| KChatBaseItemDelegate * | delegate = 0, |
|||
| bool | noComboBox = false | |||
| ) | [explicit] |
| parent | The parent widget for this widget. |
| model | ||
| delegate | ||
| 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. |
Definition at line 75 of file kchatbase.cpp.
References addSendingEntry(), KChatBasePrivate::mAcceptMessage, KChatBasePrivate::mBox, KChatBasePrivate::mCombo, KChatBasePrivate::mDelegate, KChatBasePrivate::mEdit, KChatBasePrivate::mModel, readConfig(), returnPressed(), SendToAll, and setMaxItems().

| KChatBase::~KChatBase | ( | ) | [virtual] |
Destruct the KChatBase object.
Also calls saveConfig
Definition at line 127 of file kchatbase.cpp.
References saveConfig().

| virtual QString KChatBase::fromName | ( | ) | const [pure virtual] |
Either the string that was set by setFromName or the name of the player that was set by setFromPlayer
Implemented in KChat.
| 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!
| text | The text of the new entry | |
| 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 |
Definition at line 140 of file kchatbase.cpp.
References insertSendingEntry().
Referenced by KChatBase().

| bool KChatBase::insertSendingEntry | ( | const QString & | text, | |
| int | id, | |||
| int | index = -1 | |||
| ) |
Inserts a new entry in the combo box.
| text | The entry | |
| 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! |
| index | The position of the entry. If -1 the entry will be added at the bottom |
Definition at line 149 of file kchatbase.cpp.
References KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.
Referenced by addSendingEntry().
| void KChatBase::changeSendingEntry | ( | const QString & | text, | |
| int | id | |||
| ) |
This changes a combo box entry.
| text | The new text of the entry | |
| id | The ID of the item to be changed |
Definition at line 196 of file kchatbase.cpp.
References findIndex(), and KChatBasePrivate::mCombo.

| void KChatBase::setSendingEntry | ( | int | id | ) |
This selects a combo box entry.
| id | The ID of the item to be selected |
Definition at line 206 of file kchatbase.cpp.
References findIndex(), and KChatBasePrivate::mCombo.

| 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!
| id | The unique id of the entry |
Definition at line 186 of file kchatbase.cpp.
References findIndex(), KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.

| int KChatBase::sendingEntry | ( | ) | const |
Definition at line 172 of file kchatbase.cpp.
References KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.
| int KChatBase::findIndex | ( | int | id | ) | const |
Definition at line 215 of file kchatbase.cpp.
References KChatBasePrivate::mIndex2Id.
Referenced by changeSendingEntry(), removeSendingEntry(), and setSendingEntry().
| int KChatBase::nextId | ( | ) | const |
Definition at line 220 of file kchatbase.cpp.
References KChatBasePrivate::mIndex2Id, and SendToAll.
| bool KChatBase::acceptMessage | ( | ) | const [virtual] |
The default implementation returns the value which has been set by setAcceptMessage (true by default)
Definition at line 134 of file kchatbase.cpp.
References KChatBasePrivate::mAcceptMessage.
| void KChatBase::setCompletionMode | ( | KGlobalSettings::Completion | mode | ) |
See KLineEdit::setCompletionMode.
Definition at line 252 of file kchatbase.cpp.
References KChatBasePrivate::mEdit.
| 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 314 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setNameFont().
Referenced by KChatDialog::configureChatWidget().

| void KChatBase::setMessageFont | ( | const QFont & | font | ) |
Set the font that used used for the message part of a message.
Definition at line 319 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setMessageFont().
Referenced by KChatDialog::configureChatWidget().

| 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.
| font | A font used for both nameFont and messageFont |
Definition at line 324 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setBothFont().

| void KChatBase::setSystemNameFont | ( | const QFont & | font | ) |
Same as setNameFont but applies only to system messages.
Definition at line 329 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setSystemNameFont().
Referenced by KChatDialog::configureChatWidget().

| void KChatBase::setSystemMessageFont | ( | const QFont & | font | ) |
Same as setMessageFont but applies only to system messages.
Definition at line 334 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setSystemMessageFont().
Referenced by KChatDialog::configureChatWidget().

| void KChatBase::setSystemBothFont | ( | const QFont & | font | ) |
Same as setBothFont but applies only to system messages.
Definition at line 339 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::setSystemBothFont().

| 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.
Definition at line 294 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::nameFont().
Referenced by KChatDialog::plugChatWidget().

| 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.
Definition at line 299 of file kchatbase.cpp.
References KChatBaseModel::messageFont(), and KChatBasePrivate::mModel.
Referenced by KChatDialog::plugChatWidget().

| QFont KChatBase::systemNameFont | ( | ) | const |
Same as systemNameFont but applies only to system messages.
Definition at line 304 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::systemNameFont().
Referenced by KChatDialog::plugChatWidget().

| QFont KChatBase::systemMessageFont | ( | ) | const |
Same as systemMessageFont but applies only to system messages.
Definition at line 309 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::systemMessageFont().
Referenced by KChatDialog::plugChatWidget().

| 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.
| conf | A 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 255 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::saveConfig().
Referenced by KChatDialog::configureChatWidget(), and ~KChatBase().

| 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 263 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::readConfig().
Referenced by KChatBase().

| 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.
| maxItems | the maximum number of items. -1 (default) for unlimited. |
Definition at line 276 of file kchatbase.cpp.
References clear(), KChatBasePrivate::mModel, KChatBaseModel::rowCount(), and KChatBaseModel::setMaxItems().
Referenced by KChatDialog::configureChatWidget(), and KChatBase().

| void KChatBase::clear | ( | ) |
Clear all messages in the list.
Definition at line 271 of file kchatbase.cpp.
References KChatBasePrivate::mModel, and KChatBaseModel::rowCount().
Referenced by setMaxItems(), and slotClear().

| int KChatBase::maxItems | ( | ) | const |
-1 is unlimited. See also setMaxItems
Definition at line 289 of file kchatbase.cpp.
References KChatBaseModel::maxItems(), and KChatBasePrivate::mModel.
Referenced by KChatDialog::plugChatWidget().

| KChatBaseModel * KChatBase::model | ( | ) |
| void KChatBase::setModel | ( | KChatBaseModel * | m | ) |
| void KChatBase::addMessage | ( | const QString & | fromName, | |
| const QString & | text | |||
| ) | [virtual, slot] |
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 :-)
| fromName | The player who sent this message | |
| text | The text to be added |
Definition at line 344 of file kchatbase.cpp.
References KChatBaseModel::addMessage(), and KChatBasePrivate::mModel.
Referenced by KChat::returnPressed().
| void KChatBase::addSystemMessage | ( | const QString & | fromName, | |
| const QString & | text | |||
| ) | [virtual, slot] |
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 349 of file kchatbase.cpp.
References KChatBaseModel::addSystemMessage(), and KChatBasePrivate::mModel.
| 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 247 of file kchatbase.cpp.
References clear().
| void KChatBase::setAcceptMessage | ( | bool | a | ) | [slot] |
| a | If false this widget cannot send a message until setAcceptMessage(true) is called |
Definition at line 137 of file kchatbase.cpp.
References KChatBasePrivate::mAcceptMessage.
| virtual void KChatBase::returnPressed | ( | const QString & | text | ) | [protected, pure 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
| text | The message to be sent |
Implemented in KChat.
Referenced by KChatBase().
| QString KChatBase::comboBoxItem | ( | const QString & | name | ) | const [protected, virtual] |
Replace to customize the combo box.
Default: i18n("Send to 1).arg(name)
| name | The name of the player |
Definition at line 242 of file kchatbase.cpp.
1.5.3