ShapeApp.cpp
上传用户:wenshuihe
上传日期:2007-01-14
资源大小:10k
文件大小:2k
源码类别:

BREW编程

开发平台:

Visual C++

  1. // ShapeApp.cpp
  2. //
  3. #include "ShapeApp.h"
  4. #include "SHAPEAPP.BID"
  5. #include "myShape.h"
  6. #include "myRect.h"
  7. #include "myCirc.h"
  8. #include "myPoint.h"
  9. #include "myList.h"
  10. extern "C"
  11. {
  12. int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
  13. {
  14. *ppObj = NULL;
  15. if(ClsId == AEECLSID_SHAPEAPP)
  16. {
  17. if(AEEApplet_New(sizeof(ShapeApp), ClsId, pIShell,po,(IApplet**)ppObj,
  18. (AEEHANDLER)ShapeApp::HandleEvent,(PFNFREEAPPDATA)ShapeApp::freeAppData))
  19. {
  20. if(ShapeApp::initAppData((IApplet *) *ppObj))
  21. {
  22. return (AEE_SUCCESS);
  23. }
  24.       }
  25.       
  26. }
  27. return (EFAILED);
  28. }
  29. }
  30. boolean ShapeApp::HandleEvent(ShapeApp * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
  31. {
  32. return pi->onEvent(eCode, wParam, dwParam);
  33. }
  34. boolean ShapeApp::initAppData(IApplet * pIApplet)
  35. {
  36. return ((ShapeApp *) pIApplet)->initData();
  37. }
  38. void ShapeApp::freeAppData(ShapeApp * pApp)
  39. {
  40. pApp->freeData();
  41. }
  42. boolean ShapeApp::initData()
  43. {
  44. m_pShapes = new CList();
  45. return TRUE;
  46. }
  47. boolean ShapeApp::onEvent(AEEEvent evt, uint16 wParam, uint32 dwParam)
  48. {
  49. switch(evt)
  50. {
  51. case EVT_APP_START:
  52. {
  53. CShape *ps = new CRect(10,10,30,20,BLUE);
  54. m_pShapes->insert(ps);
  55. ps = new CCirc(20, CPoint(20,40),YELLOW);
  56. m_pShapes->insert(ps);
  57. m_pShapes->update(m_pIShell);
  58. return TRUE;
  59. }
  60. case EVT_APP_SUSPEND:
  61. return TRUE;
  62. case EVT_APP_RESUME:
  63. return TRUE;
  64. case EVT_KEY:
  65. {
  66. switch(wParam)
  67. {
  68. case AVK_CLR:
  69. return FALSE;
  70. case AVK_UP:
  71. case AVK_DOWN:
  72. case AVK_LEFT:
  73. case AVK_RIGHT:
  74. case AVK_SELECT:
  75. break;
  76. default:
  77. break;
  78. }
  79. break;
  80. }
  81. case EVT_COMMAND:
  82. {
  83. break;
  84. }
  85. case EVT_APP_STOP:
  86. return TRUE;
  87. default:
  88.          break;
  89.    }
  90.    return FALSE;
  91. }
  92. void ShapeApp::freeData()
  93. {
  94. delete m_pShapes;
  95. m_pShapes = NULL;
  96. }