TetrisAppView.cpp
上传用户:snevogroup
上传日期:2008-06-06
资源大小:432k
文件大小:3k
源码类别:

Symbian

开发平台:

C/C++

  1. #include <eikmenub.h>
  2. #include <eikspane.h>
  3. #include <eikbtgpc.h>
  4. #include <eiktbar.h>
  5. #include "TetrisAppView.h"
  6. #include "Tetris.hrh"
  7. #include "CSplash.h"
  8. // construct and destruct
  9. // NewL()
  10. CTetrisAppView* CTetrisAppView::NewL(const TRect& aRect)
  11. {
  12. CTetrisAppView* self = NewLC(aRect);
  13. CleanupStack::Pop(self);
  14. return self;
  15. }
  16. // NewLC()
  17. CTetrisAppView* CTetrisAppView::NewLC(const TRect& aRect)
  18. {
  19. CTetrisAppView* self = new (ELeave) CTetrisAppView();
  20. CleanupStack::PushL(self);
  21. self->ConstructL(aRect);
  22. return self;
  23. }
  24. // CTetrisAppView()
  25. CTetrisAppView::CTetrisAppView()
  26. {
  27. }
  28. //~CTetrisAppView()
  29. CTetrisAppView::~CTetrisAppView()
  30. {
  31. delete iSplash;
  32. iSplash = NULL;
  33. }
  34. // ConstructL()
  35. void CTetrisAppView::ConstructL(const TRect& aRect)
  36. {
  37. // Create a window for this application view
  38.     CreateWindowL();
  39.     // Set the windows size
  40.     SetRect(aRect);
  41. MEikAppUiFactory* f = CEikonEnv::Static()->AppUiFactory();
  42. iStatusPane = f->StatusPane();
  43. iToolBar = f->ToolBar();
  44.     // Activate the window, which makes it ready to be drawn
  45.     ActivateL();
  46. if( iToolBar )
  47. {
  48. iToolBar->MakeVisible( EFalse );
  49. iToolBar->SetCommandL( 0, ECommand1, _L("Exitnfullscreen") );
  50. }
  51. if( iStatusPane )
  52. iStatusPane->MakeVisible( EFalse );
  53. SetExtentToWholeScreen();
  54. iFullScreen = 1;
  55. // create the Splash
  56. iSplash = CSplash::NewL();
  57. iSplash->iAppView = this;
  58. iSplash->StartTime();
  59. }
  60. ///////////////////////////////////////////////////////////////
  61. // Method
  62. // Draw()
  63. void CTetrisAppView::Draw(const TRect&) const
  64. {
  65. CWindowGc& gc = SystemGc();
  66. TRect rect = Rect();
  67. if(iSplash->iCount < 9)
  68. {
  69. iSplash->Show(gc, rect);
  70. //DrawNow();
  71. }
  72. else
  73. {
  74. gc.Clear();
  75. rect.Shrink(10, 10);
  76. gc.DrawRect(rect);
  77. }
  78.     
  79. }
  80. // Command()
  81. void CTetrisAppView::Command(TInt aCommand)
  82. {
  83. if( aCommand == ECommand1 )
  84. {
  85. iFullScreen ^= 1;
  86. if( iFullScreen )
  87. {
  88. if( iToolBar )
  89. {
  90. iToolBar->SetCommandL( 0, ECommand1, _L("Exitnfullscreen") );
  91. iToolBar->MakeVisible( EFalse );
  92. }
  93. if( iStatusPane )
  94. {
  95. iStatusPane->MakeVisible( EFalse );
  96. }
  97. SetExtentToWholeScreen();
  98. }
  99. else
  100. {
  101. if( iToolBar )
  102. {
  103. iToolBar->SetCommandL( 0, ECommand1, _L("Fullscreen") );
  104. iToolBar->MakeVisible( ETrue );
  105. iToolBar->DrawNow();
  106. }
  107. if( iStatusPane )
  108. {
  109. iStatusPane->MakeVisible( ETrue );
  110. }
  111. TRect rect = CEikonEnv::Static()->EikAppUi()->ClientRect();
  112. SetPosition( rect.iTl );
  113. TSize size = rect.Size();
  114. // make even width
  115. // odd width CFbsBitmap has unwanted padding bytes
  116. //size.iWidth &= 0xfffffffe;
  117. SetSize( size );
  118. }
  119. }
  120. }
  121. void CTetrisAppView::SetState(TState aState)
  122. {
  123. iState = aState;
  124. }