MainMenuWnd.c
Upload User: shyhai1508
Upload Date: 2007-06-11
Package Size: 48k
Code Size: 2k
Category:

BREW

Development Platform:

Visual C++

  1. #include "MainMenuWnd.h" 
  2. #include "pfly.h"
  3. #include "commondef.h"
  4. #include "pfly_res.h"
  5. static void MainMenuWnd_Update(MainMenuWnd* pthis);
  6. static boolean MainMenuWnd_HandleCommandEvent(MainMenuWnd* pthis,uint16 wParam,uint32 dwParam);
  7. boolean MainMenuWnd_New(MainMenuWnd* pthis, PflyApp* pMe)
  8. {
  9. pthis->pMe = pMe;
  10. pthis->pIMenu = NULL;
  11. return TRUE;
  12. }
  13. boolean MainMenuWnd_HandleEvent(MainMenuWnd* pthis, AEEEvent eCode, uint16 wParam, uint32 dwParam)
  14. {
  15. switch(eCode){
  16. case EVT_COMMAND:
  17. return MainMenuWnd_HandleCommandEvent(pthis,wParam,dwParam);;
  18. case EVT_APP_SUSPEND:
  19. return TRUE;
  20. case EVT_APP_RESUME:
  21. MainMenuWnd_Update(pthis);
  22. return TRUE;
  23. default:
  24. return IMENUCTL_HandleEvent(pthis->pIMenu,eCode,wParam,dwParam);
  25. }
  26. }
  27. boolean MainMenuWnd_Open(MainMenuWnd* pthis)
  28. {
  29. AEERect rect;
  30. AEEDeviceInfo di;
  31. ISHELL_CreateInstance(pthis->pMe->a.m_pIShell,AEECLSID_MENUCTL,(void**)&pthis->pIMenu);
  32. //设置菜单标题
  33. IMENUCTL_SetTitle(pthis->pIMenu, PFLY_RES_FILE, IDS_MENUTITLE, 0);
  34. //设置菜单矩形
  35. ISHELL_GetDeviceInfo(pthis->pMe->a.m_pIShell,&di);
  36. rect.x = 0;
  37. rect.y = 0;
  38. rect.dx = di.cxScreen;
  39. rect.dy = di.cyScreen;
  40. IMENUCTL_SetRect(pthis->pIMenu, &rect);  
  41. //给菜单加子项目
  42. IMENUCTL_AddItem(pthis->pIMenu, PFLY_RES_FILE, IDS_MENU_START, IDS_MENU_START, 0, 0);
  43. IMENUCTL_AddItem(pthis->pIMenu, PFLY_RES_FILE, IDS_MENU_SCOREVIEW, IDS_MENU_SCOREVIEW, 0, 0);
  44. IMENUCTL_AddItem(pthis->pIMenu, PFLY_RES_FILE, IDS_MENU_EXIT, IDS_MENU_EXIT, 0, 0);
  45. MainMenuWnd_Update(pthis);
  46. return TRUE;
  47. }
  48. void MainMenuWnd_Close(MainMenuWnd* pthis)
  49. {
  50. if(pthis->pIMenu) {
  51. IMENUCTL_Release(pthis->pIMenu);
  52. pthis->pIMenu = NULL;
  53. }
  54. }
  55. void MainMenuWnd_Free(MainMenuWnd* pthis)
  56. {
  57. if(pthis->pIMenu) {
  58. IMENUCTL_Release(pthis->pIMenu);
  59. pthis->pIMenu = NULL;
  60. }
  61. }
  62. static void MainMenuWnd_Update(MainMenuWnd* pthis)
  63. {
  64. IMENUCTL_SetActive(pthis->pIMenu,TRUE);
  65. IMENUCTL_Redraw(pthis->pIMenu);
  66. }
  67. static boolean MainMenuWnd_HandleCommandEvent(MainMenuWnd* pthis,uint16 wParam,uint32 dwParam)
  68. {
  69. switch(wParam) {
  70. case IDS_MENU_START:
  71. return Pfly_SetActiveWnd(pthis->pMe, IDW_GAME);
  72. case IDS_MENU_SCOREVIEW:
  73. return Pfly_SetActiveWnd(pthis->pMe, IDW_SCORELIST);
  74. case IDS_MENU_EXIT:
  75. ISHELL_CloseApplet(pthis->pMe->a.m_pIShell,FALSE);
  76. return TRUE;
  77. default:
  78. return FALSE;
  79. }
  80. }