diff options
Diffstat (limited to 'libkdegames/kgame/dialogs/kgamedialog.h')
-rw-r--r-- | libkdegames/kgame/dialogs/kgamedialog.h | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/libkdegames/kgame/dialogs/kgamedialog.h b/libkdegames/kgame/dialogs/kgamedialog.h deleted file mode 100644 index 423f5de1..00000000 --- a/libkdegames/kgame/dialogs/kgamedialog.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - This file is part of the KDE games library - Copyright (C) 2001 Andreas Beckermann ([email protected]) - Copyright (C) 2001 Martin Heni ([email protected]) - - 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. -*/ - -// NAMING -// please follow these naming rules if you add/change classes: -// the main dialog is named KGameDialog and the base config widget -// KGameDialogConfig. All config widgets are named KGameDialogXYZConfig (where -// XYZ = the name of the config widget, like "general" or "network") and are -// inherited from KGameDialogConfig. - -#ifndef __KGAMEDIALOG_H__ -#define __KGAMEDIALOG_H__ - -#include <kdialogbase.h> -#include <kdemacros.h> -class TQGridLayout; -class TQVBoxLayout; -class TQListBoxItem; - -class KGame; -class KPlayer; -class KGamePropertyBase; - -class KGameDialogConfig; -class KGameDialogGeneralConfig; -class KGameDialogNetworkConfig; -class KGameDialogMsgServerConfig; -class KGameDialogChatConfig; -class KGameDialogConnectionConfig; - -class KGameDialogPrivate; -/** - * TODO: rewrite entire documentation. 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): - * \code - * KGameDialog dlg(kgame, i18n("New Game"), localPlayer, this, true, - * ID_CHAT); - * dlg.setDefaultNetworkInfo(port, host); // AB: obsolete! - * dlg.exec(); - * \endcode - * This will create a default modal dialog with the title "New Game". You don't - * have to do more than this. - * - * @short Main configuration dialog for KGame - * @author Andreas Beckermann <[email protected]> - **/ -class KDE_EXPORT KGameDialog : public KDialogBase -{ - Q_OBJECT - TQ_OBJECT -public: - - enum ConfigOptions - { - NoConfig = 0, - ChatConfig = 1, - GameConfig = 2, - NetworkConfig = 4, - MsgServerConfig = 8, - BanPlayerConfig = 16, - AllConfig = 0xffff - }; - - /** - * Create an empty KGameDialog. You can add widgets using - * addConfigPage. - * @param g The KGame object of this game - * @param owner The KPlayer object who is responsible for this - * dialog, aka "the local player" - * @param title The title of the dialog - see KDialog::setCaption - * @param parent The parent of the dialog - * @param modal Whether the dialog is modal or not - **/ - KGameDialog(KGame* g, KPlayer* owner, const TQString& title, - TQWidget* parent, bool modal = false); - - /** - * Create a KGameDialog with the standard configuration widgets. This - * creates the following widgets: - * <ul> - * <li> KGameDialogGeneralConfig - * <li> KGameDialogNetworkConfig - * <li> KGameDialogMsgServerConfig - * <li> KGameDialogChatConfig - * <li> KGameDialogConnectionConfig - * </ul> - * 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 - * @param g The KGame object of this game - * @param owner The KPlayer object who is responsible for this - * dialog, aka "the local player" - * @param title The title of the dialog - see KDialog::setCaption - * @param parent The parent of the dialog - * @param modal Whether the dialog is modal or not - * @param initConfigs whether the default KGameDialogConfig widgets - * shall be created using initDefaultDialog. Use false if you want - * to use custom widgets. - * @param chatMsgId The ID of Chat messages. See KGameChat. Unused - * if initConfigs = false - **/ - KGameDialog(KGame* g, KPlayer* owner, const TQString& title, - TQWidget* parent, long initConfigs = AllConfig, - int chatMsgId = 15432, bool modal = false); - - virtual ~KGameDialog(); - - - /** - * Change the owner of the dialog. This will be used as the fromPlayer in - * KGameChat and will receive the entered player name. - * @param 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 - * @param 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) - **/ - void setOwner(KPlayer* owner); - - /** - * Change the KGame object this dialog is used for. - * - * Calls the KGameDialogConfig::setKGame implementation of all - * widgets that have been added by addConfigWidget - * @param g The new KGame object - **/ - void setKGame(KGame* g); - - /** - * 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 - **/ - virtual void submitToKGame(); - - /** - * Adds a KGameChat to the dialog. If no parent is specified the - * game page will be used. - * @param chat The chat widget - * @param 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. - **/ - void addChatWidget(KGameDialogChatConfig* chat, TQVBox* 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. - * @param c The KGameDialogConnectionConfig object - * @param parent The parent of the widget. If 0 the networkConfig - * page is used. - **/ - void addConnectionList(KGameDialogConnectionConfig* c, TQVBox* parent = 0); - - /** - * 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. - * @param widget The new config widget - * @param title The title of the newly added page. - * @return The newly added page which contains your config widget. - **/ - TQVBox* addConfigPage(KGameDialogConfig* widget, const TQString& title); - - /** - * @return The TQVBox of the given key, The key is from ConfigOptions - * Note that not all are supported yet - **/ - TQVBox *configPage(ConfigOptions which); - - /** - * @return The default netowrk config. Note that this always returns 0 if - * you did not specify NetworkConfig in the constructor! - **/ - KGameDialogNetworkConfig* networkConfig() const; - - /** - * @return The default game config. Note that this always returns 0 if - * you did not specify GameConfig in the constructor! - **/ - KGameDialogGeneralConfig* gameConfig() const; - - /** - * 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. - **/ - void addConfigWidget(KGameDialogConfig* widget, TQWidget* parent); - - /** - * Used to add the main network config widget in a new page. Use this to - * make networkConfig return something useful. - **/ - void addNetworkConfig(KGameDialogNetworkConfig* netConf); - - /** - * Add the main game config widget in a new page. Use this to make - * gameConfig return something useful. - **/ - void addGameConfig(KGameDialogGeneralConfig* conf); - - /** - * Used to add the message server config widget in a new page. - **/ - void addMsgServerConfig(KGameDialogMsgServerConfig* conf); - -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) - * @param initConfigs The widgets to be created - * @param chatMsgId The msgid for the chat config (only if specified in - * initConfigs) - see KGameDialogChatConfig - **/ - void initDefaultDialog(ConfigOptions initConfigs, int chatMsgId = 15432); - - /** - * 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 configureConfigWidgets(); - -protected slots: - /** - * Called when the user clicks on Ok. Calls slotApply and - * TQDialog::accept() - **/ - virtual void slotOk(); - - /** - * Just calls submitToKGame() - **/ - virtual void slotApply(); - - /** - * Sets the default values for the configuration widgets. Set these - * values by (e.g.) setDefaultMaxPlayers() - * @deprecated - **/ - virtual void slotDefault(); - - /** - * Called when the KGame object is destroyed. Calls setKGame(0) so - * that all widgets can disconnect their slots and so on. - **/ - void slotUnsetKGame(); - - /** - * Called when the ADMIN status of this KGame client changes. See - * KGameNetwork::signalAdminStatusChanged - * @param isAdmin TRUE if this client is now the ADMIN otherwise FALSE - **/ - void setAdmin(bool isAdmin); - - /** - * Remove a config widget from the widget list. - * @see TQObject::destroyed - **/ - void slotRemoveConfigWidget(TQObject* configWidget); - -private: - void init(KGame*, KPlayer*); - -private: - KGameDialogPrivate* d; -}; - -#endif |