You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/kbackgammon/engines/fibs/kplayerlist.h

300 lines
5.5 KiB

/* Yo Emacs, this -*- C++ -*-
Copyright (C) 1999-2001 Jens Hoefkens
jens@hoefkens.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
$Id$
*/
#ifndef __KPLAYERLIST_H
#define __KPLAYERLIST_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <klistview.h>
class KTabCtl;
class KFibsPlayerListPrivate;
/**
*
* A class that keeps track of players on the server. The server is flooding
* us with user information. At any given time we are able to have an current
* list of all loged-in players and their status.
*
* @short The FIBS backgammon engine player list
* @author Jens Hoefkens <jens@hoefkens.com>
*
*/
class KFibsPlayerList : public KListView
{
Q_OBJECT
public:
/**
* Enumerate player status
*/
enum PStatus {Ready, Away, Blind, MaxStatus};
/**
* Enumerate the different columns of the list
*/
enum {Player, Opponent, Watches, Status, Rating, Experience,
Idle, Time, Host, Client, Email, LVEnd};
/**
* Constructor
*/
KFibsPlayerList(TQWidget *parent = 0, const char *name = 0);
/**
* Destructor
*/
virtual ~KFibsPlayerList();
/**
* Clear the list and reset the client counter
*/
virtual void clear();
public slots:
/**
* Remove the player with the name given by the first word
*/
void deletePlayer(const TQString &player);
/**
* Change/Add the entry for the given player
*/
void changePlayer(const TQString &line);
/**
* Enables list redraws after an update
*/
void stopUpdate();
/**
* Read the UI settings from disk
*/
void readConfig();
/**
* Read the column info from disk
*/
void readColumns();
/**
* Restore settings from previously stored settings
*/
void saveConfig();
/**
* Change the status of a player
*/
void changePlayerStatus(const TQString &player, int stat, bool flag);
/**
* Fills the playerlist page into the notebook
*/
virtual void getSetupPages(KTabCtl *nb, int space);
/**
* Save setting changes
*/
void setupOk();
/**
* Setup changes have been cancelled
*/
void setupCancel();
/**
* Set default settings
*/
void setupDefault();
/**
* Set our own name. This allows us to special case the context
* menu.
*/
void setName(const TQString &name);
/**
* Return the column index
*/
int cIndex(int col);
protected:
/**
* Catch show events, so the engine's menu can be update.
*/
virtual void showEvent(TQShowEvent *e);
/**
* Catch hide events, so the engine's menu can be update.
*/
virtual void hideEvent(TQHideEvent *e);
protected slots:
/**
* Double click handler, requests information on a player
*/
void getPlayerInfo(TQListViewItem *i, const TQPoint &p, int col);
/**
* Display a popup menu for the current player
*/
void showContextMenu(KListView *, TQListViewItem *, const TQPoint &);
/**
* Reload the whole list
*/
void slotReload();
/**
* Upate the caption
*/
void updateCaption();
/**
* Watch user
*/
void slotWatch();
/**
* Update line of user
*/
void slotUpdate();
/**
* Request information on user
*/
void slotInfo();
/**
* Look at user
*/
void slotLook();
/**
* Send an email to user
*/
void slotMail();
/**
* Stop watching
*/
void slotUnwatch();
/**
* Blind user
*/
void slotBlind();
/**
* Talk to user
*/
void slotTalk();
/**
* Invite using the dialog
*/
void slotInviteD();
/**
* Invite to a 1 point match
*/
void slotInvite1();
/**
* Invite to a 2 point match
*/
void slotInvite2();
/**
* Invite to a 3 point match
*/
void slotInvite3();
/**
* Invite to a 4 point match
*/
void slotInvite4();
/**
* Invite to a 5 point match
*/
void slotInvite5();
/**
* Invite to a 6 point match
*/
void slotInvite6();
/**
* Invite to a 7 point match
*/
void slotInvite7();
/**
* Invite to resume a saved match
*/
void slotInviteR();
/**
* Invite to an unlimited match
*/
void slotInviteU();
signals:
/**
* Send a command to the server
*/
void fibsCommand(const TQString &);
/**
* Initiate an invitation of a player
*/
void fibsInvite(const TQString &);
/**
* Request talking to player user
*/
void fibsTalk(const TQString &);
/**
* Allow the engine's menu to be updated
*/
void windowVisible(bool);
private:
KFibsPlayerListPrivate *d;
};
#endif // __KPLAYERLIST_H