TicTacToeAppView.h
上传用户:laixiong
上传日期:2007-03-11
资源大小:2994k
文件大小:3k
源码类别:

Symbian

开发平台:

C/C++

  1. /*
  2. * ==============================================================================
  3. *  Name        : TicTacToeAppView.h
  4. *  Part of     : TicTacToe
  5. *  Interface   : 
  6. *  Description : 
  7. *  Version     : 
  8. *
  9. *  Copyright (c) 2005 Nokia Corporation.
  10. * ==============================================================================
  11. */
  12. #ifndef __TICTACTOE_APPVIEW_H__
  13. #define __TICTACTOE_APPVIEW_H__
  14. //  INCLUDES
  15. #include "TicTacToeBoard.h"
  16. #include <coecntrl.h>
  17. // CLASS DECLARATION
  18. /**
  19. * An instance of the Application View object for the TicTacToe application.
  20. */
  21. class CTicTacToeAppView : public CCoeControl
  22.     {
  23.     public:
  24.         /**
  25.         * Create a CTicTacToeAppView object, which will draw itself to aRect.
  26.         * @param aRect the rectangle this view will be drawn to
  27.         * @result a pointer to the created instance of CTicTacToeAppView
  28.         */
  29.         static CTicTacToeAppView* NewL(const TRect& aRect, TInt aGraphicsSet);
  30.         /**
  31.         * Destroy the object.
  32.         */
  33.          ~CTicTacToeAppView();
  34.     public: // New functions
  35.         /**
  36.         * Load a set of graphics.
  37.         * @param aGraphicsSet Which set of graphics to load.
  38.         */
  39.         void LoadIconsL(TInt aGraphicsSet);
  40.         /**
  41.         * Start a new game.
  42.         */
  43.         void NewGame();
  44.     public:  // from CCoeControl
  45.         /**
  46.         * Draw this CTicTacToeAppView to the screen.
  47.         * @param aRect the rectangle of this view that needs updating
  48.         */
  49.         void Draw(const TRect& aRect) const;
  50.       
  51.         /**
  52.         * Handle any user keypresses.
  53.         * @param aKeyEvent holds the data for the event that occurred
  54.         * @param aType holds the type of key event that occured
  55.         * @result a TKeyResponse indicating if the key was consumed or not
  56.         */
  57.         TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
  58.     
  59.         /**
  60.         * Handle a change in the size of the control.
  61.         */
  62.      void SizeChanged();
  63.     private:
  64.         /**
  65.         * Perform the second phase construction of a CTicTacToeAppView object.
  66.         * @param aRect the rectangle this view will be drawn to
  67.         */
  68.         void ConstructL(const TRect& aRect, TInt aGraphicsSet);
  69.         /**
  70.         * Perform the first phase of two phase construction.
  71.         */
  72.         CTicTacToeAppView();
  73.         /**
  74.         * Set the sizes of the scalable icons.
  75.         */
  76.         void SetIconSizes();
  77.     private:    // Data
  78.         // The game board
  79.         TTicTacToeBoard iBoard;
  80.         // Player whose turn it is
  81.         TTicTacToePlayer iPlayer;
  82.         // Scalable icons
  83.         CFbsBitmap* iBitmapGrid;
  84.         CFbsBitmap* iBitmapGridMask;
  85.         CFbsBitmap* iBitmapNought;
  86.         CFbsBitmap* iBitmapNoughtMask;
  87.         CFbsBitmap* iBitmapCross;
  88.         CFbsBitmap* iBitmapCrossMask;
  89.         // Rectangle the board occupies
  90.         TRect iBoardRect;
  91.         // Offset of the icons for the cell contents
  92.         TPoint iCellMargin;
  93.         // Size of the icons for the cell contents
  94.         TSize iCellSize;
  95.     };
  96. #endif // __TICTACTOE_APPVIEW_H__
  97. // End of File