• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • libkdegames
 

libkdegames

kgameio.h

00001 /*
00002     This file is part of the KDE games library
00003     Copyright (C) 2001 Martin Heni (martin@heni-online.de)
00004     Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de)
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License version 2 as published by the Free Software Foundation.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018     Boston, MA 02110-1301, USA.
00019 */
00020 /*
00021     $Id$
00022 */
00023 #ifndef __KGAMEIO_H__
00024 #define __KGAMEIO_H__
00025 
00026 #include <tqstring.h>
00027 #include <tqobject.h>
00028 #include <kdemacros.h>
00029 class KPlayer;
00030 class KGame;
00031 class KProcess;
00032 
00055 class KDE_EXPORT KGameIO : public TQObject
00056 {
00057   Q_OBJECT
00058   TQ_OBJECT
00059 
00060 public:
00064    KGameIO();
00065    KGameIO(KPlayer*);
00066    virtual ~KGameIO();
00067 
00071    void Debug();
00072 
00076    enum IOMode {GenericIO=1,KeyIO=2,MouseIO=4,ProcessIO=8,ComputerIO=16};
00083    virtual int rtti() const = 0;  // Computer, network, local, ...
00084    
00090    KPlayer *player() const {return mPlayer;}
00091 
00096    KGame* game() const;
00097 
00105    void setPlayer(KPlayer *p) {mPlayer=p;}
00106 
00116    virtual void initIO(KPlayer *p);
00117 
00127     virtual void notifyTurn(bool b);
00128 
00132     bool sendInput(TQDataStream& stream, bool transmit = true, TQ_UINT32 sender = 0);
00133 
00134 signals:
00166     void signalPrepareTurn(TQDataStream & stream, bool turn, KGameIO *io, bool * send);
00167 
00168 
00169 private:
00170    KPlayer *mPlayer;
00171 };
00172 
00178 class KDE_EXPORT KGameKeyIO : public KGameIO
00179 {
00180   Q_OBJECT
00181   TQ_OBJECT
00182 
00183 public:
00204     KGameKeyIO(TQWidget *parent);
00205     virtual ~KGameKeyIO();
00206 
00212     virtual int rtti() const;
00213 
00214 signals:
00236       void signalKeyEvent(KGameIO *io,TQDataStream &stream,TQKeyEvent *m,bool *eatevent);
00237 
00238 protected:
00242        bool eventFilter( TQObject *o, TQEvent *e );
00243 };
00244 
00250 class KDE_EXPORT KGameMouseIO : public KGameIO
00251 {
00252   Q_OBJECT
00253   TQ_OBJECT
00254     
00255 public:
00271     KGameMouseIO(TQWidget *parent,bool trackmouse=false);
00272     virtual ~KGameMouseIO();
00273     
00279     void setMouseTracking(bool b);
00285     virtual int rtti() const; 
00286 
00287 signals:
00307       void signalMouseEvent(KGameIO *io,TQDataStream &stream,TQMouseEvent *m,bool *eatevent);
00308 
00309 protected:
00313       bool eventFilter( TQObject *o, TQEvent *e );
00314 
00315 };
00316 
00317 
00326 class KDE_EXPORT KGameProcessIO : public KGameIO
00327 {
00328   Q_OBJECT
00329   TQ_OBJECT
00330     
00331 public:
00347     KGameProcessIO(const TQString& name);
00348 
00352     virtual ~KGameProcessIO();
00353 
00359     int rtti() const;
00360     
00371     void sendMessage(TQDataStream &stream,int msgid, TQ_UINT32 receiver, TQ_UINT32 sender);
00372 
00383     void sendSystemMessage(TQDataStream &stream, int msgid, TQ_UINT32 receiver, TQ_UINT32 sender);
00384 
00393     void initIO(KPlayer *p);
00394 
00404     virtual void notifyTurn(bool turn);
00405 
00406   protected:
00410     void sendAllMessages(TQDataStream &stream,int msgid, TQ_UINT32 receiver, TQ_UINT32 sender, bool usermsg);
00411 
00412   protected slots:
00416     void receivedMessage(const TQByteArray& receiveBuffer);
00417 
00418   
00419 signals:
00443   void signalProcessQuery(TQDataStream &stream,KGameProcessIO *me);
00444 
00455   void signalIOAdded(KGameIO *game,TQDataStream &stream,KPlayer *p,bool *send);
00456 
00457 
00458 protected:
00459 
00460 private:
00461   class KGameProcessIOPrivate;
00462   KGameProcessIOPrivate* d;
00463 };
00464 
00481 class KDE_EXPORT KGameComputerIO : public KGameIO
00482 {
00483   Q_OBJECT
00484   TQ_OBJECT
00485     
00486 public:
00491     KGameComputerIO();
00492     KGameComputerIO(KPlayer* player);
00493     ~KGameComputerIO();
00494 
00495     int rtti() const;
00496 
00501     void setReactionPeriod(int advanceCalls);
00502     int reactionPeriod() const;
00503 
00507     void setAdvancePeriod(int ms);
00508 
00509     void stopAdvancePeriod();
00510 
00523     void pause(int calls = -1);
00524 
00529     void unpause();
00530     
00531 public slots:
00547     virtual void advance();
00548   
00549 signals:
00554     void signalReaction();
00555 
00556 protected:
00560     virtual void reaction();
00561 
00562 private:
00563     void init();
00564  
00565 private:
00566     class KGameComputerIOPrivate;
00567     KGameComputerIOPrivate* d;
00568 };
00569 
00570 
00571 #endif

libkdegames

Skip menu "libkdegames"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

libkdegames

Skip menu "libkdegames"
  • libkdegames
Generated for libkdegames by doxygen 1.7.1
This website is maintained by Timothy Pearson.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. |