www.pudn.com > Five_QT_by_CT.rar > Main.h


#ifndef MAIN_HEADER
#define MAIN_HEADER

#include "pub.h"
#include "defs.h"
#include "gamelogic.h"

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include  
#include 


class Main;



//棋盘类,显示棋盘和棋子
class ChessBoard: public QWidget
{
	Q_OBJECT
public:
      ChessBoard(QWidget *,char *);
    
private:
      	QPixmap *mChessboardPixmap;
      	QPixmap *mWhiteChessPixmap;
      	QPixmap *mBlackChessPixmap;
	QPushButton *mStartButton;
	QLabel *mGameStatusLabel;
	QLabel *mMySideLabel;
	QLabel *mWhiteLabel;
	QLabel *mBlackLabel;
	QLabel *mGameInfoLabel;		
	GameLogic	mGameLogic; 
      	QPoint mPosition;
      	QSize mSize;
      	QSize mChessSize;
      	QPoint mChessPoint;
	DeskTableNode mMyDesk;
	QString mMyside; //记录自己的方向
	QString mMyID;
	
	int mLeftMargin, mRightMargin, mTopMargin, mBottomMargin;
 
	int mTurn;
private:
	
	void setTurn(int i){mTurn=i;};
	int getTurn(){return mTurn;}
	QPoint convertMouseToGrid(const QPoint p);
	QPoint convertGridToMouse(const QPoint g);
	void clearBoard();
	void PutChessToFace( QPoint p);

	void HandleAgree();
	void HandlePutchess( Message );
	void HandleChangeseat( Message );
	void HandleUpdatedesk( Message );
	void HandleInvite();
	

protected:    
	void paintEvent(QPaintEvent*); 
	void mousePressEvent(QMouseEvent *);
	
public:
	void setPos(QPoint p);
	void setSize(QSize s);
	void setMyside(QString );
	void init();


signals:
	void sendmsgtomain(Message msg);
public slots:
	void sdisposemsg(Message msg);
	void sstartclicked();
	
};







//聊天部分,部件
class ChatBox: public QWidget
{
 Q_OBJECT
 public:
   ChatBox(QWidget *parent,char *name);
   void setPos(QPoint p)
          {
             mPosition=p;
          }
      void setSize(QSize s)
          {
             mSize=s;
          }
    void init();
 private:
    QLineEdit *mChatLineEdit;
    QListBox   *mChatListBox;
    QPoint mPosition;
    QSize mSize;
	void ShowMessage( QString);
signals:
	void sendmsgtomain(Message msg);
	
public slots:
	void sshowchat(Message msg);
	void schatlinereturned();
};










class Main: public QWidget
{
 Q_OBJECT
 public:
   Main(QWidget *parent,char *name);
   QPoint getChatBoxPos()
          {
             return mChatBoxPos;
          }
   QPoint getChessBoardPos()
          {
             return mChessBoardPos;
          }
  
   QSize getChatBoxSize()
         {
             return mChatBoxSize;
         }
  QSize getChessBoardSize()
         {
             return mChessBoardSize;
         }
	Main *getThis() {return this;}
   
 private :
   	QPoint mPoint;//主窗口的位置
   	QSize mSize;//主窗口的大小;
   	//窗口部件的位置,大小
   	QPoint mChatBoxPos,mChessBoardPos;
   	QSize mChatBoxSize,mChessBoardSize;

	ChatBox *mChatBox;
   	ChessBoard *mChessBoard;
	

   	
	

public slots:
	void sdisposemsg(Message msg);

signals:
	void sendmsgtoboard(Message );
	void sendmsgtohall(Message );
	void sendmsgtochat(Message );

	
	 
};




#endif