libkdegames Library API Documentation

KGameDialog Class Reference

TODO: rewrite entire documentation. Main configuration dialog for KGame. More...

#include <kgamedialog.h>

List of all members.

Public Types

enum  ConfigOptions {
  NoConfig = 0, ChatConfig = 1, GameConfig = 2, NetworkConfig = 4,
  MsgServerConfig = 8, BanPlayerConfig = 16, AllConfig = 0xffff
}

Public Methods

 KGameDialog (KGame *g, KPlayer *owner, const QString &title, QWidget *parent, bool modal=false)
 KGameDialog (KGame *g, KPlayer *owner, const QString &title, QWidget *parent, long initConfigs=AllConfig, int chatMsgId=15432, bool modal=false)
virtual ~KGameDialog ()
void setOwner (KPlayer *owner)
void setKGame (KGame *g)
virtual void submitToKGame ()
void addChatWidget (KGameDialogChatConfig *chat, QVBox *parent=0)
void addConnectionList (KGameDialogConnectionConfig *c, QVBox *parent=0)
QVBoxaddConfigPage (KGameDialogConfig *widget, const QString &title)
QVBoxconfigPage (ConfigOptions which)
KGameDialogNetworkConfig * networkConfig () const
KGameDialogGeneralConfig * gameConfig () const
void addConfigWidget (KGameDialogConfig *widget, QWidget *parent)
void addNetworkConfig (KGameDialogNetworkConfig *netConf)
void addGameConfig (KGameDialogGeneralConfig *conf)
void addMsgServerConfig (KGameDialogMsgServerConfig *conf)

Protected Slots

virtual void slotOk ()
virtual void slotApply ()
virtual void slotDefault ()
void slotUnsetKGame ()
void setAdmin (bool isAdmin)
void slotRemoveConfigWidget (QObject *configWidget)

Protected Methods

void initDefaultDialog (ConfigOptions initConfigs, int chatMsgId=15432)
void configureConfigWidgets ()


Detailed Description

TODO: rewrite entire documentation. Main configuration dialog for KGame.

Nearly nothing is valid anymore. The main configuration dialog for KGame. Here all players meat each other, every player can see how many players connected (and their names) and the ADMIN can even "kick" players out. You can talk to each other (using KGameChat and the ADMIN can define the maxPlayers/minPlayers as well as the number of computer players.

AB: setDefaultXYZ is obsolete!! You will usually create an instance of KGameDialog or any derived class and call setDefaultXYZ methods. Example (maybe obsoleted parameters - docu is currently changing very fast):

    KGameDialog dlg(kgame, i18n("New Game"), localPlayer, this, true,
    ID_CHAT);
    dlg.setDefaultNetworkInfo(port, host); // AB: obsolete!
    dlg.exec();
This will create a default modal dialog with the title "New Game". You don't have to do more than this.

Author:
Andreas Beckermann <b_mann@gmx.de>

Definition at line 74 of file kgamedialog.h.


Constructor & Destructor Documentation

KGameDialog::KGameDialog KGame   g,
KPlayer   owner,
const QString   title,
QWidget   parent,
bool    modal = false
 

Create an empty KGameDialog.

You can add widgets using addConfigPage.

Parameters:
g  The KGame object of this game
owner  The KPlayer object who is responsible for this dialog, aka "the local player"
title  The title of the dialog - see KDialog::setCaption
parent  The parent of the dialog
modal  Whether the dialog is modal or not

Definition at line 66 of file kgamedialog.cpp.

KGameDialog::KGameDialog KGame   g,
KPlayer   owner,
const QString   title,
QWidget   parent,
long    initConfigs = AllConfig,
int    chatMsgId = 15432,
bool    modal = false
 

Create a KGameDialog with the standard configuration widgets.

This creates the following widgets:

  • KGameDialogGeneralConfig
  • KGameDialogNetworkConfig
  • KGameDialogMsgServerConfig
  • KGameDialogChatConfig
  • KGameDialogConnectionConfig
If you want to use your own implementations (or none) of the widgets above you should subclass KGameDialog. Use addGameConfig, addNetworkConfig, addMsgConfig, addChatWidget and addConnectionList in this case.

If you want to add further configuration widget you can simply use addConfigPage

Parameters:
g  The KGame object of this game
owner  The KPlayer object who is responsible for this dialog, aka "the local player"
title  The title of the dialog - see KDialog::setCaption
parent  The parent of the dialog
modal  Whether the dialog is modal or not
initConfigs  whether the default KGameDialogConfig widgets shall be created using initDefaultDialog. Use false if you want to use custom widgets.
chatMsgId  The ID of Chat messages. See KGameChat. Unused if initConfigs = false

Definition at line 74 of file kgamedialog.cpp.

References initDefaultDialog().


Member Function Documentation

void KGameDialog::setOwner KPlayer   owner
 

Change the owner of the dialog.

This will be used as the fromPlayer in KGameChat and will receive the entered player name.

Parameters:
owner  The owner of the dialog. It must already be added to the KGame object!
Calls the KGameDialogConfig::setOwner implementation of all widgets that have been added by addConfigWidget
Parameters:
owner  The new owner player of this dialog must already be added to the KGame object. Can even be NULL (then no player configuration is made)

Definition at line 284 of file kgamedialog.cpp.

Referenced by slotDefault().

void KGameDialog::setKGame KGame   g
 

Change the KGame object this dialog is used for.

Calls the KGameDialogConfig::setKGame implementation of all widgets that have been added by addConfigWidget

Parameters:
g  The new KGame object

Definition at line 298 of file kgamedialog.cpp.

References setAdmin(), and slotUnsetKGame().

Referenced by slotDefault().

void KGameDialog::submitToKGame   [virtual]
 

This will submit all configuration data to the KGame object.

Automatically called by slotApply and slotOk There is no need to replace this unless you want to add widgets which are not derived from those classes

Definition at line 325 of file kgamedialog.cpp.

Referenced by slotApply().

void KGameDialog::addChatWidget KGameDialogChatConfig   chat,
QVBox   parent = 0
 

Adds a KGameChat to the dialog.

If no parent is specified the game page will be used.

Parameters:
chat  The chat widget
parent  The parent of the chat widget. This MUST be an already added config widget. Note that the game page will be used if parent is 0.

Definition at line 168 of file kgamedialog.cpp.

References addConfigWidget().

Referenced by initDefaultDialog().

void KGameDialog::addConnectionList KGameDialogConnectionConfig *    c,
QVBox   parent = 0
 

Add a connection list to the dialog.

The list consists of a KLisBox containing all players in the current game (see KGame::playerList). The admin can "ban" players, ie kick them out of the game.

This is another not-really-config-config-widget. It just displays the connections and lets you ban players.

Parameters:
c  The KGameDialogConnectionConfig object
parent  The parent of the widget. If 0 the networkConfig page is used.

Definition at line 183 of file kgamedialog.cpp.

References addConfigWidget().

Referenced by initDefaultDialog().

QVBox * KGameDialog::addConfigPage KGameDialogConfig   widget,
const QString   title
 

Add a new page to the dialog.

The page will contain you new config widget and will have your provided title.

The widget will be reparented to this dialog. This also calls KGameDialogConfig::setKGame and KGameDialogConfig::setOwner.

Parameters:
widget  The new config widget
title  The title of the newly added page.
Returns:
The newly added page which contains your config widget.

Definition at line 218 of file kgamedialog.cpp.

References addConfigWidget().

Referenced by addGameConfig(), addMsgServerConfig(), addNetworkConfig(), and initDefaultDialog().

QVBox * KGameDialog::configPage ConfigOptions    which
 

Returns:
The QVBox of the given key, The key is from ConfigOptions Note that not all are supported yet

Definition at line 198 of file kgamedialog.cpp.

KGameDialogNetworkConfig * KGameDialog::networkConfig   const
 

Returns:
The default netowrk config. Note that this always returns 0 if you did not specify NetworkConfig in the constructor!

Definition at line 259 of file kgamedialog.cpp.

KGameDialogGeneralConfig * KGameDialog::gameConfig   const
 

Returns:
The default game config. Note that this always returns 0 if you did not specify GameConfig in the constructor!

Definition at line 257 of file kgamedialog.cpp.

void KGameDialog::addConfigWidget KGameDialogConfig   widget,
QWidget   parent
 

Add a config widget to the specified parent.

Usually you call addConfigPage for one widget and addConfigWidget for another to add it to the same page. Just use the returned page of addConfigPage.

Definition at line 229 of file kgamedialog.cpp.

References QWidget::reparent(), KGameDialogConfig::setAdmin(), KGameDialogConfig::setKGame(), KGameDialogConfig::setOwner(), QWidget::show(), and slotRemoveConfigWidget().

Referenced by addChatWidget(), addConfigPage(), and addConnectionList().

void KGameDialog::addNetworkConfig KGameDialogNetworkConfig *    netConf
 

Used to add the main network config widget in a new page.

Use this to make networkConfig return something useful.

Definition at line 151 of file kgamedialog.cpp.

References addConfigPage().

Referenced by initDefaultDialog().

void KGameDialog::addGameConfig KGameDialogGeneralConfig *    conf
 

Add the main game config widget in a new page.

Use this to make gameConfig return something useful.

Definition at line 142 of file kgamedialog.cpp.

References addConfigPage().

Referenced by initDefaultDialog().

void KGameDialog::addMsgServerConfig KGameDialogMsgServerConfig *    conf
 

Used to add the message server config widget in a new page.

Definition at line 160 of file kgamedialog.cpp.

References addConfigPage().

Referenced by initDefaultDialog().

void KGameDialog::initDefaultDialog ConfigOptions    initConfigs,
int    chatMsgId = 15432
[protected]
 

This is used to create a dialog containing all the default widgets.

You may want to use this if you just want to use your own configuration widgets which inherit the standard ones.

Note that if one of the widgets is NULL the default implementation will be used! (except the chat widget - you need to create it yourself as you have to provide a message id)

Parameters:
initConfigs  The widgets to be created
chatMsgId  The msgid for the chat config (only if specified in initConfigs) - see KGameDialogChatConfig

Definition at line 101 of file kgamedialog.cpp.

References addChatWidget(), addConfigPage(), addConnectionList(), addGameConfig(), addMsgServerConfig(), and addNetworkConfig().

Referenced by KGameDialog().

void KGameDialog::configureConfigWidgets   [protected]
 

Go through all config widgets and call their KGameDialogConfig::setKGame and KGameDialogConfig::setOwner implementation.

This function could be private and probably will be very soon. Don't use it yourself

void KGameDialog::slotOk   [protected, virtual, slot]
 

Called when the user clicks on Ok.

Calls slotApply and QDialog::accept()

Definition at line 278 of file kgamedialog.cpp.

References QDialog::accept(), and slotApply().

void KGameDialog::slotApply   [protected, virtual, slot]
 

Just calls submitToKGame().

Definition at line 262 of file kgamedialog.cpp.

References submitToKGame().

Referenced by slotOk().

void KGameDialog::slotDefault   [protected, virtual, slot]
 

Sets the default values for the configuration widgets.

Set these values by (e.g.) setDefaultMaxPlayers()

Deprecated:

Definition at line 267 of file kgamedialog.cpp.

References setKGame(), and setOwner().

void KGameDialog::slotUnsetKGame   [protected, slot]
 

Called when the KGame object is destroyed.

Calls setKGame(0) so that all widgets can disconnect their slots and so on.

Definition at line 322 of file kgamedialog.cpp.

Referenced by setKGame().

void KGameDialog::setAdmin bool    isAdmin [protected, slot]
 

Called when the ADMIN status of this KGame client changes.

See KGameNetwork::signalAdminStatusChanged

Parameters:
isAdmin  TRUE if this client is now the ADMIN otherwise FALSE

Definition at line 315 of file kgamedialog.cpp.

Referenced by setKGame().

void KGameDialog::slotRemoveConfigWidget QObject   configWidget [protected, slot]
 

Remove a config widget from the widget list.

See also:
QObject::destroyed

Definition at line 343 of file kgamedialog.cpp.

Referenced by addConfigWidget().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for libkdegames Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 10:06:38 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003