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

Symbian

开发平台:

C/C++

  1. #include <eikenv.h>
  2. #include "CSplash.h"
  3. #include <images.mbg>
  4. // construct and destruct
  5. // NewL()
  6. CSplash* CSplash::NewL(CWindowGc& aGc, RWindow& aWindow)
  7. {
  8. CSplash* self = new (ELeave) CSplash(aGc, aWindow);
  9. CleanupStack::PushL(self);
  10. self->ConstructL();
  11. CleanupStack::Pop(self);
  12. return self;
  13. }
  14. CSplash::CSplash(CWindowGc& aGc, RWindow& aWindow)
  15. : iGc( aGc )
  16. , iWindow( aWindow )
  17. {}
  18. // ~CSplash()
  19. CSplash::~CSplash()
  20. {
  21. delete ibitmap;
  22. ibitmap = NULL;
  23. }
  24. // ConstuctL()
  25. void CSplash::ConstructL()
  26. {
  27. // load the bitmap from an .mbm file
  28. _LIT(KPathName, "\System\Apps\Tetris\images.mbm");
  29. ibitmap = CEikonEnv::Static()->CreateBitmapL(KPathName, EMbmImagesLogo);
  30. iCount = -11;
  31. }
  32. ///////////////////////////////////////////////////////////////////////
  33. // Other method
  34. // Show() @return 1 -- keep running else stop 
  35. TBool CSplash::Draw()
  36. {
  37. if(iCount == 0)
  38. User::After(1000000);
  39. ++iCount;
  40. if(iCount < 11)
  41. {
  42. iGc.Activate( iWindow );
  43. iGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
  44. iGc.SetBrushColor(KRgbBlack);
  45. iGc.Clear();
  46. if(iCount < 0)
  47. iGc.SetFadingParameters(0,  iCount*25);
  48. else
  49. iGc.SetFadingParameters(0, 255 - iCount*25);
  50. iGc.SetFaded(ETrue);
  51. iGc.BitBlt(TPoint(20, 60), ibitmap);
  52. iGc.Deactivate();
  53. }
  54. else
  55. {
  56. User::After(100000);
  57. iGc.Activate( iWindow );
  58. iGc.SetFaded(EFalse);
  59. iGc.Deactivate();
  60. iCount = -11;
  61. return 0;
  62. }
  63. return 1;
  64. }