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 Member Functions

 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)
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 Member Functions

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(), and slotUnsetKGame().

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.

References setKGame().

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 Sun Apr 18 06:22:56 2004 by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2003