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/kbgfibschat.h

275 lines
5.4 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 __KBGCHAT_H
#define __KBGCHAT_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kchat.h>
class TQString;
class TQPoint;
class TQListBox;
class TQListBoxItem;
class TQPopupMenu;
class KTabCtl;
class KAction;
class KBgChatPrivate;
/**
* Class of the FIBS Chat Windows
*
* This class inherits from KChat and represents a widget for a chat
* window. It has rich text entries and supports a powerful context
* menu.
*
* @short An extension of the KGame chat window for the FIBS engine
* @author Jens Hoefkens <jens@hoefkens.com>
*
*/
class KBgChat : public KChat
{
Q_OBJECT
public:
/**
* Constructor
*/
KBgChat(TQWidget *parent = 0, const char *name = 0);
/**
* Destructor
*/
virtual ~KBgChat();
public slots:
/**
* Catch the RMB signal to display a context menu at p. The
* menu shows entries specific to the selected item i.
*/
void contextMenu(TQListBoxItem *i, const TQPoint &p);
/**
* Add chat window specific pages to the setup dialog
*/
void getSetupPages(KTabCtl *nb, int space);
/**
* Save and apply the changes made in the setup dialog
*/
void setupOk();
/**
* Do not save any of the changes made in the setup dialog
*/
void setupCancel();
/**
* Load default values from the setup dialog
*/
void setupDefault();
/**
* Player name has logges out. Remove name from the chat
* window combo box if necessary.
*/
void deletePlayer(const TQString &name);
/**
* Process and append msg to the text.
*/
void handleData(const TQString &msg);
/**
* Restore previously saved setting or provides defaults
*/
void readConfig();
/**
* Save current settings
*/
void saveConfig();
/**
* Set the opponents name and select whisper
*/
void startGame(const TQString &name);
/**
* Game is over. We won (or not) and have been playing (or not)
*/
void endGame();
/**
* Start talking to name
*/
void fibsTalk(const TQString &name);
signals:
/**
* Emits a string that can be sent to the server
*/
void fibsCommand(const TQString &cmd);
/**
* Request an invitation of player
*/
void fibsRequestInvitation(const TQString &player);
/**
* Text of a personal message
*/
void personalMessage(const TQString &msg);
/**
* Dialog is visible or not
*/
void windowVisible(bool v);
protected:
/**
* Catch show events, so the engine's menu can be updated.
*/
virtual void showEvent(TQShowEvent *e);
/**
* Catch hide events, so the engine's menu can be updated.
*/
virtual void hideEvent(TQHideEvent *e);
/**
* Create a custom ListBoxItem that contains a formated string
* for the chat window.
*/
virtual TQListBoxItem* layoutMessage(const TQString& fromName, const TQString& text);
protected slots:
/**
* Invite the selected player using the dialog
*/
void slotInviteD();
/**
* Invite the selected player to resume a match
*/
void slotInviteR();
/**
* Invite the selected player to an unlimited match
*/
void slotInviteU();
/**
* Invite the selected player to a 1 point match
*/
void slotInvite1();
/**
* Invite the selected player to a 2 point match
*/
void slotInvite2();
/**
* Invite the selected player to a 3 point match
*/
void slotInvite3();
/**
* Invite the selected player to a 4 point match
*/
void slotInvite4();
/**
* Invite the selected player to a 5 point match
*/
void slotInvite5();
/**
* Invite the selected player to a 6 point match
*/
void slotInvite6();
/**
* Invite the selected player to a 7 point match
*/
void slotInvite7();
/**
* Request information on the selected player
*/
void slotInquire();
/**
* Copy the selected line to the clipboard
*/
void slotCopy();
/**
* Talk to the selected player
*/
void slotTalk();
/**
* Add the selected player to the gag list
*/
void slotGag();
/**
* Remove the selected player from the gag list
*/
void slotUngag();
/**
* Clear the gag list
*/
void slotCleargag();
/**
* Toggle everybody silent
*/
void slotSilent();
/**
* Slot for return pressed. Time to send the text to FIBS.
*/
void handleCommand(int id, const TQString& msg);
private:
KBgChatPrivate *d;
};
#endif // __KBGCHAT_H